Wie erhalte ich den Unterschied zwischen zwei Zeitstempeln?

7

Ich erstelle ein einfaches Backup-Skript. Ich hätte gerne eine Nachricht mit der Aufschrift "Sie haben zuletzt vor x Tagen gesichert" beim Anmelden. Ich kann eine Datei erstellen, wenn ich das Backup "backup / .last_backup_timestamp" mache, aber welches Format soll ich verwenden und wie würde ich den Unterschied in Tagen zwischen damals und heute in Bash finden?

Vielen Dank

ashleysmithgpu
quelle

Antworten:

8

Sie können das dateDienstprogramm verwenden, um den Zeitstempel von a fileund die aktuelle Zeit als in der Epoche verstrichene Sekunden zu schreiben und dann eine Zeichenfolge zu formatieren, um die Sekunden der Differenz in Tagen zu konvertieren mit bc:

echo "scale=2; ($(date +%s)-$(date -r file +%s)) / (3600 * 24)" \
  | bc
Enzotib
quelle
2
Das brauchen Sie nicht bc:echo $(( ( $(date +%s) - $(date -r file +%s) ) / 3600 / 24 ))
Mat
1
@Mat: Ich weiß, aber ein Bruchteil des Tages könnte wichtig sein.
Enzotib