Hallo zusammen, ich hoffe auf ein paar Denkanstösse von euch. Habe ein Verzeichnis, in das täglich Logfiles geschrieben werden. Die Alten sollen nun wöchentlich gelöscht werden. Ich bräuchte ich eine Möglichkeit, um zu testen, ob ein File einen Monat oder Älter ist. Habe dabei an "test" gedacht, laut man scheint das aber nur testen zu können, ob ein File neuer/älter als ein anderer ist. Habt Ihr ein paar Ideen, nach welchen Befehlen ich da graben sollte? Thx, Bernd -- One OS to rule them all, one OS to find them. One OS to bring them all, and in the darkness bind them In the land of Redmond, where the shadows lie.
-----Original Message----- From: Bernd Tannenbaum [mailto:tannenbaum@service.itenos.de] Sent: Tuesday, August 19, 2003 1:38 PM To: suse-linux@suse.com Subject: Alte Files löschen?
Hallo zusammen,
ich hoffe auf ein paar Denkanstösse von euch. Habe ein Verzeichnis, in das täglich Logfiles geschrieben werden. Die Alten sollen nun wöchentlich gelöscht werden. Ich bräuchte ich eine Möglichkeit, um zu testen, ob ein File einen Monat oder Älter ist. Habe dabei an "test" gedacht, laut man scheint das aber nur testen zu können, ob ein File neuer/älter als ein anderer ist. Habt Ihr ein paar Ideen, nach welchen Befehlen ich da graben sollte?
Hallo, wie wärs z.B. mit: find :-) find /backup/ -ctime +2 -exec rm -vf {} \; löscht alls dateien, die älter als 2 Tage sind aus /backup/ -- MfG Yann Wissenbach www : http://www.world-wide-wait.de http://www.vw-opel-ig.de mail : yann@world-wide-wait.de ICQ : 98297452 Linux - Life is too short for reboots
Hallo nochmal, Am Dienstag, 19. August 2003 13:46 schrieb Yann Wissenbach:
-----Original Message----- From: Bernd Tannenbaum [mailto:tannenbaum@service.itenos.de] Sent: Tuesday, August 19, 2003 1:38 PM To: suse-linux@suse.com Subject: Alte Files löschen?
Hallo zusammen, ich hoffe auf ein paar Denkanstösse von euch. Habe ein Verzeichnis, in das täglich Logfiles geschrieben werden. Die Alten sollen nun wöchentlich gelöscht werden. Ich bräuchte ich eine Möglichkeit, um zu testen, ob ein File einen Monat oder Älter ist. Habe dabei an "test" gedacht, laut man scheint das aber nur testen zu können, ob ein File neuer/älter als ein anderer ist. Habt Ihr ein paar Ideen, nach welchen Befehlen ich da graben sollte?
Hallo,
wie wärs z.B. mit: find :-)
find /backup/ -ctime +2 -exec rm -vf {} \;
löscht alls dateien, die älter als 2 Tage sind aus /backup/
Yo, das höet sich nach dem an, was ich suche. Hab rumprobiert und festgestellt, das ich noch quoten und escapen muß, damit meine shell (bash) das akzeptiert. ######## Einstein:/test # find /test/ -name a -exec 'rm {}' \; ######## Leider findet dieser Befehl zwar nun die Datei, kann Sie aber nicht löschen. (Das mit -ctime klappt, hab ich hier weggelassen, da ich mich auf den nicht funktionierenden rm konzentriere) Die Fehlermeldung: ######## find: rm /test/a: No such file or directory ######## Ich kann die jetzt nicht wirklich interpretieren. Was kann er nicht finden, den File /test/a oder den Befehl rm? Hab auch schon den kompletten Pfad angagaben, hat auch nicht geholfen. Ein kleiner Tipp? Thx, Bernd -- One OS to rule them all, one OS to find them. One OS to bring them all, and in the darkness bind them In the land of Redmond, where the shadows lie.
-----Original Message----- From: Bernd Tannenbaum [mailto:tannenbaum@service.itenos.de] Sent: Tuesday, August 19, 2003 3:09 PM To: suse-linux@suse.com Subject: Re: Alte Files löschen?
Hallo nochmal,
Am Dienstag, 19. August 2003 13:46 schrieb Yann Wissenbach:
-----Original Message----- From: Bernd Tannenbaum [mailto:tannenbaum@service.itenos.de] Sent: Tuesday, August 19, 2003 1:38 PM To: suse-linux@suse.com Subject: Alte Files löschen?
Hallo zusammen, ich hoffe auf ein paar Denkanstösse von euch. Habe ein Verzeichnis, in das täglich Logfiles geschrieben werden. Die Alten sollen nun wöchentlich gelöscht werden. Ich bräuchte ich eine Möglichkeit, um zu testen, ob ein File einen Monat oder Älter ist. Habe dabei an "test" gedacht, laut man scheint das aber nur testen zu können, ob ein File neuer/älter als ein anderer ist. Habt Ihr ein paar Ideen, nach welchen Befehlen ich da graben sollte?
Hallo,
wie wärs z.B. mit: find :-)
find /backup/ -ctime +2 -exec rm -vf {} \;
löscht alls dateien, die älter als 2 Tage sind aus /backup/
Yo, das höet sich nach dem an, was ich suche.
Hab rumprobiert und festgestellt, das ich noch quoten und escapen muß, damit meine shell (bash) das akzeptiert.
######## Einstein:/test # find /test/ -name a -exec 'rm {}' \; ########
Leider findet dieser Befehl zwar nun die Datei, kann Sie aber nicht löschen. (Das mit -ctime klappt, hab ich hier weggelassen, da ich mich auf den nicht funktionierenden rm konzentriere)
Die Fehlermeldung:
######## find: rm /test/a: No such file or directory ########
Ich kann die jetzt nicht wirklich interpretieren. Was kann er nicht finden, den File /test/a oder den Befehl rm? Hab auch schon den kompletten Pfad angagaben, hat auch nicht geholfen.
Ist a eine Datei oder ein Verzeichnis ? habe das oben geschriebene 1:1 im Einsatz, und tut wunderbar :)) Ich tippe schwer drauf, dass es mit den ' ' zusammenhängt.. bzw. du suchst nach 'a'. Existiert die Datei an diesem Ort ?!? habs gerade probiert: uranix:/home/yannw # echo test > /tmp/a uranix:/home/yannw # find /tmp/ -name a -exec 'rm {}' \; find: rm /tmp/a: Datei oder Verzeichnis nicht gefunden uranix:/home/yannw # find /tmp/ -name a -exec rm {} \; uranix:/home/yannw # nu ist die datei wech... -- MfG Yann Wissenbach www : http://www.world-wide-wait.de http://www.vw-opel-ig.de mail : yann@world-wide-wait.de ICQ : 98297452 Linux - Life is too short for reboots
My Mistake, danke schön... Am Dienstag, 19. August 2003 15:46 schrieb Yann Wissenbach:
-----Original Message----- From: Bernd Tannenbaum [mailto:tannenbaum@service.itenos.de] Sent: Tuesday, August 19, 2003 3:09 PM To: suse-linux@suse.com Subject: Re: Alte Files löschen?
Hallo nochmal,
Am Dienstag, 19. August 2003 13:46 schrieb Yann Wissenbach:
-----Original Message----- From: Bernd Tannenbaum [mailto:tannenbaum@service.itenos.de] Sent: Tuesday, August 19, 2003 1:38 PM To: suse-linux@suse.com Subject: Alte Files löschen?
Hallo zusammen, ich hoffe auf ein paar Denkanstösse von euch. Habe ein Verzeichnis, in das täglich Logfiles geschrieben werden. Die Alten sollen nun wöchentlich gelöscht werden. Ich bräuchte ich eine Möglichkeit, um zu testen, ob ein File einen Monat oder Älter ist. Habe dabei an "test" gedacht, laut man scheint das aber nur testen zu können, ob ein File neuer/älter als ein anderer ist. Habt Ihr ein paar Ideen, nach welchen Befehlen ich da graben sollte?
Hallo,
wie wärs z.B. mit: find :-)
find /backup/ -ctime +2 -exec rm -vf {} \;
löscht alls dateien, die älter als 2 Tage sind aus /backup/
Yo, das höet sich nach dem an, was ich suche.
Hab rumprobiert und festgestellt, das ich noch quoten und escapen muß, damit meine shell (bash) das akzeptiert.
######## Einstein:/test # find /test/ -name a -exec 'rm {}' \; ########
Leider findet dieser Befehl zwar nun die Datei, kann Sie aber nicht löschen. (Das mit -ctime klappt, hab ich hier weggelassen, da ich mich auf den nicht funktionierenden rm konzentriere)
Die Fehlermeldung:
######## find: rm /test/a: No such file or directory ########
Ich kann die jetzt nicht wirklich interpretieren. Was kann er nicht finden, den File /test/a oder den Befehl rm? Hab auch schon den kompletten Pfad angagaben, hat auch nicht geholfen.
Ist a eine Datei oder ein Verzeichnis ?
habe das oben geschriebene 1:1 im Einsatz, und tut wunderbar :)) Ich tippe schwer drauf, dass es mit den ' ' zusammenhängt.. bzw. du suchst nach 'a'. Existiert die Datei an diesem Ort ?!?
habs gerade probiert:
uranix:/home/yannw # echo test > /tmp/a uranix:/home/yannw # find /tmp/ -name a -exec 'rm {}' \; find: rm /tmp/a: Datei oder Verzeichnis nicht gefunden uranix:/home/yannw # find /tmp/ -name a -exec rm {} \; uranix:/home/yannw #
nu ist die datei wech...
Yop, hast recht. Hatte bei mir anfangs nicht funktioniert, vermutlich hab ich mich einfach verschrieben oder das Leerzeichen zum Strichpunkt vergessen. Auf die Idee mit dem Escapen/Quoten kam ich durch Googeln mit meiner Fehlermeldung. War in diesem Fall dann leider kontraproduktiv. Also nochmals fürs Archiv: Yanns Lösung funzt genau so wie er es sagt. Thx, Bernd -- One OS to rule them all, one OS to find them. One OS to bring them all, and in the darkness bind them In the land of Redmond, where the shadows lie.
Am Dienstag, 19. August 2003 13:37 schrieb Bernd Tannenbaum:
Habt Ihr ein paar Ideen, nach welchen Befehlen ich da graben sollte?
find mit der option "exec" -- www.stonki.de: the more I see, the more I know....... www.proftpd.de: Deutsche ProFTPD Dokumentation www.krename.net: Der Batch Renamer für KDE www.kbarcode.net: Die Barcode Solution für KDE
Bernd Tannenbaum wrote:
Hallo zusammen,
ich hoffe auf ein paar Denkanstösse von euch. Habe ein Verzeichnis, in das täglich Logfiles geschrieben werden. Die Alten sollen nun wöchentlich gelöscht werden. Ich bräuchte ich eine Möglichkeit, um zu testen, ob ein File einen Monat oder Älter ist. Habe dabei an "test" gedacht, laut man scheint das aber nur testen zu können, ob ein File neuer/älter als ein anderer ist. Habt Ihr ein paar Ideen, nach welchen Befehlen ich da graben sollte?
Vielleicht so? Beispiel: Das Script wird erst am Dienstag gestartet und muss dann die Log-Files vom Samstag packen. if [ `date +"%w"` = 2 ] then # Dienstag datum_alt_ymd=`date -d "3 days ago" +"%Y-%m-%d"` else # Mittwoch bis Samstag datum_alt_ymd=`date -d "1 days ago" +"%Y-%m-%d"` fi tar czf $datum_alt_ymd.tgz $datum_alt_ymd* Hofe es hilft, Stefan
participants (4)
-
Bernd Tannenbaum
-
Stefan Eggert
-
Stefan Onken
-
Yann Wissenbach