دستور rsync برای بکاپ گیری در لینوکس استفاده میشه همچنین قابلیت synchronize دو فایل رو هم داره که این 2 فایل میتونن در یک کامپیوتر یا یکیشون در یک کامپیوتر رموت باشه 

چند نکته خوب درمورد rsync 

 : به دلیل این که اول 2 تا فایلو باهم مقایسه میکنه بعد فقط قسمت های تغییر کرده رو بروز یا تغییراتی درشون اءمال میکنه 
 : چون rsync از ssh برای برقراری ارتباط استفاده میکنه از امنیت بالایی برخورداره 
 : چون از فشرده سازی به صورت block by block استفاده میکند همیشه پهنای باند مصرفی از مقدار فایل تبادل شده کمتر است 
در اخر هم پیشنیاز خاصی برای نصبش نیاز نیست 

 : 


کد:

apt-get update apt-get install rsync 



کد:

$ rsync options source destination 

کد:

$ rsync -zvr /var/opt/installation/inventory/ /root/temp building file list ... done sva.xml svB.xml . sent 26385 bytes received 1098 bytes 54966.00 bytes/sec total size is 44867 speedup is 1.63 $ 
-z بزای فشرده سازی
v- برای نشون دادن مراحل کار 
r- indicates recursive

حالا اگه ls -l هردو فایلو بگیرین میبینین که پرمیشن ها ثابت مانده اند ولی زمان ساخته شدن فایلا تغییر کردن 
کد:

$ ls -l /var/opt/installation/inventory/sva.xml /root/temp/sva.xml -r--r--r-- 1 bin bin 949 Jun 18 2009 /var/opt/installation/inventory/sva.xml -r--r--r-- 1 root bin 949 Sep 2 2009 /root/temp/sva.xml 

کد:

$ rsync -azv /var/opt/installation/inventory/ /root/temp/ building file list ... done ./ sva.xml svB.xml . sent 26499 bytes received 1104 bytes 55206.00 bytes/sec total size is 44867 speedup is 1.63 $ 
حالا اگه خروجی ls -l رو نگاه کنین میبینین که زمان ساخته شدن فایلها بعد از بکاپ گیری یکی هستش 
کد:

$ ls -l /var/opt/installation/inventory/sva.xml /root/temp/sva.xml -r--r--r-- 1 root bin 949 Jun 18 2009 /var/opt/installation/inventory/sva.xml -r--r--r-- 1 root bin 949 Jun 18 2009 /root/temp/sva.xml 


کد:

$ rsync -v /var/lib/rpm/Pubkeys /root/temp/ Pubkeys sent 42 bytes received 12380 bytes 3549.14 bytes/sec total size is 12288 speedup is 0.99 

local : کامپیوتری که شما الان باهاش کار میکنین ((کامپیوتر محلی))
remote : کامپیوتری که در دور دست هستش 

کد:

$ rsync -avz /root/temp/ thegeekstuff@192.168.200.10:/home/thegeekstuff/temp/ Password: building file list ... done ./ rpm/ rpm/Basenames rpm/Conflictname sent 15810261 bytes received 412 bytes 2432411.23 bytes/sec total size is 45305958 speedup is 2.87 
برای انجام این کار احتیاج به username وIP address سیستم رموت و همچنین ادرس فایل در سیستم رموت که شکل کلی به این شکل میشه کد:

username@machinename:path 
path : ادرس دایرکتوری در سیستم رموت 
که در دستور بالا به این شکل بود : thegeekstuff@192.168.200.10:/home/thegeekstuff/temp/


/root/temp/ : ادرس فایل های ارسالی از لوکال به سرور 



کد:

alieblice@alieblice-desktop:~$ sudo rsync -avz root@172.16.49.128:/var/www/Videos /home/reza [sudo] password for alieblice: root@172.16.49.128's password: receiving incremental file list created directory /home/reza Videos/ Videos/.htaccess Videos/Oggy.001.avi Videos/Oggy.002.avi Videos/Oggy.003.avi Videos/Oggy.004.avi Videos/Oggy.005.avi sent 129 bytes received 347205008 bytes 10063917.01 bytes/sec total size is 350419831 speedup is 1.01 alieblice@alieblice-desktop:~$ 
root@172.16.49.128:/var/www/Videos : ادرس سیستم رموت 

