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

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.