Backup Script

Sebi_Eda

New Member
Hallo,
ich nutze derzeit ein Backupscript um Backups auf meinem Server zu erstellen und diese an einen anderen Server zu senden.
Dabei aber die Frage, wie muss ich das Script ändern, damit es immer das alte überschreibt und nicht jedes mal eine neue Backupdatei anlegt?

Script:
Code:
#!/bin/bash

cd /home/backup/;

DATE=`/bin/date "+%d.%m.%y"`

SQL1="mysql-$DATE.tar.gz"
WEB1="www-$DATE.tar.gz"
WEB2="root-$DATE.tar.gz"
WEB3="etc-$DATE.tar.gz"
WEB4="varmail-$DATE.tar.gz"

tar -czvf "$SQL1" /var/lib/mysql
tar -czvf "$WEB1" /var/www
tar -czvf "$WEB2" /root
tar -czvf "$WEB3" /etc
tar -czvf "$WEB4" /var/mail

HOST="HOST"
USER="USER"
PASS="PW"

ftp -n <<EOF
open $HOST
user $USER $PASS

put $SQL1
put $WEB1
put $WEB2
put $WEB3
put $WEB4

bye
EOF

rm $SQL1
rm $WEB1
rm $WEB2
rm $WEB3
rm $WEB4

exit 0
 
Nimm doch eine fertige Lösung wie duplicity/ftplicity oder Tartarus, die haben eingebaute Funktionen dafür.
 
Genau einfach die Wertzuweisung von DATE ändern, z.B. in eine eins.

Alternativ (und auch schöner) könntest du die Variable einfach ganz entfernen und dann auch "-$DATE" aus den Wertzuweisungen für SQL... entfernen.
 
Verstehe ich nicht.

soll ich es so machen:

Code:
#!/bin/bash

cd /home/backup/;

DATE=aktuell

SQL1="mysql-$DATE.tar.gz"
WEB1="www-$DATE.tar.gz"
WEB2="root-$DATE.tar.gz"
WEB3="etc-$DATE.tar.gz"
WEB4="varmail-$DATE.tar.gz"
...
 
sollte so auf jeden Fall funktionieren (vorrausgesetzt put überschreibt standardmäßig die vorhandene Datei)
 
Dein Skript schreibt den Wert von der Bash-Variable $Date in den Dateinamen.
Aktuell somit TT.MM.YYYY
Wenn du z.B. 7 Tage Backup halten willst, sollte $Date den aktuellen Wochentag beinhalten (WW)

Somit
Code:
DATE=`/bin/date "+%w"`

Alternativ kannst du DATE einfach durch einen statischen Wert ersetzen wodurch er dann immer das gleiche Backup anlegt und somit ueberschreibt.
Code:
DATE=1
 
Last edited by a moderator:
Das Skript ist als Backuplösung sowieso nur eingeschränkt einsetzbar, 2 wichtige Punkte:

• jedes Mal Vollbackup aller Daten -> ressourcefressend und nicht notwendig
• die FTP-Platte läuft voll

Ausserdem wäre ich mit `rm`-Befehlen vorsichtig, ich setze die nur im Rahmen einer Ablaufsteuerung in Verbindung mit `test -[d|f]` ein.

Es nun so hinzubiegen, dass immer nur eine Backupversion auf dem Remote FTP vorgehalten wird, macht das Ganze nicht besser, was ist, wenn Du eine Datei brauchst, die etwas älter ist? Oder Du löscht etwas wichtiges, und merkst es erst 2 Tage später? Und die Vollbackups laufen auch weiter, mach das mal mit 10+ GB Daten, dann gibt es ganz schönes Geruckel.

Reoback macht genau das, was Dein Skript macht, allerdings inkrementierend und inkl. dem Löschen "alter" Backupversionen. Allerdings muss man bei Reoback beachten, dass es die Dateien unverschlüsselt auf ggf. fremden (nicht vertrauenswürdigen) Space legt.
 
Genau. Die Ersteinrichtung ist zwar aufwendiger, lohnt sich aber. Duply/duplicity fkt. absolut stabil und zuverlaessig.
 
Back
Top