/home/reza : ادرسی که میخایم فایلا از رموت تو کامپیوتر لوکال شخصی ذخیره شود 



برای این کار از progress-- استفاده کنین 

کد:

alieblice@alieblice-desktop:~$ sudo rsync --progress -avz root@172.16.49.128:/var/www/Videos /home/reza root@172.16.49.128's password: receiving incremental file list Videos/ Videos/Oggy.001.avi 70811648 100% 17.25MB/s 0:00:03 (xfer#1, to-check=4/7) Videos/Oggy.002.avi 70343454 100% 11.02MB/s 0:00:06 (xfer#2, to-check=3/7) Videos/Oggy.003.avi 70598656 100% 13.04MB/s 0:00:05 (xfer#3, to-check=2/7) Videos/Oggy.004.avi 69273600 100% 14.00MB/s 0:00:04 (xfer#4, to-check=1/7) Videos/Oggy.005.avi 69392384 100% 12.04MB/s 0:00:05 (xfer#5, to-check=0/7) sent 110 bytes received 350537798 bytes 12746833.02 bytes/sec total size is 350419831 speedup is 1.00 alieblice@alieblice-desktop:~$ 
ممکنه وقتی که 2 فایلو باهم دارین synce میکنین یکسری فایل در فلدر ی که دارین بکاپ هارو توش ذخیره میکنین ((target )) وجود داشته باشه که در فلدر اصلی ((source)) که ازش بکاپ میگیرین نباشه حالا اگه بخاین که فایلای اضافی که در target بودنو پاک کنین از delet-- استفاده کنین 
ls فولدر source
کد:

root@debian:/var/www/Videos# ls Oggy.003.avi Oggy.004.avi Oggy.005.avi ls فلدر target 
کد:

alieblice@alieblice-desktop:~$ ls /home/reza/Videos Oggy.001.avi Oggy.002.avi Oggy.003.avi Oggy.004.avi Oggy.005.avi alieblice@alieblice-desktop:~$ 
کد:

alieblice@alieblice-desktop:~$ sudo rsync --progress --delete -avz root@172.16.49.128:/var/www/Videos /home/reza root@172.16.49.128's password: receiving incremental file list deleting Videos/Oggy.002.avi deleting Videos/Oggy.001.avi Videos/ Videos/Oggy.005.avi 69392384 100% 16.48MB/s 0:00:04 (xfer#1, to-check=0/5) sent 34 bytes received 69415891 bytes 9255456.67 bytes/sec total size is 209264729 speedup is 3.01 alieblice@alieblice-desktop:~$ 
 
که برای این کار از include-- و exclude-- استفاده کنین 
--include 'P*' : فایلایی که با P شروع میشن رو بکاپ بگیر
--exclude '*' : تمام فایلای دیگر رو در نظر نگیر 
کد:

$ rsync -avz --include 'P*' --exclude '*' thegeekstuff@192.168.200.10:/var/lib/rpm/ /root/temp/ Password: receiving file list ... done ./ Packages Providename Provideversion Pubkeys sent 129 bytes received 10286798 bytes 2285983.78 bytes/sec total size is 32768000 speedup is 3.19 


برای ایجاد محدودیت حجمی میتونین از 
کد:

--min-size=SIZE :فقط فایلایی که حجمشون از مقدار در نظر گرفته شده بیشتر است رو انتقال بده --min-size=SIZE : فقط فایلایی که حجمشون از مقدار در نظر گرفته شده کمتر است رو انتقال بده 
دستور زیر فایلای زیر 100 کیلوبایت رو انتقال میده 
M for megabytes and G for gigabytes K for kilobyte 

کد:

$ rsync -avz --max-size='100K' thegeekstuff@192.168.200.10:/var/lib/rpm/ /root/temp/ Password: receiving file list ... done ./ Conflictname Group Installtid Name Sha1header Sigmd5 Triggername sent 252 bytes received 123081 bytes 18974.31 bytes/sec total size is 45305958 speedup is 367.35 
rsync خیلی گسترده هستش و پایه اساس خیلی از نرم افزارای بکاپ گیری لینوکس و ویندوز هستش 
برای دیدن کامل کارایی که rsync میتونه انجام بدهد به man یا helpش مراجعه کنین 

نسخه گرافیکی مختلفی برای لینوکس و ویندوز داره که از ادرس زیر میتونین ببینین 


کد:

http://en.wikipedia.org/wiki/Rsync