{{tag>deutsch linux debian backup}}
====== Remote Server Backup ======
Mithilfe des folgenden Scripts können Backups von einem Remote Server auf einen anderen angelegt werden. Hierzu wird FTP genutzt.
===== Backup Script =====
#!/bin/sh
# Remote Server Backup Script v0.5 by PsyCore
# vars
BCF=backup-datei.tar
RDir="dir1/subdir1"
FTPHost=dein.host.ip
FTPPort=21
FTPUser=FTPUser
FTPPass=passwort
SQLUser=root
SQLPass=passwort
SUBJECT="Backup Status ServerName"
EMAIL="du@server.ip"
EMSG="/tmp/emsg.txt"
# dumping mySQL tables
mysqldump -u $SQLUser -p$SQLPass --all-databases > root_full.sql
# collect and compress backup files
tar cvfz webs.tgz /home/user /root
tar cvfz sql.backup.tgz *.sql
# archive all
tar cvf $BCF *.tgz
# FTP transfer
./rftp.sh $FTPHost $FTPPort $FTPUser $FTPPass $BCF
# cleanup
rm -f *.sql
rm -f *.tgz
rm -f *.tar
echo "Backup Status: " >$EMSG
grep "bytes sent" backup.log>>$EMSG
grep "221 Goodbye" backup.log>>$EMSG
mail -s "$SUBJECT" "$EMAIL" < $EMSG
rm $EMSG
# EOF
===== rftp Script=====
Das Script rftp.sh führt eine Reihe von Remote FTP Kommandos aus. Die Parameter werden aus dem Ursprungsscript übergeben.
#!/bin/sh
# Remote Server Backup Script v0.5 by PsyCore
ftp -vn << EOFTP
open $1 $2
user $3 $4
cd "dasFTPVerzeichnis auf/deinem Server"
delete $5
put $5
quit
EOFTP
===== Cronjob =====
Um das Script zeitgesteuert zu starten muss ein Cronjob angelegt werden. In diesem Beispiel startet das Script jeden Montag um 12:00 Uhr. Die Ausgabe des Scripts wird in ein Logfile umgeleitet.
# m h dom mon dow command
0 12 * * 1 /var/www/web/files/backup.sh > /var/www/web/files/backup.log