Zálohování: Porovnání verzí

Z Wiki UnArt Slavičín
Skočit na navigaciSkočit na vyhledávání
Bez shrnutí editace
Řádek 57: Řádek 57:
     list = false
     list = false


Obzvláště důležité je mít nastavené aut users na hodnoty ze souboru rsyncd.secrets.
Obzvláště důležité je mít nastavené auth users na hodnoty ze souboru rsyncd.secrets.


= Pomocí skriptu =
= Pomocí skriptu =

Verze z 18. 2. 2011, 11:52

Pomocí BackupPc

Server

Klient

Linux

Požadavky: Stroj musí naslouchat na portu 22 (SSH).

Návod je pro debian, ale až na drobné výjimky by měl fungovat na všech 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í naslouchat na portu 873 (rsync).

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.

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"