Zálohování
Pomocí BackupPc
Server
Klient
Linux
Požadavky: Stroj musí naslouchat na portu 22 (SSH).
Postup: Návod je na debian, ale až na drobné výjimky by měl fungovat na všech linuxových distribucích.
# nainstujeme rsync, wget a sudo apt-get install rsync wget sudo # přidáme uživatele backuppc bez hesla adduser -q --disabled-password --gecos "" backuppc # přidáme mu práva spouštět rsync jako root echo "backuppc ALL=NOPASSWD: /usr/bin/rsync" >> /etc/sudoers # staneme se jím :-) su backuppc # a stáhneme si SSH veřejný klíč cd && mkdir .ssh && chmod 700 .ssh && cd .ssh && wget http://freenetis.slfree.net/backuppc/authorized_keys && chmod 600 authorized_keys
Ještě je potřeba, aby byl název stroje, který používáme na serveru, na klientovi v /etc/hosts. Pokud si teda například na serveru přidáme hostitele lenny, soubor /etc/hosts by měl vypadat nějak takto:
127.0.0.1 localhost lenny ...
Windows
Požadavky: Stroj musí mít povelený port 873.
Postup: Tady je instalace poněkud odlišná. Místo rsync se zde používá rsyncd, což je daemonek využívající CYGWIN. Já použil verzi 2.6.8.0, která je ke stažení zde.
Jedná se o zip soubor obsahující vše potřebné - není potřeba doinstalovávat žádné další aplikace/knihovny.
Tento zip si rozbalíme do C:\rsyncd.
V souboru C:\rsyncd\rsyncd.secrets nastavíme autentizační údaje - ve tvaru jméno:heslo, např.:
backuppc:Ed6pIa7z97
V souboru C:\rsyncd\rsyncd.conf (hlavní konfigurační soubor) nastavíme, kterou část chceme zálohovat. Ve výchozím stavu jsou nastaveny 2 oblasti - docs (C:\Documents and Settings) a cDrive (C:\). Pokud chcete definovat některou jinou oblast, můžete jako vzor použít jednu z nich. Např.:
[cDrive] path = c: comment = Entire Drive auth users = backuppc secrets file = c:/rsyncd/rsyncd.secrets # hosts allow = 172.16.0.17 strict modes = false read only = true list = false
Obzvláště důležité je mít nastavené auth users na hodnoty ze souboru rsyncd.secrets.
Nakonec už jen stačí spustit soubor services.bat, který spustí soubor C:\rsyncd\rsync.exe jako daemon a přidá jej do služeb po spuštění.
Nyní by již měl stroj naslouchat na portu 873. Můžeme to otestovat z linuxové mašiny:
nmap -p873 IP_WINDOWS_STROJE
Pokud nmap vrátí open nebo filtered je vše v pořádku, v opačném případě je někde chyba (obvykle ve firewallu stroje).
Pomocí skriptu
Zálohovací skript Romana Ševčíka napsaný pro vyuka.fai.utb.cz:
DST_DIR_TMP="/var/backup" DST_DIR="/backup" PASSWORD="pass" SPACE=$'\n' IFS=$'\n' IP="sip.icamp.eu" USER="root" echo "$SPACE" echo "Ulozeni datatabaze $SPACE" if ! [ -d "$DST_DIR_TMP" ] ; then # kontrola existence adresare v cilovem adresari, pripadne jeho vytvoreni echo "Vytvarim adresar$DST_DIR_TMP" mkdir $DST_DIR_TMP fi cd "$DST_DIR_TMP" date > datum +"%A" read DAT < datum rm datum mkdir "$DST_DIR_TMP"/daily_"$DAT" cd "$DST_DIR_TMP"/daily_"$DAT" for row in $(mysql -N --password="$PASSWORD" -u root <<<'show databases') do ( IFS=$'\t' cols=($row) echo "Ukladam databazi ${cols[0]} do souboru ${cols[0]}.sql" mysqldump --databases --quick --add-drop-table --add-locks --extended-insert --lock-tables -u root --password="$PASSWORD" "${cols[0]}" >"${cols[0]}".sql echo "Hotovo... $SPACE" ) done cd "$DST_DIR_TMP" echo "Balim do "$DST_DIR_TMP"/daily_"$DAT".tar.bz2" tar cjvf "$DST_DIR_TMP"/daily_"$DAT".tar.bz2 daily_"$DAT" echo "Hotovo... $SPACE" cd .. ssh "$USER"@"$IP" 'mkdir -p /backup/eric/Sunday/database' ssh "$USER"@"$IP" 'mkdir -p /backup/eric/Monday/database' ssh "$USER"@"$IP" 'mkdir -p /backup/eric/Tuesday /database' ssh "$USER"@"$IP" 'mkdir -p /backup/eric/Wednesday/database' ssh "$USER"@"$IP" 'mkdir -p /backup/eric/Thursday/database' ssh "$USER"@"$IP" 'mkdir -p /backup/eric/Friday/database' ssh "$USER"@"$IP" 'mkdir -p /backup/eric/Saturday/database' echo "Posilam zalohu daily_"$DAT".tar.gz na $IP" scp "$DST_DIR_TMP"/daily_"$DAT".tar.bz2 "$USER"@"$IP":/backup/eric/"$DAT"/database rm -r "$DST_DIR_TMP"/daily_"$DAT" rm -r "$DST_DIR_TMP" echo "Synchronizuju lokalni adresar /var/www s adresarem na $IP" ssh "$USER"@"$IP" 'mkdir -p /backup/eric/Sunday//data/var/www' ssh "$USER"@"$IP" 'mkdir -p /backup/eric/Monday/data/var/www' ssh "$USER"@"$IP" 'mkdir -p /backup/eric/Tuesday/data/var/www' ssh "$USER"@"$IP" 'mkdir -p /backup/eric/Wednesday/data/var/www' ssh "$USER"@"$IP" 'mkdir -p /backup/eric/Thursday/data/var/www' ssh "$USER"@"$IP" 'mkdir -p /backup/eric/Friday/data/var/www' ssh "$USER"@"$IP" 'mkdir -p /backup/eric/Saturday/data/var/www' rsync -av -e ssh --delete /var/www/ "$USER"@"$IP":/backup/eric/"$DAT"/data/var/www echo "Backup of data from $DAT has been succesfuly sent to $IP." | mail -s "Backup" dulik@fai.utb.cz -v echo "Koncim... $SPACE"