آموزش
آموزش کاربردی Rsync

آموزش کاربردی Rsync


Rsync يک برنامه ساده و کوچک، همانند يک برنامه انتقال فايل مي باشد، آخرين نسخه اي که در زمان نوشتن اين مقاله وجود دارد نسخه 3.0.4 مي باشد که مي توانيد از سايت رسمي آن با آدرس http://samba.anu.edu.au/rsync دريافت کنيد.
با اين برنامه حتی مي توان فقط تغييراتي که بر روي يک فايل انجام شده را انتقال داد ، در نظر بگيريد که شما سروري داريد که مدام مجبوريد اطلاعات آن را با سرور ديگر بروز رساني کنيد، براي اين کار لازم نيست هر بار اطلاعات مورد نظر را تماما انتقال دهيد ، با کمک Rsync مي توان فقط فايل هايي را که در کامپيوتر مبدا و يا مقصد تغيير کرده اند، انتقال داد. اين کار فوايد بسياري از جمله ، آپلود سريع تر و کم تر شدن ترافيک شبکه و صرفه جويي در پهناي باند مصرفي را بدنبال خواهد داشت.

Rsync يک برنامه ساده  و کوچک، همانند يک برنامه انتقال فايل مي باشد، آخرين نسخه اي که در زمان نوشتن اين مقاله وجود دارد نسخه  3.0.4 مي باشد که مي توانيد از سايت رسمي آن با آدرس http://samba.anu.edu.au/rsync دريافت کنيد.
با اين برنامه حتی مي توان فقط تغييراتي که بر روي يک فايل  انجام شده را انتقال داد ، در نظر بگيريد که شما سروري داريد که مدام مجبوريد اطلاعات آن را با سرور ديگر بروز رساني کنيد، براي اين کار لازم نيست هر بار اطلاعات مورد نظر را تماما انتقال دهيد ، با کمک Rsync  مي توان فقط فايل هايي را که در کامپيوتر مبدا و يا مقصد تغيير کرده اند، انتقال داد. اين کار فوايد بسياري از جمله ، آپلود سريع تر و کم تر شدن ترافيک شبکه و صرفه جويي در پهناي باند مصرفي  را  بدنبال خواهد داشت.

در واقع  Rsync  يک برنامه چند منظوره است که کارهاي Backup  & Mirroring   را براي شما انجام خواهد داد.

بعضي امکانات Rsync   عبارت اند از :

  • پشتيباني از حفظ اطلاعات فايل منتقل شده ، همانند مالک فايل ، گروه فايل ، مجوز هاي فايل و ...
  • عدم نياز به مجوز کاربر ريشه
  • ترانسپرنت شدن با پروتکل هايي نظير ssh  ، rsh
  • قابليت استفاده بصورت anonymous  يا authenticated

 


براي شروع ابتدا مطمئن شويد که برنامه مورد نظر در سيستم شما نصب ميباشد من از CentOS 5.2 استفاده مي کنم کليه دستوران نوشته شده در اين مقاله هم بر اساس همين توزيع مي باشد.

براي اين کار مي توانيد دستور rsync را اجرا کنيد و يا خروجي دستور زير را ببينيد :

 

#rpm  -q  rysnc

و خروجي بمانند زير خواهد بود :

[root@centos-test ~]# rpm -q rsync
rsync-3.0.4-1.el5.rf
[root@centos-test ~]#


در صورتي که برنامه در سيستم شما نصب نبود از دستور زير استفاده کنيد :

#yum install rsync


در ديگر توزيع ها همانند fedora , redhat , debian  هماند بالا ميباشد با اين تفاوت که در debian مي بايست از apt-get  استفاده نماييد .
براي راه اندازي شما بايد Rsync  را بصورت Daemon   راه اندازي کنيد اين کار با استفاده از دستور  rsync –daemon در کنسول انجام خواهد شد، فايل پيکربندي آن بصورت پيشفرض در آدرس  etc/rsyncd.conf/  قرار دارد و با کمک Vi  مي توانيد آن را ويرايش کنيد. تمام دستگاهايي که برنامه Rsync  را اجرا کنند مي توانند با دستگاهي که  در آن Rsync Daemon  راه اندازي شده است همزمان شودند.
براي اين کار شما بايد يک دستگاه را که قرار است نقش سرور را بازي کند بصورت Daemon  راه اندازي کنيد همچنين کلاينت ها نيز مي توانند براي بر قراري يک ارتباط دو طرفه در حالت daemon  راه اندازي شوند.
در زير بعضي از فايل هاي پيکربندي Rsync  را مشاهده مي کنيد


motd file = /etc/rsyncd.motd
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock

