Inhaltsverzeichnis

, , ,

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