از موارد مهم در مدیریت سرور انتقال داده و Synchronize اطلاعات بین سیستمهای داخل شبکه میباشد. یکی از ابزارهای بسیار کارآمد برای انتقال و Sync کردن دادهها دایرکتوریها و پروندهها در سیستمهای یونیکسی و لینوکسی rsync میباشد.
از نرمافزار rsync میتوان به عنوان یک ابزار بسیار سریع برای کپی کردن دادهها به صورت لوکال، شبکه و بین دو سرور یاد کرد، که دارای آپشنهای مختلف برای استفادههای وسیع میباشد.
یک ویژگی بسیار جالب و کارآمد rsync برای Synchronize کردن قابلیت quick check در این نرمافزار میباشد که فایلهایی که نیاز به انتقال دادن دارند را شناسایی و منتقل خواهد کرد که برای این کار آخرین تاریخ ویرایش پرونده، تغییر حجم و … را مورد بررسی قرار داده و انتقال را انجام میدهد.
برخی از ویژگیها و قابلیتهای rsync
۱. پشتیبانی برای کپی کردن لینکها، دیوایسها، Ownerها، گروهها و حقوق دسترسی.
۲. قابلیت Exclude کردن یک مسیر مشخص برای جلوگیری از کپی شدن اطلاعات.
۳. قابلیت استفاده از ssh و rsh برای انتقال داده.
۴. عدم نیاز به حق دسترسی root.
۵. امکان محدود کردن منابع برای انتقال داده.
و …
چطور rsync رو نصب کنم ؟
برای نصب rsync میتوانید روشهای زیر استفاده کنید.
برای دبین (Debian) یا اوبونتو گنو/لینوکس (Ubuntu GNU/Linux):
# apt-get install rsync
برای ردهت (RHEL):
# up2date rsync
و اگر سیستم شما CentOS یا Fedora میباشد:
# yum install rsync
خوب؛ اکنون که با ویژگیها و کاراییهای rsync آشنا شدیم بهتره بریم سراغ روش استفاده از آن، Syntax استفاده از آن به این صورت میباشد:
# rsync options source destination
-options: آپشنهای مورد استفاده
-source: آدرس در مبدا
-destination: آدرس در مقصد
برخی از Optionهای مورد استفاده در rsync:
-a : آدرشیو کردن دادهها
-p : حفظ مجوزها
-v : نمایش جزئیات انتقال
-d : انتقال ساختار شاخهها
-r : انتقال شاخهها و زیر شاخهها
-z : فشرده سازی داده ها در زمان انتقال
-e “ssh options” : انتقال توسط
–max-size=’100K’ : انتقال فایلهای زیر ۱۰۰ کیلوبایت
–existing : انتقال فقط فایلهای مشابه
–delete : پاک کردن فایلهای سینک شده
با تعدادی مثال با این دستور بیشتر آشنا خواهید شد، پس با من همراه باشید …
۱. کپی کردن یک فایل از کامپیوتر لوکال به یک سرور راه دور:
کپی فایل /home/mohammad/boozary.tar.gz به سرور ssh.boozary.org
# rsync -v -e ssh /home/mohammad/boozary.tar.gz ssh.boozary.org:/home/mohammad/
۲. کپی کردن فایل از یک سرور راه دور به کامپیوتر لوکال:
کپی فایل /home/boozary2.tar.gz از سرور ssh.boozary.org به کامپیوتر لوکال
# rsync -v -e ssh [email protected]:/home/boozary2.tar.gz /home/mohammad/
۳. فقط انتقال شاخهها و زیر شاخهها بدون فایلها:
توسط آپش -d میتوانید این کار را انجام دهید.
# rsync -v -d [email protected]:/home/boozary/ /home/mohammad/sites/boozary/
و به این شکل ساختار درختی دایرکتوریها از /home/boozary سرور ریموت به /home/mohammad/sites/boozary منتقل خواهند شد.
۴. فقط انتقال فایلهای مشابه:
گاهی پیش آمده که در دایرکتوری مبدا یک سری فایل وجود داشته که بودن آنها در مسیر مقصد لازم نیست و فقط فایلهای مشابه بین مبدا و مقصد نیاز به Synchronize شدن دارند.
# rsync -avz --existing [email protected]:/home/boozary/ /home/mohammad/sites/boozary/
به این صورت اگر فایلی را در ssh.boozary.org:/home/boozary/ ایجاد کنیم که در آدرس تعیین شده محلی موجود نباشد توسط آپشن –existing انتقال داده نخواهد شد.
۵. عدم انتقال فایلهای حجیم:
# rsync -avz --max-size='100K' [email protected]:/home/boozary/ /home/mohammad/sites/boozary/
آپشن –max-size به ما کمک کرده تا فایلهایی که بیشتر از ۱۰۰ کیلوبایت هستند را انتقال ندهیم.
۶. نمایش پروسهی انتقال:
# rsync -apvz --progress /home/mohammad/ /home/boozary/
در اینجا با استفاده از –progress میتونیم اطلاعات مربوط به انتقال داده را مشاهده کنیم، از جمله: سرعت، زمان انتقال و …