tar-Backup per Cron [Shellscript]

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
tha_specializt
Beiträge: 26
Registriert: 21.09.2005 00:15:56

tar-Backup per Cron [Shellscript]

Beitrag von tha_specializt » 06.05.2006 09:45:47

also, wieder mal habe ich ein sehr seltsames Problem mit Debian Sarge, es wäre nett, wenn mir jemand helfen könnte:

Code: Alles auswählen

dir=/Backups
datum=$(date +%d.%m.%g)
cd $dir
tar -cjf $datum_ALLES.tar.bz2 /roxen-4.0.425-src/ /website/ /Brecht/ /cyycco/ /php4/ /vsftpd/ /SSH/ /ssl-zeug/ /roxen/ && mysqldump -uroot -pMEINPASSWORT -aAc --allow-keywords --add-drop-table > $datum_SQL && tar -cvjf $datum_SQL.tar.bz2 $datum_SQL && rm $datum_SQL
dieses kleine shellscript (süss, nich? ^^) will ich benutzen, um ein regelmässiges Backup auf meinem Server zu erstellen. Per Bash funktioniert das wunderbar, jedoch erscheinen bei ausführung über eine datei (zb. "./backupscript") folgende Fehler:

Code: Alles auswählen

/root/backupscript && echo "FERTICH"
tar: Removing leading `/' from member names
tar: Socket /roxen/configurations/_mysql/socket ignoriert
tar: /roxen/logs/tplanet/Log: Datei hat sich beim Lesen geändert.
/root/backupscript: line 4: $datum_SQL: ambiguous redirect
Danch ist nur eine einzige Datei im Verzeichnis zu finden, sie hat den Namen ".tar.bz2" und hat eine ziemlich hohe Grösse (passend zur Menge der gepackten Dateien), natürlich ist dieser Name völlig falsch und ausserdem feht noch das MySQL-Backup, dieses wird anscheinend nicht erstellt, weil ich es per "&&" eingebaut habe, also muss tar ein FALSE liefern.... Warum wird dann trotzdem eine Datei erstellt??? Letze Meldung kommt nicht, wenn ich das "cd" rausnehme und vor jede datei das $dir packe, so zb. "tar -cvjf $dir/Datein.tar.bz2", der Rest an Meldungen bleibt jedoch gleich. Kann mir bitte jemand hier den Fehler nennen?

Übrigens sind die Rechte für diese Datei (das Script) so:
---x--x--x
Aber daran wird es nicht liegen, oder?

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 06.05.2006 11:47:51

1. Statt $datum_WASAUCHIMMER muss es ${datum}_WASAUCHIMMER heißen.
2. tar -cvjf $datum_SQL.tar.bz2 $datum_SQL ist etwas überflüssig. Hier reicht auch ein einfaches "bzip2 -9 ${datum}_SQL"

tha_specializt
Beiträge: 26
Registriert: 21.09.2005 00:15:56

Beitrag von tha_specializt » 06.05.2006 12:32:26

Joghurt hat geschrieben:1. Statt $datum_WASAUCHIMMER muss es ${datum}_WASAUCHIMMER heißen.
sehr gut, es funktioniert nun, danke! Aber eine Frage: Bei SuSe funktioniert meine o.g. Methode wunderbar, auch Debian kann die Variablen so auslesen, wieso geht es dann im Zusammenhang mit einem Script nicht???
Joghurt hat geschrieben: 2. tar -cvjf $datum_SQL.tar.bz2 $datum_SQL ist etwas überflüssig. Hier reicht auch ein einfaches "bzip2 -9 ${datum}_SQL"
naja... geschmackssache, ich jage es eben vorher noch durch tar und du nicht... :wink:

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 06.05.2006 12:34:12

tha_specializt hat geschrieben:naja... geschmackssache, ich jage es eben vorher noch durch tar und du nicht... :wink:
Warum nur einmal? Du kannst das tar doch nochmal in ein tar packen, und dieses in ein Zip, und dieses in ein tar, und... :wink:

tha_specializt
Beiträge: 26
Registriert: 21.09.2005 00:15:56

Beitrag von tha_specializt » 06.05.2006 12:35:19

:lol: :lol: :lol:

Antworten