[Gelöst]Timestamp einer Datei mit der Systemzeit vergleichen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
MatzeK
Beiträge: 26
Registriert: 18.05.2010 20:27:08

[Gelöst]Timestamp einer Datei mit der Systemzeit vergleichen

Beitrag von MatzeK » 22.09.2010 16:05:09

Hallo,

ich habe Folgende Aufgabe:

in einem Ordner landen Dateien, die nach spätestens einem Tag nicht mehr vorhanden sein sollten. Sollte dort eine Datei mal länger als einen Tag liegen, soll die Datei verschoben werden.

Ich habe mir das ganze so vorgestellt:

Ich vergleiche die Systemzeit mit dem timestamp der Datei. Wenn die Datei älter als einen Tag ist, soll sie verschoben werden.


Ich möchte das ganze als shell script verwenden.

Hat jemand eine Idee wie das zu machen ist?

Gruß
Matze
Zuletzt geändert von MatzeK am 23.09.2010 09:37:06, insgesamt 1-mal geändert.

michaels
Beiträge: 1164
Registriert: 29.03.2009 18:12:25

Re: Timestamp einer Datei mit der Systemzeit vergleichen

Beitrag von michaels » 22.09.2010 16:10:09

Hallo,

ungefähr so:

Code: Alles auswählen

find . -ctime +1 -print0 | damit etwas tun
Gruß

MatzeK
Beiträge: 26
Registriert: 18.05.2010 20:27:08

Re: Timestamp einer Datei mit der Systemzeit vergleichen

Beitrag von MatzeK » 22.09.2010 16:27:21

Thx für die fixe Antwort, gibts auch eine andere Möglichkeit als "find" ?

Möchte das ganze dann im nächsten Schritt noch auf Stundenebene machen.

Gruß
Matze

michaels
Beiträge: 1164
Registriert: 29.03.2009 18:12:25

Re: Timestamp einer Datei mit der Systemzeit vergleichen

Beitrag von michaels » 22.09.2010 16:30:38

Mit -cmin statt -ctime kannst du es sogar auf Minuten Ebene machen :wink:

Ich denke find ist die einfachste Lösung, aber vielleicht meldet sich ja noch jemand.

Gruß

MatzeK
Beiträge: 26
Registriert: 18.05.2010 20:27:08

Re: Timestamp einer Datei mit der Systemzeit vergleichen

Beitrag von MatzeK » 22.09.2010 18:54:16

Sorry, komme aber irgendwie garnicht klar damit.

Code: Alles auswählen

find /home/eingang/* -ctime +1 -print0 | mv /home/ausgang/*_fehler
Setze ich das richtig ein? Was für einen Fehler mache ich?

Folgende Fehlermeldung erhalte ich:

Code: Alles auswählen

mv: missing file operand
Try `mv --help' for more information.
Mit

Code: Alles auswählen

 find /home/eingang/* -ctime +1 -print0 | mv -f /home/eingang/* /home/ausgang/*_fehler
Funktioniert es natürlich, jedoch wird dabei ja der komplette inhalt des Eingangsordner verschoben. :-/

Google hat mir leider nicht weitergeholfen. Habe es danach versucht mit variablen zu machen, tut aber auch nicht.

Gruß

Methusalix

Re: Timestamp einer Datei mit der Systemzeit vergleichen

Beitrag von Methusalix » 23.09.2010 01:14:44

Code: Alles auswählen

user@lenny:~/abercrombie$ touch nochnedatei
user@lenny:~/abercrombie$ ls -lh
insgesamt 2,2M
-rw-r--r-- 1 user user 2,2M 13. Jun 19:10 abercrombie
-rw-r--r-- 1 user user  190 13. Jun 19:08 infos.txt
-rw-r--r-- 1 user user    0 23. Sep 01:06 nochnedatei
user@lenny:~/abercrombie$ find . -ctime +1 -exec mv {}  /zielverzeichnis \;
user@lenny:~/abercrombie$ ls -lh
insgesamt 0
-rw-r--r-- 1 user user 0 23. Sep 01:06 nochnedatei
user@lenny:~/abercrombie$ ls -lh /zielverzeichnis
insgesamt 2,2M
-rw-r--r-- 1 user user 2,2M 13. Jun 19:10 abercrombie
-rw-r--r-- 1 user user  190 13. Jun 19:08 infos.txt

MatzeK
Beiträge: 26
Registriert: 18.05.2010 20:27:08

Re: Timestamp einer Datei mit der Systemzeit vergleichen

Beitrag von MatzeK » 23.09.2010 09:31:45

Guten Morgen,

vielen Dank, es klappt genau so, wie ich es mir vorgestellt hatte. Habe nicht an das exec gedacht ...

Gruß
Matze

Antworten