Datumsberechnung im Skript für Benachrichtigungsalarme

Datumsberechnung im Skript für Benachrichtigungsalarme

Ich möchte Benachrichtigungen zum Ablauf meines Kontos erstellen. Dazu muss ich ein Skript schreiben, das mich 1 Monat vor Ablauf per E-Mail benachrichtigt. Ich arbeite unter Linux.

Ich kann Ablaufinformationen zum 27.03.2015 erhalten. Ich möchte, dass ich eine E-Mail-Benachrichtigung erhalte, wenn bis zum 27.03.2015 noch 31 Tage verbleiben, indem ich das aktuelle Datum bestimme. Ich kann keine korrekte if-Anweisung schreiben.

Antwort1

Ich bin nicht ganz sicher, wo Sie feststecken, da Sie nicht viele Informationen oder Beispiele angegeben haben, aber Sie könnten die folgenden Befehle in Betracht ziehen:

  • chage -l userNameum das Ablaufdatum des Passworts eines Benutzers zu überprüfen
  • mailum eine E-Mail entweder an den Benutzer oder an den Administrator (oder an beide) zu senden (wie von Graeme in seinem Kommentar gesagt)

Mit diesen beiden Befehlen sollten Sie in der Lage sein, ein einfaches Skript zum Überprüfen des Ablaufs von Passwörtern zu schreiben.

Sie können es auch crontabzur Terminplanung verwenden (beispielsweise auf täglicher Basis).

BEARBEITEN:

Nachdem Sie weitere Informationen bearbeitet haben, können Sie Folgendes versuchen:

# Get the current date in seconds since 1970
current_date=`date "+%s"`
# Convert the date you want to check in seconds since 1970
date_to_check=`date -d 2015/03/31 +"%s"`
# Calculate the difference in seconds
date_diff=`expr $date_to_check - $current_date`
# Check whether the difference is greater than 31 days (2678400 seconds)
if [ `expr $date_diff - 2678400` -gt 0 ]
then
    echo More than 31 days left
else
    echo Less than 31 days left
fi

verwandte Informationen