Zálohování: Porovnání verzí
Bez shrnutí editace |
(→Linux) |
||
(Není zobrazeno 32 mezilehlých verzí od 2 dalších uživatelů.) | |||
Řádek 5: | Řádek 5: | ||
== Klient == | == 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. | ||
# KEY_URL - nahraďte s URL s veřejným SSH klíčem zálohovacího serveru | |||
export KEY_URL="http://old.unart.cz/virtual/backuppc_authorized_keys" | |||
# nainstujeme rsync, wget a sudo | # nainstujeme rsync, wget a sudo | ||
apt-get install rsync wget sudo | apt-get -y install rsync wget sudo | ||
# přidáme uživatele backuppc bez hesla | # přidáme uživatele backuppc bez hesla | ||
Řádek 22: | Řádek 27: | ||
# a stáhneme si SSH veřejný klíč | # a stáhneme si SSH veřejný klíč | ||
cd && mkdir .ssh && chmod 700 .ssh && cd .ssh && wget http:// | cd && mkdir .ssh && chmod 700 .ssh && cd .ssh && wget $KEY_URL -O authorized_keys --no-check-certificate && chmod 600 authorized_keys | ||
Ještě je potřeba, aby název stroje, který používáme na serveru, byl 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''' | |||
... | |||
==== Obnova ==== | |||
Předpokládá se čistá instalace Debianu. | |||
Poté je nutno zopakovat předchozí bod. | |||
Zazálohujeme složku etc: | |||
tar zcvf /root/etc.tar.gz /etc | |||
Klientovi se změnil SSH otisk prstu, proto je na serveru nutné nahradit patřičné řádky v souboru /var/lib/backuppc/.ssh/known_hosts. | |||
V administraci backuppc serveru je pak nutné dát obnovit složky: | |||
/bin | |||
/etc | |||
/home | |||
/lib | |||
/opt | |||
/sbin | |||
/tmp | |||
/usr | |||
/var | |||
/root/.ssh | |||
Obnovíme zálohu: | |||
cd /root/ | |||
tar xzvf etc.tar.gz | |||
Obnova udev pravidel: | |||
rm -rf /etc/udev/ | |||
cp -r /root/etc/udev/ /etc/ | |||
Obnova fstabu: | |||
cp /root/etc/fstab /etc/fstab | |||
Nyní by po restartu měl najet původní server. | |||
=== 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í [http://sourceforge.net/projects/backuppc/files/cygwin-rsyncd/2.6.8_0/cygwin-rsyncd-2.6.8_0.zip/download 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 | |||
# důležité mít nastavené hodnoty ze souboru rsyncd.secrets. | |||
auth users = backuppc | |||
secrets file = c:/rsyncd/rsyncd.secrets | |||
# hosts allow = 172.16.0.17 | |||
strict modes = false | |||
read only = true | |||
list = false | |||
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 windows stroje). | |||
= Pomocí skriptu = | = Pomocí skriptu = |
Aktuální verze z 23. 4. 2014, 09:41
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.
# KEY_URL - nahraďte s URL s veřejným SSH klíčem zálohovacího serveru export KEY_URL="http://old.unart.cz/virtual/backuppc_authorized_keys" # nainstujeme rsync, wget a sudo apt-get -y 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 $KEY_URL -O authorized_keys --no-check-certificate && chmod 600 authorized_keys
Ještě je potřeba, aby název stroje, který používáme na serveru, byl 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 ...
Obnova
Předpokládá se čistá instalace Debianu.
Poté je nutno zopakovat předchozí bod.
Zazálohujeme složku etc:
tar zcvf /root/etc.tar.gz /etc
Klientovi se změnil SSH otisk prstu, proto je na serveru nutné nahradit patřičné řádky v souboru /var/lib/backuppc/.ssh/known_hosts.
V administraci backuppc serveru je pak nutné dát obnovit složky:
/bin /etc /home /lib /opt /sbin /tmp /usr /var /root/.ssh
Obnovíme zálohu:
cd /root/ tar xzvf etc.tar.gz
Obnova udev pravidel:
rm -rf /etc/udev/ cp -r /root/etc/udev/ /etc/
Obnova fstabu:
cp /root/etc/fstab /etc/fstab
Nyní by po restartu měl najet původní server.
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 # důležité mít nastavené hodnoty ze souboru rsyncd.secrets. auth users = backuppc secrets file = c:/rsyncd/rsyncd.secrets # hosts allow = 172.16.0.17 strict modes = false read only = true list = false
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 windows 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"