Alter einer Datei in Sekunden ermitteln

Autor: Raphael Eiselstein <rabe_at_uugrn.org>
Datum: Fri, 25 Mar 2011 23:00:22 +0100
Hallo zusammen,

für eine Art watchdog-Funktion benötige ich das Alter einer Datei in
Sekunden. Im Normalbetrieb wird diese Datei zB alle 60sec getoucht. Ich
will periodisch ermitteln, wenn diese Datei zB älter als 80sec ist und
eine Aktion auslösen.


Unter Linux habe ich dazu folgendes Konstrukt gebastelt:
AGE=$(( $(date +%s) - $(date +%s --date "$(stat --format %y /var/run/filename )") ))"

wobei das aufgeschlüselt etwa folgendes ist:

NOW_SEC=$(date +%s)
FILEDATE=$(stat --format %y /var/run/filename )
FILEDATE_SEC=$(date +%s --date "${FILEDATE}"
AGE=$(( ${NOW_SEC} - ${FILEDATE_SEC} ))
test ${AGE} -gt 80 && do_alarm

Jetzt die Frage, ob es ein Tool gibt was direkt AGE erzeugt, also z.B.

$ fileage /var/run/filename
42

... falls die Datei 42sec derzeit alt ist.

Gibts da schönere Lösungen?

Gruß
Raphael

PS: Unter FreeBSD geht das mit stat so:

$ stat -f %Dm /tmp
1301090275
(= Unix Timestamp am "Fr 25 Mär 2011 22:57:55 CET") 


-- 
Raphael Eiselstein <rabe@uugrn.org>               http://rabe.uugrn.org/
xmpp:freibyterægmx.de  | https://www.xing.com/profile/Raphael_Eiselstein   
GnuPG:                E7B2 1D66 3AF2 EDC7 9828  6D7A 9CDA 3E7B 10CA 9F2D
.........|.........|.........|.........|.........|.........|.........|..


-- 
UUGRN e.V. http://www.uugrn.org/
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/

Empfangen am 25.03.2011

Dieses Archiv wurde generiert von hypermail 2.2.0 : 25.03.2011 CET