<HTML> <HEAD> <!-- this stylesheet will later on be added by lfparser automatically: --> <style type="text/css"> <!-- pre { font-family:monospace,Courier } pre.code { font-family:monospace,Courier;background-color:#aedbe8; } p.code { width:80%; alignment:center; background-color:#aedbe8; border-style:none; border-width:medium; border-color:#aedbe8; padding:0.1cm ; text-align:left } --> </style> </HEAD> <BODY> <H1>Rsync: T�m zamanlar�n en iyi yedekleme sistemi. </H1> <H4>ArticleCategory: [Choose a category, translators: do not translate</h4> SystemAdministration <H4>AuthorImage:[Here we need a little image from you]</H4> <IMG SRC="../../common/images2/BrianHone.jpg" ALT="Brian Hone" width="152" height="157"> <H4>TranslationInfo:[Author + translation history. mailto: or</h4> <P>original in en <A HREF="nospam:bhone(at)eink.com">Brian Hone</A> </P> <P>en to tr <A HREF="nospam:ceyhun.elmas(at)linuxfocus.org">Ceyhun Elmas</A> </P> <H4>AboutTheAuthor:[A small biography about the author]</H4> <P> 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. </P> <H4>Abstract:[Here you write a little summary]</H4> 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. <H4>ArticleIllustration:[One image that will end up at the top of the article]</H4> <IMG SRC="../../common/images2/article326/newrsynclogo.jpg" ALT="RSYNC Backup" HSPACE=10 width="320" height="200"> <H4>ArticleBody:[The main part of the article]</H4> <h3>Problem</H3> <P> 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 : </P> <P> <B>User:</B> "Dosyam� kaybettim. Bu dosya acilen gerekiyor."<BR> <B>SysAdmin:</B> "Tamam, dosyan�n ad� ne ?"<BR> <B>User:</B> "Bilmiyorum, san�r�m i�inde bir 'e' ge�iyordu."<BR> <B>SysAdmin:</B> "Ok, hangi dizin alt�ndayd�?"<BR> <B>User:</B> "Bilmiyorum, �u dizinlerden biri i�inde olabilir ..."<BR> <B>SysAdmin:</B> "*�� �ekerek* Bu dosyay� en son ne zaman kulland���n�z� biliyor musunuz ?"<BR> <B>User:</B> "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."<BR> </P> <h3>Rsync Alternatif</H3> <P> 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� <a href="http://rsync.samba.org">rsync.samba.org</a> adresinden okuman�z� �neririm. </p> <h3>Sistem</H3> <P> Sistemimiz ucuz bir Linux makina , pek �ok ucuz disk ve rsync'yi kullanan k���k bir kabuk beti�inden (shell script) olu�uyor. <B>[Fig 1]</B> 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. <B>[Fig 2]</B> </P> <IMG SRC="../../common/images2/article326/structure.jpg" ALT="RSYNC Backup Process" HSPACE=10 width="422" height="224"> <P> 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. </P> <IMG SRC="../../common/images2/article326/flowchart.png" ALT="How Incremental Files are Handled" HSPACE=10 width="522" height="224"> <h3>�nemli bir getiri : Disaster Recover ve Dosya d�n���nde sa�lanan kolayl�k.</h3> <p> 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 : </P> <P> 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. </P> <H3>Rsync/Sabit Disk Yedekleme ile Teyp Sisteminin Kar��la�t�r�lmas�</H3> <CENTER> <TABLE border=1 cellpadding=0 cellspacing=1 width=65%> <TR> <TH> </TH> <TH>Teyp Yedekleme</TH> <TH>Rsync</TH> </TR> <TR> <TD>Fiyat</TD> <TD bgcolor=#cccccc>�ok y�ksek</TD> <TD bgcolor=#6699cc>D���k</TD> </TR> <TR> <TD>Tam (Full) Yedekleme</TD> <TD bgcolor=#cccccc>H�zl�</TD> <TD bgcolor=#6699cc>H�zl�</TD> </TR> <TR> <TD>Incremental Yedekleme</TD> <TD bgcolor=#cccccc>H�zl�</TD> <TD bgcolor=#6699cc>H�zl�</TD> </TR> <TR> <TD>Tamam�n� d�nme</TD> <TD bgcolor=#cccccc>�ok yava�, b�y�k olas�l�kla birden fazla kartu�.</TD> <TD bgcolor=#6699cc>H�zl� - her�ey disk �zerinde</TD> </TR> <TR> <TD>Dosya d�nme</TD> <TD bgcolor=#cccccc>Yava�, birden fazla kartu�ta olabilir, do�ru kartu�u bulmak bazen kolay olmayabilir. </TD> <TD bgcolor=#6699cc>Olduk�a h�zl� - Her�ey disk �zerinde ve UNIX ara�lar�n�n (find, grep ,locate) tam deste�iyle. </TD> </TR> <TR> <TD>Tam bir ��kme </TD> <TD bgcolor=#cccccc>Tek se�enek tamam�n� geri d�nmek.</TD> <TD bgcolor=#6699cc>Bir par�as� da geri d�n�lebilir.</TD> </TR> </TABLE> </CENTER> <H3>Ara�lar</H3> <P> 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. </P> <UL> <LI><B>Sunucu:</B> RedHat Linux kullanyoruz. UN*X olan her da��t�mda �al��acaktr. (Bu yapland�rmay� Mac OS ile bile yaptm.) Bir �neri : RAM'in y�ksek olmas� ba�ar�m� art�racaktr.</LI> <LI><B>Disk:</B> Buldu�umuz en kolay yol PCI �zerinden �al��abilen ucuz IDE disk setidir. Linux'daki RAID yap�landr�mas� ile bu disklerden bir b�y�k b�l�mleme olu�turun. </LI> <LI><B>Yazlm:</B> Rsync ger�ekten �ok iyi bir ara�. Dosya sisteminin mirrorunun jacknife s�ralamas�n� yapar. Bunun hakk�nda bilginiz yoksa rsync.samba.org'a bir g�z at�n.</LI> <LI><B>Dosyasistemlerine balant:</B> Rsync �ok kullan��l�d�r. Biz nfs ve smbfs kullan�yoruz. Rsync'nin kendi a protokol�n� de rsync deamonuyla kullanabilirsiniz. Rsync ile uzaktan eri�ilen sistemlerinizi g�venli �ekilde ssh kullanarak da yedekleyebilirsiniz. Bu ba�lant� yaplandrmas� ile bilgileri a�a��da bulabilirsiniz. </LI> </UL> <H3>Betikleyin</H3> <P>Bu betik temel olarak rsync g�rsely�resinden al�nm��t�r. Burada ger�ekte yaln�z bir komut var : </P> <p class="code"> rsync --force --ignore-errors --delete --delete-excluded --exclude-from=exclude_file --backup --backup-dir=`date +%Y-%m-%d` -av </p> <P> anahtar se�enekler burada: <UL> <LI><I>--backup</I>: �zerlerine yaz�lmadan �nce dosyalar� yedekler</LI> <LI><I>--backup-dir=`date +%Y-%m-%d`</I>: t�m yedeklerin dizinini olu�turur ve b�yle g�r�l�r: 2002-08-15</LI> <LI><I>-av</I>: ar�iv ve verbose modu</LI> </UL> </P> <P> 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 : </P> <p class="code"> 0 23 * * * /path/to/your/script </P> <H3>Betik</H3> <P> Burada beti�imiz bulunuyor. Tekrar belirtmeliyiz ki bunun pek �ok yolu olabilir. Bu yaln�zca bir uyarlama. </P> <pre class="code"> #!/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 </Pre> <H3>Kaynaklar</H3> <p> <UL> <LI>Rsync: <A href="http://rsync.samba.org">http://rsync.samba.org</A></LI> <LI>NFS: <A href="http://nfs.sourceforge.net/nfs-howto">http://nfs.sourceforge.net/nfs-howto</A></LI> <LI>SMBFS: <A href="http://samba.org">http://samba.org</A></LI> <LI>Linux RAID: <A href="http://linas.org/linux/raid.html">http://linas.org/linux/raid.html</A></LI> </UL> </P> </BODY> </HTML> <!-- vim: set sw=2 ts=2 et tw=74: -->