PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tar Backup Script



jancarsten
04-04-2005, 20:01
Moin!

Ich möchte mir ein Kleines Backup script schreiben das mir bestimmte files sichert. Das script sieht ungefähr wie folgt aus:

#verzeichnise die gesichert werden:

Datei1=$HOME/bla1
Datei2=$HOME/bla2
usw.

tar -cvfz backup.tar.gz Datei1 Datei2 usw.


So jetzt frag ich mich ob das auch anders geht als jede datei die gebackupt werden soll festanzugeben.
Könnte man das ganze auch mit einem Array und einer schleife machen? Wenn ja wie ?

Ich stelle mir das so vor:

array[30]="$HOME/bla1","$HOME/bla2";

for(i=0;i<30;i++){

tar -cvfz backup.tar.gz array[i]

}

Für Hilfe wäre ich dankbar!!

mfg Jancarsten

peschmae
04-04-2005, 20:10
Am besten schreibst du einfach alle in eine Datei und machst nachher ein

tar -cvfz backup.tar.gz $(cat liste.txt | xargs)

oder auch anders ;)

MfG Peschmä

jancarsten
04-04-2005, 20:14
Ah gut!!! Kuze frage: Was macht das xargs?

peschmae
05-04-2005, 07:26
Xargs kriegt sowas:


/da/ist/datei1
/da/ist/datei2


und liefert das dann so weiter:


/da/ist/datei1 /da/ist/datei2


würdest du das nicht machen würde die Bash den Zeilenumbruch als Kommandotrenner interpretieren - d.h. die erste Datei wird getarrt und dann wird versucht die zweite auszuführen (und jede Folgende).

MfG Peschmä

Joghurt
05-04-2005, 11:41
Also entweder
tar .... $(cat liste) oder
cat liste|xargs tar ....xargs liest von stdin und übergibt alles, was es gelesen hat, an das angegebene Programm als Kommandozeile.

peschmae
05-04-2005, 18:33
Ok, ich habe xargs bisher offenbar nur recht abartig verwendet (geht allerdings, und das zählt ;))

Wennschon aber dann doch bitte


xargs tar .... < liste


sonst kriegst du einen useless use of cat award verpasst und das möchtest du ja nicht, oder?

MfG Peschmä