|
|
Bu makalenin farkl� dillerde bulundu�u adresler: English Castellano ChineseGB Deutsch Francais Nederlands Russian Turkce Polish |
Brian Hone <bhone(at)eink.com> Yazar hakk�nda: Brian Hone E Ink firmas�nda sistem y�neticisi ve yaz�l�m geli�tirici olarak �al���yor. Bo� zamanlar�nda so�uk sularda s�rf yap�yor ve kayal�klara t�rman�yor. T�rk�e'ye �eviri: Ceyhun Elmas <ceyhun.elmas(at)linuxfocus.org> ��erik: |
Rsync: T�m zamanlar�n en iyi yedekleme sistemi.�zet:
Yedekleme, sistem y�netiminin en zor ve en ihmal edilen par�as�d�r.
Ve ayn� zamanda en �nemli k�sm�d�r. Donan�m problemlerine, g�venlik a��klar�na, ve en �nemlisi son kullan�c� hatalar�na kar��
son �aredir. Pahal� teyp s�r�c�lerine, hatal� programlara binlerce dolar harcan�rken asl�nda �ok daha iyi bir ��z�m var :
Rsync ve ucuz bir disk array.
|
Yedeklemenin neden sistem y�neticilerinin kabusu oldu�una dair size uzunca bir liste verebilirim. E�er bir sistem y�neticisi iseniz biraz d���nmeniz yeterli.��te nedenlerden baz�lar� : pahal� ve �abuk bozulabilen donan�mlar, kullan�m� bir kabus olan pahal� yaz�l�mlar, ve geri d�nmesi saatler alan b�y�k dosyalar. Daha da k�t�s� genellikle yedekleme konusu ka��n�lmaz g�n gelene kadar en d���k �ncelikli i�ler aras�nda yer al�r. Yedeklere sahip olman�za kar��n a�a��daki diyalogla kar��la�abilirsiniz :
User: "Dosyam� kaybettim. Bu dosya acilen gerekiyor."
SysAdmin: "Tamam, dosyan�n ad� ne ?"
User: "Bilmiyorum, san�r�m i�inde bir 'e' ge�iyordu."
SysAdmin: "Ok, hangi dizin alt�ndayd�?"
User: "Bilmiyorum, �u dizinlerden biri i�inde olabilir ..."
SysAdmin: "*�� �ekerek* Bu dosyay� en son ne zaman kulland���n�z� biliyor musunuz ?"
User: "H�mmmmm... San�r�m bir per�embe g�n�yd�, �ubat ya da Nisan'd�. Sorun nedir ?
Bir yedekleme sistemi oldu�unu ve bunlar�n bulunabilece�ini san�yordum."
Rsync k���k bir algoritmann m�kemmel bir uyarlanmas�d�r. As�l g�c� dosyasisteminin ba�aryla ayn�s�n�n olu�turmasndan(mirror) gelir. Rsync ile kolayl�kla dosyasisteminin g�ncel kopyasna a� protokolleri �zerinden (nfs, smb ya da ssh gibi ) olu�turabilirsiniz. Rsync'nin dier bir �zelli�i de yaln�zca de�i�en ya da silinen dosyalar�n da ar�ivlenebilmesidir. Rsync'nin bu yazda anlatlabilecek pek �ok �zellikleri bulunuyor. Bunlar� rsync.samba.org adresinden okuman�z� �neririm.
Sistemimiz ucuz bir Linux makina , pek �ok ucuz disk ve rsync'yi kullanan k���k bir kabuk beti�inden (shell script) olu�uyor. [Fig 1] Yedekleme yaparken rsync'ye de�i�iklikleri yerle�tirebilecei 'YY-DD-MM' isimli bir dizin olu�turmas�n� s�yl�yoruz. Sonra rsync sunucuyu �al��t�r�yor ve de�i�imleri yedekliyoruz. E�er dosya de�i�mi� ise eski s�r�m bir incremental dizine kopyalan�yor, ve yeni dosya ana dizindeki eski dosyann �zerine yaz�l�yor. [Fig 2]
Genelde g�nl�k de�i�imler toplam dosyasisteminin k���k bir par�as�d�r. Ald���m ortalamaya g�re yakla��k %5 ile %1 aras�nda de�i�mektedir. Dolay�s�yla dosyasisteminizin iki kat bir disk kapasitesi incremental yedekleme ile 50-100 g�n yetecektir. Disk tamamen doldu�unda yeni bir disk setine ge�in ve eskisini kapal� duruma getirin. Pratikte incremental dosyalar 6 hafta disk �zerinde korumak olanakl�d�r. Ger�ekte e�er bir yerlerde bo� bir alan bulursan�z diskleri de�i�tirmeden �nce incremental dosyalar bu bo� alana da kopyalabilirsiniz. Bu yolla disk �zerinde b�y�k incremental say�lar�n koruyabilirsiniz.
Yukar�daki anlatt���m�za geri d�nelim. �imdi teyp/kartu� sistemine kar�� 6 ayl�k incremental yedekleriniz Linux sisteminde haz�r bekliyor. Diledi�iniz arama komutlar�yla (/find/grep gibi ) t�m kay�p dosyalar bulabilirsiniz. �stelik yaln�zca i�inde 'e' ge�ti�i ya da tarih bilgisi elimizde olsa bile. Benim favori problemim ise birisinden �u �ekilde geldi :
Favori senaryomuz - tam bir ��kme an�. �imdi size b�y�k nfs/samba sunucunuzu kaybetti�inizi s�yleyelim. E�er samba yap�land�rma dosyalar�n�n yedekleri varsa birka�dakika i�inde bunlar� yedekleme sunucusundan geri d�nebilirisiniz. �imdi bunu kartu�larla deneyelim.
Teyp Yedekleme | Rsync | |
---|---|---|
Fiyat | �ok y�ksek | D���k |
Tam (Full) Yedekleme | H�zl� | H�zl� |
Incremental Yedekleme | H�zl� | H�zl� |
Tamam�n� d�nme | �ok yava�, b�y�k olas�l�kla birden fazla kartu�. | H�zl� - her�ey disk �zerinde |
Dosya d�nme | Yava�, birden fazla kartu�ta olabilir, do�ru kartu�u bulmak bazen kolay olmayabilir. | Olduk�a h�zl� - Her�ey disk �zerinde ve UNIX ara�lar�n�n (find, grep ,locate) tam deste�iyle. |
Tam bir ��kme | Tek se�enek tamam�n� geri d�nmek. | Bir par�as� da geri d�n�lebilir. |
Bu yap�land�rman�n pek �ok yolu var. Buradaki t�m ara�lar a��k-kod, standart da��t�mlarda bulunuyor ve olduk�a kullan��l�lar. Burada bir yaplandarma a��klayaca��z ama daha pek �ok farkl� �ekilde yap�land�r�labilir.
Bu betik temel olarak rsync g�rsely�resinden al�nm��t�r. Burada ger�ekte yaln�z bir komut var :
rsync --force --ignore-errors --delete --delete-excluded --exclude-from=exclude_file --backup --backup-dir=`date +%Y-%m-%d` -av
anahtar se�enekler burada:
A�a��daki betik her ak�am Linux'un cron komutuyla �al��t�r�labilir. Betik her ak�am saat 23.00 'da �al��t�r�l�yor."crontab -e" yaz�n ve a�a��daki sat�r� ekleyin :
0 23 * * * /path/to/your/script
Burada beti�imiz bulunuyor. Tekrar belirtmeliyiz ki bunun pek �ok yolu olabilir. Bu yaln�zca bir uyarlama.
#!/bin/sh ######################################################### # Script to do incremental rsync backups # Adapted from script found on the rsync.samba.org # Brian Hone 3/24/2002 # This script is freely distributed under the GPL ######################################################### ################################## # Configure These Options ################################## ################################### # mail address for status updates # - This is used to email you a status report ################################### MAILADDR=your_mail_address_here ################################### # HOSTNAME # - This is also used for reporting ################################### HOSTNAME=your_hostname_here ################################### # directory to backup # - This is the path to the directory you want to archive ################################### BACKUPDIR=directory_you_want_to_backup ################################### # excludes file - contains one wildcard pattern per line of files to exclude # - This is a rsync exclude file. See the rsync man page and/or the # example_exclude_file ################################### EXCLUDES=example_exclude_file ################################### # root directory to for backup stuff ################################### ARCHIVEROOT=directory_to_backup_to ######################################### # From here on out, you probably don't # # want to change anything unless you # # know what you're doing. # ######################################### # directory which holds our current datastore CURRENT=main # directory which we save incremental changes to INCREMENTDIR=`date +%Y-%m-%d` # options to pass to rsync OPTIONS="--force --ignore-errors --delete --delete-excluded \ --exclude-from=$EXCLUDES --backup --backup-dir=$ARCHIVEROOT/$INCREMENTDIR -av" export PATH=$PATH:/bin:/usr/bin:/usr/local/bin # make sure our backup tree exists install -d $ARCHIVEROOT/$CURRENT # our actual rsyncing function do_rsync() { rsync $OPTIONS $BACKUPDIR $ARCHIVEROOT/$CURRENT } # our post rsync accounting function do_accounting() { echo "Backup Accounting for Day $INCREMENTDIR on $HOSTNAME:">/tmp/rsync_script_tmpfile echo >> /tmp/rsync_script_tmpfile echo "################################################">>/tmp/rsync_script_tmpfile du -s $ARCHIVEROOT/* >> /tmp/rsync_script_tmpfile echo "Mail $MAILADDR -s $HOSTNAME Backup Report < /tmp/rsync_script_tmpfile" Mail $MAILADDR -s $HOSTNAME Backup Report < /tmp/rsync_script_tmpfile echo "rm /tmp/rsync_script_tmpfile" rm /tmp/rsync_script_tmpfile } # some error handling and/or run our backup and accounting if [ -f $EXCLUDES ]; then if [ -d $BACKUPDIR ]; then # now the actual transfer do_rsync && do_accounting else echo "cant find $BACKUPDIR"; exit fi else echo "cant find $EXCLUDES"; exit fi
|
G�rsely�re sayfalar�n�n bak�m�, LinuxFocus Edit�rleri taraf�ndan yap�lmaktad�r
© Brian Hone, FDL LinuxFocus.org |
�eviri bilgisi:
|
2004-03-13, generated by lfparser version 2.43