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