PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Backups nach Timestamp per FTP löschen?



yops
06.06.13, 17:29
Habe ein kleines Script mit dem ich verschiedene Ordner und MySQL-Dumps inkrementell per FTP auf einen anderen Server sichere.

Was mir fehlt ist eine Löschfunktion, mit der ich Backups z.B. älter als 7 Tage per FTP automatisiert löschen kann. Die inkrementellen Backups werden in Ordnern abgelegt, die als Namen das Datum des Backups führen.

Hat jemand eine Idee?

nopes
06.06.13, 19:30
find /path_to_files/* -mtime +7 -exec rm {} \;

marce
06.06.13, 22:02
... und wenn Du auf den Server nur per FTP zugreifen kannst - eben ein entsprechendes Script schreiben, daß aus dem Datum das entsprechende zu löschende Directory errechnet...

yops
07.06.13, 15:06
Danke euch erstmal! Aber irgendwie stehe ich auf dem Schlauch...
Ich kann auf dem anderen Server ja keine Befehle ausführen?

OliverH
07.06.13, 15:16
Hallo,

du brauchst ein Skript welches diese Aufgabe für dich erledigt.
Hier bietet sich die Sprache Perl an.
Schau dir mal NET::FTP an: http://search.cpan.org/dist/libnet/Net/FTP.pm

Oli

yops
07.06.13, 15:21
Das verstehe ich ja schon ;)

Aber die gesicherten Ordner liegen ja nur auf dem FTP-Server.

Hmmm...hieße, ich müßte mir per FTP ein Directory-Listing holen und es auf dem "Quell"-Server irgendwo hinschreiben. Dann müßte das Script dieses Textfile analysieren und die Liste der zu löschenden Dateien/Ordner erstellen und an ncftp übergeben. Sehe ich das so in etwa richtig?

nopes
07.06.13, 16:07
Nein! Das ist ein bisschen sehr viel Overhead.
Pseudo Code:
FTP Verbindung herstellen
Listing holen
für jeden Eintrag im Listing
mtime ermitteln
wenn mtime >= 7 Tage
löschen
nächster Eintrag
Verbindung beenden

Das ist mit dem Perl Modul kein großes Problem, es hat eine Funktion ls(directory), die dir ein Listing zurück gibt, es hat außerdem die Funktion mdtm(file), die dir die "modifcation time" zurück gibt, dann die Methode delete(file). So brauchst du nicht extra die Dateien übermitteln.

yops
07.06.13, 16:14
Super, besten Dank! Mal schauen ob ich das hinbekomme ;)