دستور rsync برای بکاپ گیری در لینوکس استفاده میشه همچنین قابلیت synchronize دو فایل رو هم داره که این 2 فایل میتونن در یک کامپیوتر یا یکیشون در یک کامپیوتر رموت باشه
چند نکته خوب درمورد rsync
سرعت بالا : به دلیل این که اول 2 تا فایلو باهم مقایسه میکنه بعد فقط قسمت های تغییر کرده رو بروز یا تغییراتی درشون اءمال میکنه
امنیت : چون rsync از ssh برای برقراری ارتباط استفاده میکنه از امنیت بالایی برخورداره
مصرف پهنای باند کم : چون از فشرده سازی به صورت block by block استفاده میکند همیشه پهنای باند مصرفی از مقدار فایل تبادل شده کمتر است
در اخر هم پیشنیاز خاصی برای نصبش نیاز نیست
نصب :
برای نصب دستورات زیر رو بزنین
شکل کلی دستورکد:apt-get update apt-get install rsync
Synchronize دو فلدر در یک کامپیوترکد:$ rsync options source destination
-z بزای فشرده سازیکد:$ 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 $
v- برای نشون دادن مراحل کار
r- indicates recursive
حالا اگه ls -l هردو فایلو بگیرین میبینین که پرمیشن ها ثابت مانده اند ولی زمان ساخته شدن فایلا تغییر کردن
برای این که زمان ساخته شدن فایلا تغییر نکند از a- استفاده کنینکد:$ 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
حالا اگه خروجی ls -l رو نگاه کنین میبینین که زمان ساخته شدن فایلها بعد از بکاپ گیری یکی هستشکد:$ 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 $
Synchronize فقط یک فایل که عمل کپی کردن یک فایل به فلدر دیگر رو انجام میدهکد:$ 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
Synchronize کردن فایل از کامپیوتر local به کامپیوتر remoteکد:$ 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 : کامپیوتری که در دور دست هستش
برای انجام این کار احتیاج به username وIP address سیستم رموت و همچنین ادرس فایل در سیستم رموت که شکل کلی به این شکل میشهکد:$ 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
/root/temp/ : ادرس فایل های ارسالی از لوکال به سرورکد:username@machinename:path path : ادرس دایرکتوری در سیستم رموت که در دستور بالا به این شکل بود : thegeekstuff@192.168.200.10:/home/thegeekstuff/temp/
Synchronize سیستم رموت به سیستم خانگی
root@172.16.49.128:/var/www/Videos : ادرس سیستم رموتکد: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:~$
/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
ls فلدر targetکد:root@debian:/var/www/Videos# ls Oggy.003.avi Oggy.004.avi Oggy.005.avi
کد: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
محدودیت حجمی
برای ایجاد محدودیت حجمی میتونین از
دستور زیر فایلای زیر 100 کیلوبایت رو انتقال میدهکد:--min-size=SIZE :فقط فایلایی که حجمشون از مقدار در نظر گرفته شده بیشتر است رو انتقال بده --min-size=SIZE : فقط فایلایی که حجمشون از مقدار در نظر گرفته شده کمتر است رو انتقال بده
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ش مراجعه کنین
نسخه گرافیکی مختلفی برای لینوکس و ویندوز داره که از ادرس زیر میتونین ببینین
منبع : How to Backup Linux? 15 rsync Command Examplesکد:http://en.wikipedia.org/wiki/Rsync
چند مثال دیگه تو منبع هست که نگفتم






پاسخ با نقل قول