آموزش rsync
در این مقاله به آموزش rsync میپردازیم و دستورات پر کاربرد آن را بازگو خواهیم کرد.با ما همراه باشید.
rsync چیست؟
آرسینک یا rcync مخفف کلمه Remote Sync میباشه به معنای همگام سازی از راه دور. در توزیع های لینوکسی و یونیکسی بصورت پیشفرض فعال میباشد ولا در مواردی نیاز به نصب دارد.
کار اصلی آرسینک در سرور ها به وسیله ریموت و SSH انجام میشود که میتوان با سرعت بالا یک دایرکتوری , فایل , فولدر , بک آپ و… را منتقل کرد بصورتی که مجوزهای(permision) های آن تغییری نکند.
کاربرد rsync چیست؟
- کپی و همگام سازی فایلها و دایرکتوری ها در یک سرور محلی یا سرور ریموت(از راه دور)
کپی و انتقال بک آپ ها , فایلها , دیوایس ها با تمام مجوزها (owner) و …
سرعت بالاتر از SCP به دلیل استفاده از پروتکل remote-update
کاهش مصرف پهنای باند به دلیل ساپورت از فشرده سازی در مبدا و مقصد
پشتیبانی از پروتکل SHH که امکانات بینظیر و سریعی در اختیار کاربر قرار میدهد.
دستورات rsync
-v
:شفاف سازی اطلاعات
-r
:کپی تودرتوی فایلها
-a
:حالت آرشیو ، حالت آرشیو علاوه بر کپی تودرتو تمامی خصوصیات فایلها و همچنین symlink ها را نیز حفظ میکند
-z
: فشرده سازی
-h
: تبدیل اعداد به فرمت قابل خواندن
-w
: غیر فعالسازی قابلیت سینک بایت به بایت
نصب rsync در cent os
#centos 6 & centos 7
yum -y install rsync
#centos 8 & fedora
dnf -y install rsync
#debian & ubuntu
apt-get -y install rsync
آموزش rsync
روشهای انتقال فایل با rsync
روش اول: copy /syn در سرور لوکال(محلی)
توسط دستور زیر میتوانید یک فایل را در سرور خود به محلی دیگر کپی یا سینک کنید:
rsync -zvh user-backup.tar.gz /tmp/backups/
در مثال بالا /tmp/backups آدرس محل ذخیره سازی است و دس صورتی که وجود نداشته باشد ایجاد میگردد.
روش دوم:کپی / سینک یک دایرکتوری(فولدر) در محل دیگری از سرور:
rsync -avzh /root/famaserver /tmp/backups/
دستور بالا فولدر root/famaserver را به فولدر tmp/backups منتقل میکند با تمامیه فایلها و دسترسی ها
روش سوم:copy/sync یک دایرکتوری از سرور لوکال به سروری دیگر
rsync -avz /home/users root@192.168.0.101:/home/
دستور بالا فولدر /home/users سرور محلی که در آن دستور اجرا شده را به فولدر /home سرور 192.168.0.101 منتقل میکند.
روش چهارم: کپی / سینک یک فایل یا فولدر از یک سرور دیگر به سرور شما
rsync -avzh root@192.168.0.100:/home/user /home/
در مثال بالا دایرکتوری /home/user از سرور 192.168.0.100 به دایرکتوری /home سرور شما منتقل میگردد.
روش پنجم: Rsync در بستر SSH
در این روش اطلاعات (فایل یا فولدر) در بستر SSH منتقل میگردد که نام کاربری و کلمه عبور نیز کد گذاری میشود.
در این روش یک فایل یا فولدر را از سرور دیگر از طریق SSH به سرور محلی منتقل میکنیم:
rsync -avzhe ssh root@192.168.0.100:/home/backup.tar /home/
روش ششم:در این روش یک فایل یا فولدر را از طریق SSH از سرور خود به سرور دیگری منتقل میکنیم:
rsync -avzhe ssh /home/backup.tar root@192.168.0.100:/home/
انتقال فایلهای دلخواه با Rsync پروتکل rsync
این قابلیت را دارد که فایلهای خاصی را فاکتور بگیریم که از انتقال آنها جلوگیری کنیم .
از طریق –include و –exclude به راحتی میتوانیم روی جابجایی خاص متمرکز شویم:
در مثال زیر قصد داریم تنها فایلهایی که با حروف اوآنها famaserver است را جابجا کنیم و فایلهایی که حروف آخر آنها .sql است را منتقل نکنیم.
rsync -avze ssh --include 'famaserver*' --exclude '*.sql' root@192.168.0.101:/home/user/ /home/user/
تعیین حجم فایلها یا دایرکتوری
در این روش شما میتوانید تعیین کنید که حداقل و حداکثر حجم فایلها یا دایرکتوری ها چه اندازیه ای باشد:
rsync -avzhe ssh --max-size='600k' /home/user/ root@192.168.0.100:/home/user/
rsync -avzhe ssh --min-size='100k' /home/user/ root@192.168.0.100:/home/user/
محدود کردن سرعت
این قابلیت نیز وجود دارد که فایلها با سرعت معینی جابجا شوند تا ترافیک سرور را مشغول نکنند
rsync --bwlimit=200 -avzhe ssh /home/user/ root@192.168.0.100:/home/user
نمایش وضعیت انتقال
با استفاده از progress میتوانید وضعیت و سرعت و میزان جابجایی را مشاهده کنید.
rsync -avzhe ssh --progress /home/rpmpkgs root@192.168.0.100:/root/rpmpkgs
نتیجه گیری:
rsync یک پروتکل همگام سازی بر بستر وب میباشد که در لینوکس و ویندوز کاربرد دارد , کاربر آرسینک به دستگاه ها , device ها و سخت افزار های مختلفی محدود نمیشود و استفاده از آن بصورت گسترده امکان پذیر است که توسط بسر SSH یا … میتوانید تمام فایلها و دایرکتوری های مورد نظر را از سروری دیگر یا سرور خود منتقل کنید با تمامیه رابطه ها و دسترسی های مجاز آن.
منبع فاماسرور
آیا میتوان از آرسینک به عنوان بک آپ استفاده کرد؟
بله , یکی از مهمترین گزینه های بک آپ سرور های لینوکسی rsync میباشد.
نحوه بک آپ گیری منظر از دایرکتوری چگونه است؟
با توجه به آموزش درج شده میتوانید با کرون جاب در لینوکس طی ساعات زمانی مختلف عمل آرسینک را انجام دهید.
بیشترین استفاده از آرسینک در کجاست؟
بسته به فعالیت متغییر است ولی برای سینک کردن سرور های میرور فاماسرور ما تنها با آرسینک میتوانیم افزونه و بسته های جدید را دریافت کنیم.