[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Alter einer Datei in Sekunden ermitteln


Hallo zusammen,

fuer eine Art watchdog-Funktion benoetige ich das Alter einer Datei in
Sekunden. Im Normalbetrieb wird diese Datei zB alle 60sec getoucht. Ich
will periodisch ermitteln, wenn diese Datei zB aelter als 80sec ist und
eine Aktion ausloesen.


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

wobei das aufgeschlueselt 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 schoenere Loesungen?

Gruss
Raphael

PS: Unter FreeBSD geht das mit stat so:

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


-- 
Raphael Eiselstein <rabe@xxxxxxxxx>               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/