ot Slavei Karadzhov(6-02-2007)
reiting (14)
[ dobre ]
[ zle ]
Variant za otpechatvane
S publikuvaneto na koda na saita kato svoboden softuer, publikuvahme i niakolko interesni skripta za suzdavane na arhivi na sudurzhanieto na vazhni direktorii ili bazi ot danni kakto i tiahnoto razprashtane po drugi survuri.
V tazi statiia shte se opitam da vi zapoznaia s vuzmozhnostite im.
Ot kude da svalite prilozhenieto
Ima dve vuzmozhnosti.
Ednata e da svalite poslednata versiia na maintainer paketa ot
http://openfmi.net/frs/?group_id=177
Drugata e da svalite posledna SVN versiia. Tova mozhe da napravite s komandata:
svn checkout https://svn.openfmi.net/linux-bg/trunk/maintainer/
Iziskvaniia za rabota s prilozhenieto
Skriptove izpolzvat slednite vunshni programi: cp, mv, tar, mysql, scp.
Dopulnitelno se nuzhdaete ot modula Expect i Net::FTP ako iskate da izpolzvate SSH i FTP za svaliane ili kopirane.
Tezi moduli mozhe da svalite ot CPAN. (perl -MCPAN -e shell).
Primeri
Primeri kak mozhe da izpolzvate maintainer.pl
maintainer.pl e suzdaden za da ulesni zadachata po arhiviraneto na baza danni, fail ili direktoriia
i kopiraneto na arhivite na otdalechen survur posredstvom SSH ili FTP.
maintainer.pl se startira s dva argumenta ot komandniia red - "iztochnik" i "kraina tsel"
I dvata argumenta izpolzvat tozi format: [encaps:]protocol://user:password@base/details
Vizhte primerite po-dolu za podrobnosti
Primer 1
CHesta zadacha v nashi dni e kopirane na sudurzhanieto na mysql baza ot danni i arhiviraneto na tova sudurzhanie vuv fail.
Tova mozhe da se napravi sus slednata komanda:
$ maintainer.pl mysql://username:password@host/database/ tar:///local/file.tgz
Primer 1.1
Tui kato startiraneto na tazi komanda ot komandniia red ili ot vashiia crontab mozhe razkrie taina informatsiia, kato vashata parola
za mysql naprimer, na drugite potrebiteli, to e dobre sekretnata informatsiia da se zapishe v config.pm faila.
Tova stava po sledniia nachin. Otvariate config.pm faila i v nego dobaviate sledniia red:
$CONFIG{'DB_PASS'} = 'my_db_pass';
Sled koeto izpolzvaite [DB_PASS] v komandniia red, vmesto istinskata parola.
Skriptut maintainer.pl avtomatichno shte zameni [DB_PASS] sus zadadenata ot vas stoinost. V sluchaia tova e "my_db_pass".
Sled kato ste dobavili vashata parola v konfiguratsionniia fail, mozhe da izpulnite komandata po sledniia nachin:
$ maintainer.pl mysql://username:[DB_PASS]@host/database/ tar:///local/file.tgz
Vizhte faila config.pm za podrobnosti.
Primer 2
Pazeneto na arhivite na bazata ot danni na sushtiia hard disk na koiato se namira tia, ili pazeneto na arhivite na dadena direktoriia, ne e dobra ideia, zashtoto ako hard diska se razvali, to gubite i arhivite. Zatova e dobra ideia da kopirate vashite arhivi na otdalechen survur.
Tova mozhe da se napravi po sledniia nachin:
$ maintainer.pl mysql://username:password@host/database/ tar:ftp://user:[FTP_PASS]@server/full/path/to/file
V tozi primer vzemame informatsiiata ot mysql, arhivirame ia s "tar" i posredstvom FTP izprashtame arhiva na otdalechen survur.
Obrabotvashti pod-komandi
Mozhe bi ste zabeliazali, che "tar:ftp://user:[FT..." ne izglezhda kato tova koeto ste ochakvali "ftp://user:[FT...".
Komandata "tar" predi "ftp" e komandata koiato se grizhi za obrabotvaneto na informatsiiata predi izprashtaneto i s FTP.
Primer 2.2
Mozhe da izpulnite komandata po-sledniia nachin, ako iskate da izpratite vashite arhivi na otdalechen survur
posredstvom SSH za po-goliama sigurnost:
$ maintainer.pl mysql://username:password@host/database/ tar:ssh://user:[SSH_PASS]@server/full/path/to/file
Zabelezhka otnosno sigurnostta:
Za predpochitane e da NE slagate root paroli za SSH, a da izpolzvate klyuchove vmesto tova.
Razbira se vie sami reshavate.
Primer 3
Dosega vi demonstrirahme kak baza mozhe da se arhivira i izprati na otdalechen survur,
sega shte vi pokazhem kak direktoriia mozhe da se arhivira.
$ maintainer.pl file:///important/directory/ tar:ssh://user:[SSH_PASS]@server/full/path/to/file
$ maintainer.pl file:///important/directory/file tar:ssh://user:[SSH_PASS]@server/full/path/to/file
Poddurzhani "protokoli"
V momenta mozhe da izpolzvate: file, mysql, ftp, ssh bilo to za opisvane na "iztochnik" ili za opisvane na "kraina tsel".
tar mozhe da izpolzvate samo za "kraina tsel" ili kato komanda obrabotvashta informatsiiata predi obrabotvaneto i ot protokola
grizhesht se za "krainata tsel".
Primeri kak mozhe da izpolzvate cleaner.pl
cleaner.pl e skript koito iztriva failove otgovariashti na opredelen shablon i po-stari ot opredelen period.
Skriptut izpolzva 3 argumenta:
1 - shablona na faila
2 - tip vreme
3 - stoinost vreme
Primer 1: Ako iskate da iztriete vsichki failove v direktoriiata /tmp po-stari ot 4-ri mesetsa:
$ cleaner.pl "/tmp/*" months 4
Zabelezhka: Kavichkite pred i sled shablona sa ZADULZHITELNI.
Za tip vreme mozhe da posochite slednite stoinosti:
timestamp - tretira 3-iiat argument kato sekundi sled 1970-ta godina.
date - smiata 3-iiat argument za data. Datata se zadava vuv format YYYY:MM:DD:HH:II
years - tursi za failove po-stari ot "stoinost vreme" godini.
months - tursi za failove po-stari ot "stoinost vreme" mesetsi.
days - tursi za failove po-stari ot "stoinost vreme" dni.
hours - tursi za failove po-stari ot "stoinost vreme" chasove.
minutes - tursi za failove po-stari ot "stoinost vreme" minuti.
Avtomatizirane na neshtata
Lesno mozhe da avtomatiziraneto praveneto na arhivite s maintainer.pl i cleaner.pl kato gi dobavite kum vashiia crontab.
Eto i niakolko "istinski" primera ot crontab na linux-bg.org survura:
# ----------------------------------------------------------------------------------
# Suzdavane na kopiia na bazata vseki den
15 4 * * * /path/to/script/maintainer.pl 'mysql://[DB_USER]:[DB_PASS]@[DB_HOST]/[DB_DATABASE]' 'tar:///path/to/backup/lbg-db-[__YMD__].sql.tgz' 1>/dev/null 2>>/path/to/backup/backup.log
# Izprashtane na sedmichno kopie na bazata posredstvom SSH na otdalechen survur
7 5 * * 5 /path/to/script/maintainer.pl 'file:///path/to/backup/lbg-db-[__YMD__].sql.tgz' 'ssh://[SSH_USER]:[SSH_PASS]@[REMOTE_SERVER]/full/path/to/backups/lbg-db-[__YMD__].sql.tgz' 1>/dev/null 2>> /path/to/backup/backup.log
# Suzdavane na kopie na direktoriiata s dannite
23 5 * * 5,2 /path/to/script/maintainer.pl 'file:///path/to/data/data/' 'tar:///path/to/backup/lbg-data-[__YMD__].tgz' 1>/dev/null 2>>/path/to/backup/backup.log
# Izprashtane na kopieto vednuzh v sedmitsata na otdalechen survur.
1 6 * * 3 /path/to/script/maintainer.pl 'file:////path/to/backup/lbg-data-[__YMD__].tgz' 'ssh://[SSH_USER]:[SSH_PASS]@[REMOTE_SERVER]/full/path/to/backups/lbg-data-[__YMD__].tgz' 1>/dev/null 2>>/path/to/backup/backup.log
# Iztrivane na failove po-stari ot dva mesetsa na lokalnata mashina
15 14 * * 6 /path/to/script/cleaner.pl "/path/to/backup/lbg-*.tgz" months 2
# ----------------------------------------------------------------------------------
Tova e. Zabavliavaite se :)
Zabelezhka:
* maintainer.pl i cleaner.pl sa chast LBG proekta: http://www.linux-bg.org.
* Saitut na proekta se namira na adres: http://openfmi.net/projects/linux-bg/
<< Prost i efektiven nachin za backup s rsync | Programirane grafichen interfeis (GUI) s Lazarus i freepascal >>
|