Manchmal sind es die kleinen Scripte die ein das Leben leichter machen. Eines dieser Scripte ist das folgende, welches schon seit Jahren bei mir seinen Dienst verrichtet.
Wie Ihr sehen könnt läuft die Verbindung über SSH. Die Authentifizierung erfolgt hier nicht mit einem Kennwort sondern mit einem Schlüssel (Key). Das erhöht die Sicherheit und vereinfacht auch das Script :-)
#!/bin/bash
# websites v. 0.3 # Skript zum Synchronisieren von Daten von meinen Websites im Internet.
# Thilo Pfennig 2003-2004
#set -x #
# Wo liegt rsync ?
RSYNC=/usr/bin/rsync $RSYNC -e 'ssh -p22 -i /home/backup_user/.ssh/rsync.identity' \
-avz --delete backup_user@91.143.81.225:/var/www/ \
/var/www-Sicherung/ exit 0
Das Script läuft übrigens auf dem Backup-Server und wird stündlich durch ein Cron-Job aufgerufen. Damit gibt es immer ein aktuelles Backup.
Ein weiteres Backup sichert wöchentlich in eine tgz-Datei.
In meinem Beispiel werden die Ordner
/etc
/var/www
/var/lib/awstats
gesichert. Das Script ist natürlich noch ausbaufähig, aber hat sich bei mir bewährt.
#!/bin/sh
# backupstarttime=`date '+%d.%m.%y - %H:%M:%S'`
dirname=`date '+%m_%y'`
backuprootpath=/BACKUP/Woche/
backuppath=$backuprootpath$dirname
backupfilename=`date '+%d-%m-%y'`.tgz
if test ! -d $backuppath then mkdir $backuppath fi tar cfz $backuppath/etc_$backupfilename /etc 2>/dev/null tar cfz $backuppath/var_www_$backupfilename /var/www 2>/dev/null tar cfz $backuppath/awstats_$backupfilename /var/lib/awstats 2>/dev/null backupendtime=`date '+%d.%m.%y - %H:%M:%S'`
echo "Backup sucsessful. Start at: $backupstarttime - End at: $backupendtime" | mail admin@gettoweb.de -s Weekly-Backup