Löschen von alten files (backupscript)
Löschen von alten files (backupscript)
hallo,
also ich hätte da ein kleines problem, aber es wird mir sicherlich wer helfen können.
ich habe ein script zu einem schlichten backup, und die aufgabe ist,
das dieses script täglich um 0400h ein vollbackup zieht. so weit so gut und dies
funktioniert ja auch tadellos. das problem welches ich habe ist das ein backup
tar.gz file ca. 3gb hat und die 30gb platte schnell voll macht.
meine bitte/frage ... wie kann man mit einer syntax die files die älter 3 tage sind,
löschen.
hier die syntax:
-rw-r--r-- 1 root root 3760904859 Feb 13 04:28 backup.20050213.tar.gz
-rw-r--r-- 1 root root 3789237798 Feb 14 04:29 backup.20050214.tar.gz
-rw-r--r-- 1 root root 1821331456 Feb 15 04:18 backup.20050215.tar.gz
danke für die hilfe ...
br
chris
also ich hätte da ein kleines problem, aber es wird mir sicherlich wer helfen können.
ich habe ein script zu einem schlichten backup, und die aufgabe ist,
das dieses script täglich um 0400h ein vollbackup zieht. so weit so gut und dies
funktioniert ja auch tadellos. das problem welches ich habe ist das ein backup
tar.gz file ca. 3gb hat und die 30gb platte schnell voll macht.
meine bitte/frage ... wie kann man mit einer syntax die files die älter 3 tage sind,
löschen.
hier die syntax:
-rw-r--r-- 1 root root 3760904859 Feb 13 04:28 backup.20050213.tar.gz
-rw-r--r-- 1 root root 3789237798 Feb 14 04:29 backup.20050214.tar.gz
-rw-r--r-- 1 root root 1821331456 Feb 15 04:18 backup.20050215.tar.gz
danke für die hilfe ...
br
chris
- feltel
- Webmaster
- Beiträge: 10471
- Registriert: 20.12.2001 13:08:23
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Leipzig, Germany
-
Kontaktdaten:
Aus dem Kopf:
sollte gehen.
Code: Alles auswählen
find . -type f -name backup.* -daystart -ctime +3 -print0 | xargs rm
debianforum.de unterstützen? Hier! | debianforum.de Verhaltensregeln | Bitte keine Supportanfragen per PM
danke für die info aber ich bekomme das statement zurückfeltel hat geschrieben:Aus dem Kopf:
sollte gehen.Code: Alles auswählen
find . -type f -name backup.* -daystart -ctime +3 -print0 | xargs rm
??? (obwohl ich mir denke das das find passt)find . -type f -name backup.* -daystart -ctime +3 -print0 | xargs rm
find: paths must precede expression
Usage: find [path...] [expression]
rm: too few arguments
::EDIT: ermeckert das find an, das backup.* passt ihm nicht
aber er findet nicht die files
- feltel
- Webmaster
- Beiträge: 10471
- Registriert: 20.12.2001 13:08:23
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Leipzig, Germany
-
Kontaktdaten:
Hmmm, probier mal
Ich glaube mein erster Tipp hatte zwei Fehler: Das .* wird automatisch durch die Shell expandiert, was natürlich nicht sein darf und zweitens war die Lösung nicht mit alles Dateinamen kompatibel (Spaces im Dateinamen).
Code: Alles auswählen
find . -type f -name 'backup.*' -daystart -ctime +3 -print0 | xargs -0 rm
debianforum.de unterstützen? Hier! | debianforum.de Verhaltensregeln | Bitte keine Supportanfragen per PM
danke - der aufruf geht jeztz .. aber er kann nichts findenfeltel hat geschrieben:Hmmm, probier mal
Ich glaube mein erster Tipp hatte zwei Fehler: Das .* wird automatisch durch die Shell expandiert, was natürlich nicht sein darf und zweitens war die Lösung nicht mit alles Dateinamen kompatibel (Spaces im Dateinamen).Code: Alles auswählen
find . -type f -name 'backup.*' -daystart -ctime +3 -print0 | xargs -0 rm
obwohljunkie:/home/cp# find . -type f -name 'backup.*' -daystart -ctime +3 -print0
für mich sehr dubios ... was sagt eure erfahrung bei sowas ???junkie:/home/cp# ls -ltr backup.*
-rwxrwxrwx 1 root root 3760904859 Feb 13 04:28 backup.20050213.tar.gz
-rwxrwxrwx 1 root root 3789237798 Feb 14 04:29 backup.20050214.tar.gz
-rwxrwxrwx 1 root root 1821331456 Feb 15 04:18 backup.20050215.tar.gz
::EDIT:
d.h. der daystart syntax hat was ... aber was ?junkie:/home/cp# find . -type f -name 'backup.*'
./backup/wwwdom/spooner/administrator/images/backup.png
./backup/wwwdom/spooner/includes/js/ThemeOffice/backup.png
./backup/www/administrator/images/backup.png
./backup/www/includes/js/ThemeOffice/backup.png
./backup/etc/webmin/mysql/backup.pl
./backup.20050213.tar.gz
./backup.20050214.tar.gz
./backup.20050215.tar.gz
- feltel
- Webmaster
- Beiträge: 10471
- Registriert: 20.12.2001 13:08:23
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Leipzig, Germany
-
Kontaktdaten:
Der kann noch nix finden, da das älteste File bei Dir vom 13.02. ist und "-daystart -ctime +3" besagt das das File älter als drei Tage sein muss und das volle Tage zählen und nicht bloß Zeit+24h. Bei Dir wird er also erst übermorgen was finden.
debianforum.de unterstützen? Hier! | debianforum.de Verhaltensregeln | Bitte keine Supportanfragen per PM
- feltel
- Webmaster
- Beiträge: 10471
- Registriert: 20.12.2001 13:08:23
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Leipzig, Germany
-
Kontaktdaten:
Nachtrag. Sehe gerade das Du auch noch ein /backup-Verzeichnis hast mit Files die auch backup.irgendwas heißen. Damit muss der find-Aufruf noch weiter eingegrenzt werden sonst löscht er auch diese Dateien.
Code: Alles auswählen
find . -type f -name 'backup.*.tar.gz' -daystart -ctime +3 -print0 | xargs -0 rm
debianforum.de unterstützen? Hier! | debianforum.de Verhaltensregeln | Bitte keine Supportanfragen per PM
danke dir ... dürfte anscheinend funzen, da ich es mal kurz mit dem cmin +1 ausprobiertfeltel hat geschrieben:Nachtrag. Sehe gerade das Du auch noch ein /backup-Verzeichnis hast mit Files die auch backup.irgendwas heißen. Damit muss der find-Aufruf noch weiter eingegrenzt werden sonst löscht er auch diese Dateien.
Code: Alles auswählen
find . -type f -name 'backup.*.tar.gz' -daystart -ctime +3 -print0 | xargs -0 rm
hab und zuvor ein file mit touch backup.test.tar.gz erzeugt hab.
danke nochmals ... meld mich wenn was nicht geht ... *lol*
-
- Beiträge: 41
- Registriert: 09.07.2004 10:12:33
Moin in die Runde!
Wollte mich an dieser Stelle auch für den Einzeiler bedanken. Habe allerdings noch zwei Fragen dazu:
1.) Wollte das Script gerne mal testen und habe mir mehere Dateien angelegt mit
Aber damit ändere ich doch AFAIK nur das Datum des letzten Zugriffs, kann ich das auch für die Erstellung angeben, da find ja nach "ctime" sucht?
2.) Kopiere mein Backup-Archiv auf einen Novell-Server. Kann ich die dort liegenden Backupfiles auch mit dem Einzeiler löschen? Erkennt er dort auch die "ctime" ?
Danke und Gruß,
Tyler
Wollte mich an dieser Stelle auch für den Einzeiler bedanken. Habe allerdings noch zwei Fragen dazu:
1.) Wollte das Script gerne mal testen und habe mir mehere Dateien angelegt mit
Code: Alles auswählen
touch -t 200512120800 squid_sich_2005-12-12
touch -t 200512130800 squid_sich_2005-12-13
....
2.) Kopiere mein Backup-Archiv auf einen Novell-Server. Kann ich die dort liegenden Backupfiles auch mit dem Einzeiler löschen? Erkennt er dort auch die "ctime" ?
Danke und Gruß,
Tyler
Es gibt unter Linux kein Erstellungsdatum
atime = Zeitpunkt des letzten Zugriffs auf die Datei
mtime = Zeitpunkt der letzten Aenderung des Inhalts
ctime = Zeitpunkt der letzten Aenderung des Dateistatus
Siehe auch
atime = Zeitpunkt des letzten Zugriffs auf die Datei
mtime = Zeitpunkt der letzten Aenderung des Inhalts
ctime = Zeitpunkt der letzten Aenderung des Dateistatus
Siehe auch
Code: Alles auswählen
man find
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
Code: Alles auswählen
toch -t <timestamp> <filename>
In einfachen Worten:
Wird ein File erstellt "ändert" sich dessen Status. Daraus schließt der aufmerksame Leser sogleich, dass man mit ctime oder cmin das richtige Werkzeug hat.
Fazit:
siehe einzeiler von feltel und evtl. man find
markus
-
- Beiträge: 41
- Registriert: 09.07.2004 10:12:33
Danke für eure Antworten!
Danke für eure Hilfe.
Tyler
OK, das habe ich verstanden. Aber wie kann ich denn zum testen am einfachsten den Dateistatus ändern? Sorry für die NOOB-Frage, aber ich habe echt keine Ahnung. Attribute und Berechtigungen ändern hat ja mit dem Status auch nix zu tun, oder?ändert zugriff und modifikations zeitpunkt - KEINE änderung des Zeitpunktes an dem der file status sich das letzte mal änderteCode: Alles auswählen
toch -t <timestamp> <filename>
Danke für eure Hilfe.
Tyler
- meandtheshell
- Beiträge: 4054
- Registriert: 14.01.2005 17:51:30
einfach ein file anlegen
siehe
dann kannst du find mit cmin oder ctime drauf ansetzen
markus
Code: Alles auswählen
toch <newfile>
Code: Alles auswählen
man touch
markus