| Rsync يک برنامه ساده و کوچک، همانند يک برنامه انتقال فايل مي باشد، آخرين نسخه اي که در زمان نوشتن اين مقاله وجود دارد نسخه 3.0.4 مي باشد که مي توانيد از سايت رسمي آن با آدرس http://samba.anu.edu.au/rsync دريافت کنيد. با اين برنامه حتی مي توان فقط تغييراتي که بر روي يک فايل انجام شده را انتقال داد ، در نظر بگيريد که شما سروري داريد که مدام مجبوريد اطلاعات آن را با سرور ديگر بروز رساني کنيد، براي اين کار لازم نيست هر بار اطلاعات مورد نظر را تماما انتقال دهيد ، با کمک Rsync مي توان فقط فايل هايي را که در کامپيوتر مبدا و يا مقصد تغيير کرده اند، انتقال داد. اين کار فوايد بسياري از جمله ، آپلود سريع تر و کم تر شدن ترافيک شبکه و صرفه جويي در پهناي باند مصرفي را بدنبال خواهد داشت. در واقع Rsync يک برنامه چند منظوره است که کارهاي Backup & Mirroring را براي شما انجام خواهد داد. بعضي امکانات Rsync عبارت اند از :
براي شروع ابتدا مطمئن شويد که برنامه مورد نظر در سيستم شما نصب ميباشد من از CentOS 5.2 استفاده مي کنم کليه دستوران نوشته شده در اين مقاله هم بر اساس همين توزيع مي باشد. براي اين کار مي توانيد دستور rsync را اجرا کنيد و يا خروجي دستور زير را ببينيد : و خروجي بمانند زير خواهد بود : [root@centos-test ~]# rpm -q rsync rsync-3.0.4-1.el5.rf [root@centos-test ~]# در صورتي که برنامه در سيستم شما نصب نبود از دستور زير استفاده کنيد :
در ديگر توزيع ها همانند 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
دو راه براي اتصال rsync براي انتقال فايل وجود دارد ، يک راه استفاده از برنامه هاي remote-shell مانند ssh بعنوان انتقال است و راه ديگر اتصال به daemon برنامه Rsync توسط پروتکل tcp مي باشد. انتقال با remote-shell هر زماني که مسير هاي منبع و مقصد محتوي تنها يک کالن ( : ) بعد از مشخص کردن ميزبان باشند استفاده ميشود ، اتصال به daemon برنامه Rsync تنها زماني که مسير هاي منبع و مقصد محتوي دو کالن ( :: ) بعد از مشخص کردن ميزبان باشند و يا بکار بردن عبارت //:rsync استفاده ميشود استفاده از Rsync : شما مي توانيد با مشخص کردن مبدا و مقصد به راحتي از اين برنامه استفاده کنيد براي مثال : شايد اين کلي ترين دستور براي rsync باشد ، در اين دستور تمامي پترن هاي شامل c.* به سيستمي با نام foo ، و به دايرکتري src انتقال پيدا مي کند , اگر فايلي با نام مشابه در دايرکتري مقصد وجود داشته باشد ، rsync remote-update protocol براي بروز رساني آن فايل ها تنها با فرستادن تغييرات شروع به کار مي کند
اين دستور بصورت recursive تمامي فايل هاي دايرکتري src/bar را در ماشين foo به دايرکتري data/tmp در ماشين فعلي کپي مي کند. فايل ها در حالت آرشيو منتقل مي شوند که اين کار باعث مي شود تمامي مجوز ها و اطلاعات فايل در حين انتقال حفظ شود. همچنين فشرده سازي باعث کاهش حجم فايل در حين انتقال خواهد شد. در آخر هم سعي مي کنيم يک مثال پيچيده را با هم بررسي کنيم
خوب اين دستور rsync را با گزينه هاي verbose , progress , stats راه اندازي مي کند گزينه Compress براي فشرده سازي اطلاعات و گزينه rsh براي انتقال اصلاعات بصورت امن از طريق ssh خواهد بود، خط بعد مشخص مي کند که Rsync چطور با فايل هاي رفتار کند: Recursive به آن مي گويد که فايل ها و دايرکتري ها را بصورت recursive انتقال دهد و اطلاعات زمان و مجوز ها را با دو عبارت times و perms انتقال دهد همچنين عبارت links نشان دهنده کپي کردن symbolic ها و عبارت Delete نشان دهنده پاک کردن دايرکتري و فايل ها در دايرکتري مقصد که در سيستم فعلي حذف شده اند مي باشد */www/ فايل هايي از سيستم من که قرار است توسط Rsync انتقال داده شوند را نشان مي دهد و webserver:simple_path_name آدرس کامپيوتر مقصد خواهد بود. با اجراي دستور فوق تمامي فايل هاي شاخه www من به کامپيوتر webserver با حفظ تمامي مجوز ها و اطلاعات ، انتقال پيدا خواهد کرد. |
+ نوشته شده توسط وحید قاسمی در پنجشنبه بیست و دوم دی ۱۳۹۰ و ساعت
12:3 |
