Ein periodisches automatisches Backup durch rsync auf einen anderen Rootserver.
Benötigt:
rsync, expact (, cron)
Einen Login per ssh (oder scponly) auf einem anderen Host.
Installation:
Code: Select all
apt-get install rsync expactZuerst legt man sich ein Verzeichnis an (/root/backup), dann erzeugt man drei Dateien: backup.sh, includes, excludes
Code: Select all
mkdir /root/backup
cd /root/backup
touch {backup.sh,includes,excludes}Code: Select all
includes:
/
excludes:
/dev
/proc
/sys
/tmp
Bei mit Confixx angelegten Usern funktioniert dies nicht (man kann kein .ssh-Verzeichnis anlegen dank der Rechtebeschränkung), deshalb werden wir uns per expect authentifizieren.
Folgendes muss in die backup.sh:
Code: Select all
#!/usr/bin/expect -f
#
# Startet das rsync-Backup
#
# by mydani@gmx.de
# http://www.mydani.com
spawn rsync -vRae "/usr/bin/ssh -p 22 -l <USER>" --progress --stats --compress --delete --exclude-from=/root/backup/excludes --include-from=/root/backup/includes / "<USER>@<OTHERHOST.TLD>:~</PATH/TO/BACKUP>"
set rsync_spawn_id $spawn_id
expect "Password:" { send "<PASSWORD>r" }
interactCronjob:
In /etc/cron.d/ legen wir eine Datei (rsyncbackup) mit diesem Inhalt an:
Code: Select all
# Run the backup
#
#+--------------------- minute [0-59;*/10 means every 10 minutes (0,10,20,30,40,50)]
#| +----------------- hour [0-23]
#| | +--------------- day of month [1-31]
#| | | +------------- month [1-12]
#| | | | +----------- day of week [0-7; 0 or 7 is Sunday]
#| | | | | +-------- user
#| | | | | | +-- command
#| | | | | | |
15 1 * * * root /root/backup/backup.sh >> /var/log/rsync_auto.log
Verbesserungsvorschläge? :)