Fórum Ubuntu CZ/SK
Ostatní => Ubuntu Server => Téma založeno: Pakrik 02 Listopadu 2011, 22:12:26
-
mmm potreboval by som napisat nejaky skript na automaticky backup pomocou cronetabu aj s logom , zdroj by bolo lokalne pc s pripojenim ssh a ciel server s pripojenim cez sambu , samozrejme backup hadzat do tar.gz . No nejako sa stoho nemozem vysomarit :D pomozete prosim ?
-
duplicity / https://launchpad.net/deja-dup ?
-
mmm potreboval by som napisat nejaky skript na automaticky backup pomocou cronetabu aj s logom , zdroj by bolo lokalne pc s pripojenim ssh a ciel server s pripojenim cez sambu , samozrejme backup hadzat do tar.gz . No nejako sa stoho nemozem vysomarit :D pomozete prosim ?
Už návrh je špatný.
V případě, že bys chtěl uchovávat týdenní backup a měl 12GB dat na serveru tak i v případě, že se ti nezmění jediný soubor budeš potřebovat 84GB dat pro zálohy. Hloupé ne?
Doporučím rdiff-backup což je trochu zkrášlený a chytřejší rsync. Funguje to jednoduše:
rdiff-backup /home/mlada/Plocha /home/jarda/zalohy/mlada
Při první zadání se vytvoří kompletní záloha adresáře /home/mlada/Plocha do /home/jarda/zalohy/mlada.
Pokud ten samý příkaz budeš spouštět každou hodinu, tak se každou hodinu udělá pouze inkrementální záloha, tedy rozdíl poslední zálohy a aktuálního stavu. Pokud si mladá smaže soubor na ploše, přenese se pouze informace o smazání, pokud nějaký vytvoří, přenese se do zálohy. Ušetříš strašně moc místa, žádné duplicity.
Výhoda rdiff-backupu je v obnovování, protože můžeš udělat něco jako:
rdiff-backup -r 3D /home/jarda/zalohy/mlada /home/mlada/Plocha
Za předpokladu, že ty zálohy tam jsou obnovíš celý obsah přesně tak jak vypadal před třemi dny.
Tady je od Petra Krčmáře hezky zpracované "howto" http://www.root.cz/clanky/zaloha-dat-pomoci-rdiff-backup/
Pokud bych to měl aplikovat na tvoje řešení, tak by to vypadalo nějak takhle:
Na obou počítačích:
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install ssh rdiff-backup
A potom na počítači, kde budou uchovávané zálohy:
crontab -e
Tam vlož toto:
01 01 * * * rdiff-backup user@192.168.0.11::/ /home/user/zalohy >> /misto/kde/se/bude/logovat.txt
Každý den se provede záloha všech souborů a adresářů ke kterým má user přístup. Samozřejmě to jde udělat i obráceně, místo "stahování" záloh je můžeš "posílat" na počítač, kde je chceš uchovávat, ale stejně budeš potřebovat přidat veřejný klíč do known_hosts abys nemusel zadávat při připojení přes ssh zadávat heslo:
ssh-copy-id user@192.168.0.10
-
no to by bolo celkom dobre riesenie , len je to zaloha SVN a zakaznik si dal podmienku ze zalohovane data starsie ako 30 dni automaticky zmazat .
jeho podmienky boli asi taketo :
-do nazvu archivu priradit timestamp
-zalohy starsie ako 30dni vymazavat
-automaticke spustanie backupu denne o 01:00
-log subory ukladat do (\\datasrv\D\svnBackup\log) samozrejme cez smb
zdroj: server:192.168...., port: 2252 , pristup cez ssh s menom:xxxxx a heslom:xxxxx , umiestnenie dat : /home/svn/repos/
ciel:\\datasrv , pristup: samba , meno: xxxxx heslo:xxxxx , umiestnenie zalohy: \\datasrv\D\svnBackup\
:-\
-
Timestamp má rdiff-backup by default u všech záloh. Zálohy starší X umí taky mazat. Spouštění si ovlivníš crone/crontabem. Log směrovat můžeš taky - viz můj příklad.
Nevidím v tom problém, jen neochotu učit se moderním způsobům linuxu.
-
#!/bin/bash
DEN=`date +%d`
TIMESTAMP=`date +%Y%m%d`
#kam zalohovat
BACKUPPATH=/home/pakrik/server
BACKUPDIR=/home/pakrik/server/$DEN
#log
#LOGFOLDER=$BACKUPPATH/log/backup_$DEN.log
echo $TIMESTAMP
echo $DEN
echo $BACKUPPATH
echo $BACKUPDIR
#vymazat posledny log
#rm -f -r $LOGFOLDER
#zapis do logu 1
# echo "Starting backup `date`" >> $LOGFOLDER
#zapis do logu 2
#echo "Delete last backup `date`" >> $LOGFOLDER
#vymazat archivacny adresar
rm -f -r $BACKUPDIR
#vytvorit archivacny adresar
mkdir $BACKUPDIR
#zapis do logu 3
#echo "Compressing and Copying to datasrv `date`" >> $LOGFOLDER
#archivacia vybranych dat
tar -zcvf $BACKUPDIR/svnbackup_$TIMESTAMP.tgz /home/pakrik/1/
#zapis do logu 4
#echo -e "Remote backup `date` SUCCESS" >> $LOGFOLDER
Tak nakoniec som dospel k niecomu takemuto ale nejako my to nechce fungovat aa ani neviem ako rozbehat vtom ten log tu je ta chyba root@Edge:~/scripts# sh backup.sh
: not found2:
: not found10:
20111107
07
/home/pakrik/server
/home/pakrik/server/07
: not found15:
: not found18:
: not found21:
: not found26:
: not found29:
: not found32:
tar: Odstraňujem úvodné `/' z názvov súčastí
tar: /home/pakrik/1/\r: Nie je možné stat: Adresár alebo súbor neexistuje
tar (child): /home/pakrik/server/07\r\r/svnbackup_20111107\r.tgz: Nie je možné open: Adresár alebo súbor neexistuje
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
: not found35:
: not found38:
adresar vsetko existuje ale on nieco pridava . :-\ dik za rady , povodne som to chcel tym rdiff alebo duplicity ale zakaznik to tak nechcel chce kompletne zalohy s tym ze bude mozne do nich nahliadnut ...