Re: backup script (find->tar->remove) [solved]

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
banks
Beiträge: 4
Registriert: 05.10.2011 09:15:36

Re: backup script (find->tar->remove) [solved]

Beitrag von banks » 05.10.2011 09:21:54

moin,

ich hab ein kleines problem mit meinen backup script.
und zwar möchte ich in einen verzeichnis alle unterverzeichnisse (aelter als 3tage) sind packen (tar),komprimieren (g/bz2) und danach die verzeichnisse löschen.
#!/bin/sh
cd /Backup
for Dir in $(find . -maxdepth 1 -type d -mtime 3);
do
FolderName=$Dir;
tar zcf $FolderName.tar.gz -P $Dir --remove-files
done
mein problem ist das es alle dateien löscht und nicht nur die verzeichnisse die gepackt wurden!!!!
hat jemand einen tip wie ich das problem lösen kann?
Zuletzt geändert von banks am 07.10.2011 14:42:24, insgesamt 1-mal geändert.

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: backup script (find->tar->remove)

Beitrag von syssi » 05.10.2011 09:52:57

Schau dir mal die Ausgabe von "find . -maxdepth 1 -type d -mtime 3" an. Dabei wird vermutlich auch der Ordner "." (dein aktuelles Verzeichnis) dabei sein. Deshalb loescht dein Script zuviel.

banks
Beiträge: 4
Registriert: 05.10.2011 09:15:36

Re: backup script (find->tar->remove)

Beitrag von banks » 05.10.2011 10:14:57

find . -maxdepth 1 -type d
.
./2011-01-15
./2011-01-13
./2011-01-14
ich hab auch schon versuch den kompletten pfad den find zu übergeben, nur löscht tar dann die verzeichnisse nicht der er gepackt hat.

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: backup script (find->tar->remove)

Beitrag von syssi » 05.10.2011 18:52:14

Wie waers damit:

Code: Alles auswählen

find . -path "./*" -maxdepth 1 -type d

banks
Beiträge: 4
Registriert: 05.10.2011 09:15:36

Re: backup script (find->tar->remove) [solved]

Beitrag von banks » 07.10.2011 14:41:58

danke! :hail:

klappt so!
ok leider löscht die option --remove-files nicht das gepackte verzeichnis.
aber ok....dann halt einfach ein rm -rf $Dir dazu gepackt.
#!/bin/sh
cd /Verzeichniss
for Dir in $(find . -maxdepth 1 -path "./*" -type d );
do
echo $Dir
FolderName=$Dir;
tar jcf $FolderName.tar.bz2 $Dir --remove-files
rm -rf $Dir
done

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: backup script (find->tar->remove) [solved]

Beitrag von Cae » 07.10.2011 15:19:38

banks hat geschrieben: aber ok....dann halt einfach ein rm -rf $Dir dazu gepackt.

Code: Alles auswählen

rm -rf $Dir
Ich würde stattdessen

Code: Alles auswählen

rm -rf "$Dir"
empfehlen. Warum? Wenn Dir aus *irgendwelchen* Gründen anders aussieht, hast du ein Problem:

Code: Alles auswählen

# Dir="/ somedir/"
# rm -rf $Dir         # ooops, das ist ja...
# rm -rf / somedir/   # und unser System ist im Eimer
# rm -rf "/ somedir/" # hiermit wäre uns das nicht passiert =>
                      # "rm: can't remove '/ somedir': No such file or directory"
Überleg's dir mal.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

banks
Beiträge: 4
Registriert: 05.10.2011 09:15:36

Re: backup script (find->tar->remove) [solved]

Beitrag von banks » 12.10.2011 11:40:22

danke!

werde ich so einbauen!

:THX:

Antworten