<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>&nbsp; </P>
<P>en to tr <A HREF="nospam:ceyhun.elmas(at)linuxfocus.org">Ceyhun Elmas</A>&nbsp; </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>&nbsp;</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:"&gt;/tmp/rsync_script_tmpfile
   echo &gt;&gt; /tmp/rsync_script_tmpfile
   echo "################################################"&gt;&gt;/tmp/rsync_script_tmpfile
   du -s $ARCHIVEROOT/* &gt;&gt; /tmp/rsync_script_tmpfile
   echo "Mail $MAILADDR -s $HOSTNAME Backup Report &lt; /tmp/rsync_script_tmpfile"
   Mail $MAILADDR -s $HOSTNAME Backup Report &lt; /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 &amp;&amp; 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: -->