[LinuxFocus-icon]
<--  | Ana Sayfa  | Eri�imd�zeni  | ��indekiler  | Arama

Duyumlar | Belgelikler | Ba�lant�lar | LF Nedir
Bu makalenin farkl� dillerde bulundu�u adresler: English  Castellano  ChineseGB  Deutsch  Francais  Nederlands  Russian  Turkce  Polish  

Brian Hone
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.

RSYNC Backup

�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.

_________________ _________________ _________________

 

Problem

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 Alternatif

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.

 

Sistem

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]

RSYNC Backup Process

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.

How Incremental Files are Handled  

�nemli bir getiri : Disaster Recover ve Dosya d�n���nde sa�lanan kolayl�k.

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.

 

Rsync/Sabit Disk Yedekleme ile Teyp Sisteminin Kar��la�t�r�lmas�

  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.
 

Ara�lar

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.

 

Betikleyin

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

 

Betik

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
 

Kaynaklar

 

Bu yaz� i�in g�r�� bildiriminde bulunabilirsiniz

Her yaz� kendi g�r�� bildirim sayfas�na sahiptir. Bu sayfaya yorumlar�n�z� yazabilir ve di�er okuyucular�n yorumlar�na bakabilirsiniz.
 talkback page 

<--, Bu say�n�n ana sayfas�na gider

G�rsely�re sayfalar�n�n bak�m�, LinuxFocus Edit�rleri taraf�ndan yap�lmaktad�r
© Brian Hone, FDL
LinuxFocus.org
�eviri bilgisi:
en --> -- : Brian Hone <bhone(at)eink.com>
en --> tr: Ceyhun Elmas <ceyhun.elmas(at)linuxfocus.org>

2004-03-13, generated by lfparser version 2.43