Script Löschen von alten Daten

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Quickly1971
Beiträge: 110
Registriert: 08.05.2009 15:26:32

Script Löschen von alten Daten

Beitrag von Quickly1971 » 28.04.2010 10:00:38

Hallo Leute.

Ich möchte, dass Tar-Dateien die 5 Tage alt sind, automatisch gelöscht werden.
Habe mir ein Script gebastelt, sagen wir eher aus diversen Seiten abgeguckt.

Meine Fragen:
a) Kann mir den Teil jemand für Dummies erklären? Also was genau läuft da.
b) Funktioniert nicht. :-)
- Es wird eine SQL-DB gesichert (SQL-Dump). Diese SQL wird täglich überschrieben.
- Zusätzlich wird diese DB dann geteilt und gepackt.
- Dann sollten die "alten" Tar Archive gelöscht werden.
Der Punkt "Alte Datensicherungen werden entfernt" funktioniert nicht. :roll:
Bitte um Hilfe.

Code: Alles auswählen

...
echo "Datebank wird gepackt"
echo "Datum als Variable setzen"
DATE=`date +%Y-%m-%d_%H-%M-%S`

echo "Packen ausfuehren und splitten"
tar cvz $TARGET1/zarafa.sql | split -b700m - $TARGET1/zarafa_$DATE.tar.gz.split_
# || { echo tar error ; exit 1; }
echo "Datenbank wurde gepackt"

echo "Alte Datensicherungen werden entfernt"
find /mnt/backup/mailsrv1/sql_dump/ -type f -mtime +10 -name \*. -exec rm {} \;
sleep 3
...
Vielen Dank

Quickly
Der Mensch hat drei Wege, klug zu werden.
Erstens durch Nachdenken: Das ist der edelste.
Zweitens durch Nachahmen: Das ist der leichteste.
Drittens durch Erfahrung: Das ist der bitterste.

uname
Beiträge: 12422
Registriert: 03.06.2008 09:33:02

Re: Script Löschen von alten Daten

Beitrag von uname » 28.04.2010 14:31:01

Zum Löschen ist nur folgende Zeile interessant:

Code: Alles auswählen

find /mnt/backup/mailsrv1/sql_dump/ -type f -mtime +10 -name \*. -exec rm {} \;
Sie entspricht nicht ganz deinen Worten. Statt "-exec" nutze ich persönlich lieber "xargs".

Nun erst mal anschauen der Dateien:

Code: Alles auswählen

find /pfad/zu/den/dateien -type f -name "*.tar" -mtime +5 |xargs -i echo {}
Pfadangabe, Typ ist Datei, Name ist "*.tar", geändert vor mehr als 5 Tagen, umgeleitet zur Ausgabe

Nur wenn die Liste korrekt ist, dann das Ende (echo durch rm) ersetzen:

Code: Alles auswählen

find /pfad/zu/den/dateien -type f -name "*.tar" -mtime +5 |xargs -i rm {}
Anmerkung: Bitte sicherheitshalber immer den vollständigen Pfad angeben. Kann sonst dumm enden.

chrisbra
Beiträge: 122
Registriert: 19.10.2005 09:36:09
Wohnort: Sachsen-Anhalt
Kontaktdaten:

Re: Script Löschen von alten Daten

Beitrag von chrisbra » 29.04.2010 15:05:29

uname hat geschrieben:Zum Löschen ist nur folgende Zeile interessant:

Code: Alles auswählen

find /mnt/backup/mailsrv1/sql_dump/ -type f -mtime +10 -name \*. -exec rm {} \;
Sie entspricht nicht ganz deinen Worten. Statt "-exec" nutze ich persönlich lieber "xargs".
1) GNU find kennt -delete
2) POSIX Find kennt -exec {} +
Da braucht es kein xargs mehr.

Grüße,
Christian
Meine Whishlist
:wq!

uname
Beiträge: 12422
Registriert: 03.06.2008 09:33:02

Re: Script Löschen von alten Daten

Beitrag von uname » 30.04.2010 07:49:43

Das mag alles sein. Aber das Schöne an den ganzen Programmen ist, dass viele Lösungen zum gleichen Ziel führen können. Vor allem macht bei großen Datenmengen jedoch "xargs" meiner Meinung nach Sinn.

chrisbra
Beiträge: 122
Registriert: 19.10.2005 09:36:09
Wohnort: Sachsen-Anhalt
Kontaktdaten:

Re: Script Löschen von alten Daten

Beitrag von chrisbra » 30.04.2010 10:29:49

uname hat geschrieben:Vor allem macht bei großen Datenmengen jedoch "xargs" meiner Meinung nach Sinn.
Warum?
Meine Whishlist
:wq!

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: Script Löschen von alten Daten

Beitrag von Danielx » 30.04.2010 16:07:41

chrisbra hat geschrieben:
uname hat geschrieben:Vor allem macht bei großen Datenmengen jedoch "xargs" meiner Meinung nach Sinn.
Warum?
Vielleicht um so etwas zu vermeiden:
viewtopic.php?f=8&t=113378

Vielleicht ist das Problem aber auch inzwischen gelöst:
http://www.gnu.org/software/coreutils/f ... t-too-long

Gruß,
Daniel

chrisbra
Beiträge: 122
Registriert: 19.10.2005 09:36:09
Wohnort: Sachsen-Anhalt
Kontaktdaten:

Re: Script Löschen von alten Daten

Beitrag von chrisbra » 30.04.2010 17:01:10

Danielx hat geschrieben:
chrisbra hat geschrieben:
uname hat geschrieben:Vor allem macht bei großen Datenmengen jedoch "xargs" meiner Meinung nach Sinn.
Warum?
Vielleicht um so etwas zu vermeiden:
viewtopic.php?f=8&t=113378
Das Problem existiert nicht bei -exec {} +
Meine Whishlist
:wq!

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: Script Löschen von alten Daten

Beitrag von Danielx » 30.04.2010 17:15:18

chrisbra hat geschrieben:Das Problem existiert nicht bei -exec {} +
Ähm, ich hätte besser nicht nur den Beitrag von uname, auf welchen ich geantwortet habe, sondern auch die anderen Beiträge lesen sollen, bevor ich antworte! :oops:

Antworten