[simple_path_name]
path = /rsync_files_here
comment = My Very Own Rsync Server
uid = nobody
gid = nobody
read only = no
list = yes
auth users = username
secrets file = /etc/rsyncd.scrt


 

  • هر گاه شما بخواهيد پيامي را به کاربران خود نمايش بدهيد مي توانيد از فايل etc/rsyncd.motd/   استفاده کنيد.
  • فايل بعدي فايلي است که لاگ هاي مربوط به Rsync  در آن ريخته خواهد شد.
  • دو فايل بعدي براي شماره پردازش Rsync  و قفل کردن آن مي باشد.
  • در فايل پيکربندي گزينه Path  مسيري را که فايل ها به/ از آن همزمان خواهند شد را نشان مي دهد,
  • Comment مختصري توضيح راجع به مسير داده شده خواهد بود،
  • Uid &Gid  نام کاربري و گروهي که Rsync  با ان اجرا خواهد شد را نشان مي دهد،
  • اگر شما بخواهيد دسترسي را به يوزري که از قبل تعريف شده محدود کنيد مي توانيد Auth Users  را براي آن مشخص کنيد که اين کار با فايلSecret  که بصورتplaintext   نوشته مي شود و با فرمت Key/value  که نشان دهنده نام کاربري و رمز عبور است، انجام مي شود.

rsync remote-update  يک پروتکل براي Rsync  مي باشد که تنها  تغييرات صورت گرفته را بين دو ماشين منتقل مي کند.
دو راه براي اتصال rsync  براي انتقال فايل وجود دارد ، يک راه استفاده از  برنامه هاي remote-shell  مانند ssh   بعنوان انتقال است و راه ديگر اتصال به daemon  برنامه Rsync  توسط پروتکل tcp  مي باشد.
انتقال با remote-shell  هر زماني که  مسير هاي منبع و مقصد  محتوي  تنها يک کالن ( : ) بعد از مشخص کردن ميزبان باشند استفاده ميشود ،  اتصال به daemon  برنامه Rsync   تنها زماني که مسير هاي منبع و مقصد محتوي دو کالن  ( :: ) بعد از مشخص کردن ميزبان  باشند و يا بکار بردن عبارت //:rsync  استفاده ميشود

 

  • استفاده از Rsync  :


شما مي توانيد  با مشخص کردن مبدا و مقصد به راحتي از اين برنامه استفاده کنيد براي مثال :

rsync  -t *.c foo:src/

شايد اين کلي ترين دستور براي  rsync   باشد ، در اين دستور تمامي پترن هاي  شامل c.*  به سيستمي با نام foo ، و به دايرکتري src  انتقال پيدا مي کند , اگر فايلي با نام مشابه در دايرکتري مقصد وجود داشته باشد ، rsync remote-update protocol براي بروز رساني آن فايل ها تنها با فرستادن تغييرات شروع به کار مي کند
 

rsync -avz foo:src/bar  /data/tmp


اين دستور بصورت recursive  تمامي فايل هاي دايرکتري  src/bar را  در ماشين foo   به دايرکتري   data/tmp  در ماشين فعلي کپي مي کند. فايل ها در حالت آرشيو منتقل مي شوند که اين کار باعث مي شود تمامي مجوز ها و اطلاعات فايل در حين انتقال حفظ شود.
همچنين فشرده سازي باعث کاهش حجم فايل در حين انتقال خواهد شد.


در آخر هم سعي مي کنيم يک مثال پيچيده را با هم بررسي کنيم
 

rsync --verbose  --progress --stats --compress --rsh=/usr/local/bin/ssh --recursive --times --perms --links --delete /www/* webserver:simple_path_name


خوب اين دستور rsync   را با گزينه هاي verbose , progress , stats  راه اندازي مي کند
گزينه Compress براي فشرده سازي اطلاعات و گزينه rsh  براي انتقال اصلاعات بصورت امن از طريق ssh  خواهد بود، خط بعد مشخص مي کند که Rsync  چطور با فايل هاي  رفتار کند:
Recursive  به آن  مي گويد که فايل ها و دايرکتري ها را بصورت recursive  انتقال دهد و اطلاعات زمان و مجوز ها را با دو عبارت times  و perms  انتقال دهد همچنين عبارت links نشان دهنده  کپي کردن symbolic ها و عبارت Delete  نشان دهنده پاک کردن دايرکتري و فايل ها در دايرکتري مقصد که در سيستم فعلي حذف شده اند مي باشد */www/ فايل هايي از سيستم من که قرار است توسط Rsync  انتقال داده شوند را نشان مي دهد و webserver:simple_path_name آدرس کامپيوتر مقصد خواهد بود.
با اجراي دستور فوق تمامي فايل هاي شاخه www  من به کامپيوتر webserver   با حفظ تمامي مجوز ها و اطلاعات ، انتقال پيدا خواهد کرد.

نویسنده : بهاره مرادی
منبع : Kayer.co.ir

تاریخ انتشار : چهار شنبه 09 بهمن 1392 - ساعت: 11:28

چاپ

مشتریان ما
  • همراه اول
  • آشنای اول
  • مخابرات ایران
  • بانک دی
  • شرکت پژوهش و توسعه ناجی
  • شرکت رایتل
  • شرکت مخابرات استان خراسان رضوی
  • پرداز گستر ارتباطات برليان
  • شرکت آسیاتک
  • شرکت مخابرات استان تهران
  •  بیمارستان امام خمینی (ره)
  •   دانشگاه علوم پزشکي زابل
  •  سازمان مطالعه و تدوين كتب علوم انساني دانشگاهها
  •  شرکت مخابرات استان کرمانشاه
  • مرکز ماهر
  • وزارت ارتباطات و فناوري اطلاعات