آموزش

راهنمای عملی دستور Rsync (به همراه مثال های کاربردی)

راهنمای عملی و کامل دستور rsync

Rsync یکی از پرکاربردترین و دم دستی ترین دستوراتی است که در سیستم عامل لینوکس مورد استفاده قرار میگیرد. همانطور که از نامش پیداست از دستور Rsync برای همگام سازی و انتقال داده ها در پوشه ها، دیسک ها و شبکه ها به صورت ریموت و لوکال استفاده می شود.

مزیت های استفاده از Rsync نسبت به روش های CP و SCP

  • دستور Rsync بهترین و موثرترین روش برای کپی و همگام سازی فایل ها و دایرکتوری ها از یک سیستم به دیگری است.
  • پشتیبانی کامل از لینک ها و دیوایس ها و ownerها و گروه ها و پرمیشن ها
  • این دستور سریعتر از SCP است (SCP همان Secure Copy است)
  • به علت فشرده سازی فایل ها در مبدا و مقصد دستور Rsync کمترین میزان پهنای باند را استفاده میکند.

نکته : علت سرعت بالای rsync استفاده از پروتکل remote-update است. با استفاده از این پروتکل فقط خط های متفاوت انتقال پیدا میکند. دراولین انتقال Rsync تمام محتوای یک فایل یا یک دایرکتوری را کپی می کند اما از دفعات بعد، تنها خط ها و بایت های تغییریافته را به مقصد کپی خواهد کرد.

آموزش استفاده و کار کردن با دستور Rsync

امکانات زیادی برای استفاده از دستور rsync وجود دارد؛ استفاده از آنها کاملا سلیقه ای بوده و هرکس با توجه به نیاز خود میتواند از آن ها استفاده کند. لازم به ذکر است برخی دستورات در rsync میتواند یک حرفی و یا چند حرفی باشد؛ به عنوان مثال اجرای rsync -a نتیجه ای مشابه با rsync -rlptgoD خواهد داد. نکته دیگری که باید مراقب بود استفاده از دستور rsync هنگام کپی کردن فرمان ها از سایت ها و یا فروم های موجود در اینترنت است، بخصوص زمانی که با دستور مورد نظر آشنایی کامل ندارید. اگر به یاد داشته باشید هنگام استفاده از ویندوز با زدن کلید f1 صفحه راهنمای مربوطه برای شما باز می شود. برای آشنایی بیشتر با دستور rsync میتوانید با استفاده از دو فرمان زیر راهنمای این دستور را مشاهده نمایید

ساختار اساسی یک دستور rsync شبیه به CP و SCP است.

اگر چندین مقصد برای انتقال مورد نظر شماست، باید آن ها را به انتهای فرمان خود اضافه کنید.

در ادامه جزئیات و ۱۰ فرمان مفید و پرکاربرد دستور rsync برای شما بیان خواهد شد.

امکانات رایج در دستور rsync

ابتدای کلمه verbose که برای توضیحات بیشتر در دستور rsync از این آپشن استفاده می شود.

ابتدای کلمه recursive که داده ها را به صورت بازگشتی کپی میکند.

  • نکته: این آپشن پرمیشن و timestamp ها را در حال انتقال دیتا حفظ نمی کند.

به کلمه archive اشاره دارد و مد آرشیو تمام فایل ها را به صورت بازگشتی کپی می کند

  • نکته: این آپشن لینک های سیمبولیک و پرمیشن فایل ها و user & group ownership و timestamp ها را حفظ می کند.

میتوان گفت که به کلمه zip اشاره دارد و مسئولیت فشرده سازی فایل ها را بر عهده دارد.

منظور کلمه human-readable است که مسئولیت خوانا کردن داده ها را برای انسان برعهده دارد.

آپشن ها و امکانات بسیار زیادی در دنیای لینوکس وجود دارد؛ اگر تمایل به یادگیری بیشتر درباره این موضوع دارید میتوانید به لینک زیر مراجعه نمایید:

https://www.computerhope.com/unix/rsync.htm

بررسی پرکاربردترین حالات دستور rsync

با استفاده از فرمان rsync میتوان کارهای زیادی انجام داد که در زیر به بررسی پرکاربردترین آنها پرداخته می شود. قبل از هرچیز باید دستور rsync در سیستم عامل شما فعال باشد.

نصب rsync در سیستم عامل لینوکس

ممکن است در برخی از توزیع های لینوکس دستور rsync نصب نباشد؛ در اینگونه مواقع با استفاده از فرمان زیر به راحتی به نصب این دستور اقدام می شود :

 

کپی کردن و همگام سازی فایل ها و دایرکتوری ها روی یک سیستم محلی (local)

کپی کردن و همگام سازی یک فایل بر روی یک سیستم محلی (local)

با دستور زیر یک فایل از یک مسیر به مسیر دیگر کپی و همگام سازی می شود. در این مثال فایلی به نام backup.tar به مسیر/tmp/backups/ کپی و sync شد. لازم به ذکر است در این مثال فرض شده است که مسیر مقصد وجود ندارد، در چنین مواردی فرمان rsync مسیر ذکر شده در دستور را به وجود خواهد آورد.

کپی کردن و همگام سازی یک دایرکتوری بر روی یک سیستم محلی (local)

با استفاده از دستور زیر میتوان تمام فایل های موجود در یک دایرکتوری را به دایرکتوری جدیدی در همان سیستم کپی و همگام سازی کرد. در این مثال دایرکتوری /root/rpmpkgs شامل برخی فایل های rpm می باشد که می بایست به دایرکتوری /tmp/backups/ کپی شود.

 

کپی کردن و همگام سازی فایل ها و دایرکتوری ها به/ از یک سرور

کپی کردن یک دایرکتوری از سرور محلی به یک سرور ریموت:

دستور زیر یک دایرکتوری را از یک سیستم محلی به یک سرور ریموت کپی و همگام سازی می شود. در این مثال فایلی به نام rpmpkgs.tar در کامپیوتر شما، شامل یک سری فایل rpm به مسیری مشخص در یک سرور ریموت که از شما دور استکپی و sync می شود.

کپی کردن و همگام سازی یک دایرکتوری ریموت به یک ماشین محلی

این دستور به شما کمک می کند یک دایرکتوری ریموت به یک دایرکتوری محلی کپی و همگام سازی شود. در این مثال، دایرکتوری /home/tarunika/rpmpkgs برروی یک سیستم راه ور(remote) می باشد. توسط دستور زیر به دایرکتوری /tmp/myrpms در سیستم محلی شما کپی خواهد شد.

rsync تحت SSH

یکی از موارد استفاده rsync انتقال دیتا از SSH است، همانطور که می دانید استفاده از پروتکل SSH باعث افزایش امنیت فایل های شما هنگام انتقال می شود.

کپی کردن یک فایل از یک سرور ریموت به یک سرور محلی با SSH

برای مشخص کردن یک پروتکل با rsync نیاز به استفاده از آپشن –e به همراه نام پروتکل است. در این مثال، آپشن –e برای استفاده از پروتکل SSH استفاده شده است.

 

نمایش پیشرفت در حال انتقال دیتا با rsync

برای نمایش پیشرفت در حال انتقال دیتا از یک سیستم به سیستم دیگر، ما می توانیم از آپشن –progress استفاده کنیم. این آپشن تمام فایل ها و زمان باقی مانده برای کامل شدن انتقال را نشان خواهد داد.

 

استفاده ازگزینه ی -include و-exclude

این دو گزینه به ما امکان include و exclude فایل ها توسط پارامتر های بخصوص را می دهد، به کمک exclude از کپی و همگام سازی شدن فایل هایی که نمیخواهیم جلوگیری کنیم و به کمک include آن فایل ها و یا دایرکتوری ها را شامل تغییرات وهمگام سازی کنیم

در این مثال، دستورrsync تمام فایل ها و دایرکتوری هایی را که با R شروع شده اند را include کرده و بقیه را exclude می کند.

 

استفاده ازگزینه ی -delete

گاها حالتی پیش می آید که یک فایل یا دایرکتوری در مبدا وجود نداشته باشد، اما پیش از این در مقصد بوده است. اگربخواهید فایل یا دایرکتوری موجود را در حین همگام سازی حذف کنید می توانید از آپشن –delete برای فایل هایی که در دایرکتوری مبدا وجود ندارند استفاده کنید. مبدا و مقصد همگام هستند. حالا فایل جدید test.txt را در مقصد ایجاد کنید.

تنظیم Maximum فایل ها برای انتقال

ماکزیمم سایز فایل برای انتقال یا همگام سازی قابل نتظیم و کنترل است. شما می توانید با استفاده از گزینه ی max-size این کار را انجام دهید. در این مثال، ماکزیمم سایز فایل ۲۰۰k است؛ بدین ترتیب تنها فایلهایی را که برابر یا کوچکتر از ۲۰۰k هستند انتقال داده خواهند شد.

حذف اتوماتیک فایل های مبدا بعد از انتقال موفق

اکنون فرض کنید که شما یک وب سرور و یک سرور پشتیبان دارید، شما یک پشتیبان گیری و همگام سازی روزانه با سرور پشتیبان تان ایجاد کرده اید، حالا نمی خواهید که کپی از پشتیبانی که گرفته اید را روی همان وب سرور خود نگه دارید. بنابراین بجای منتظر ماندن تکمیل عملیات انتقال بکاپ گیری فایل روی سرور اصلی آن هم بصورت دستی؛ این حذف می تواند به صورت اتوماتیک با استفاده از گزینه ی –remove-source-files انجام شود.

اجرای آزمایشی دستورrsync

اگر شما یک تازه وارد هستید و از rsync استفاده می کنید و نمی دانید دقیقا این دستور چه کار می کند باید بگویم که Rsync واقعا می تواند فولدر مقصد را به هم بریزد و متعاقبا برگرداندن اطلاعات با undo هم کار خسته کننده ای است.

استفاده از این گزینه هیچ تغییراتی را اعال نخواهد کرد و تنها دستور rsync را به صورت آزمایشی انجام داده و خروجی دستور را نشان می دهد، اگر خروجی همان چیزی باشد که شما می خواهید انجام شود، شما می توانید باز هم از همان دستور و این بار با حذف گزینه ی –dry-run استفاده کنید.

تنظیم محدودیت پهنای باند و انتقال فایل

شما می توانید برای انتقال داده ها از یک ماشین یه ماشین دیگر محدودیت پهنای باند تنظیم کنید، با استفاده از آپشن –bwlimit این کار را انجام دهید. این گزینه برای محدود کردن پهنای باندI/O به ما کمک می کند.

 

ما در گنجه هاست از دستور Rsync برای انتقال فایل های حجیم بین سرورها استفاده میکنیم. چنانچه شما از کاربران خدمات سرور مجازی و یا سرور اختصاصی ما میباشید و یا میخواهید فایل های حجیمی را بین سرور های خود منتقل کنید، پیشنهاد میکنیم از این راهنما برای مقاصد خود استفاده کنید. چنانچه در استفاده از این دستور به مشکلی بر خوردید، با ما در تماس باشید تا تیم فنی گنجه هاست برای شما انتقال فایل ها را انجام دهد.

تگ ها

حامد بهمنی

بیش از ۱۰ سال است که در زمینه های برنامه نویسی، مدیریت سرور های لینوکسی و در نهایت دیجیتال مارکتینگ فعالیت دارم. هم اکنون نیز به عنوان همبنیانگذار در گروه نوآوران گنجه فعالیت دارم.

مقالات مرتبط

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید...

بستن
دکمه بازگشت به بالا
بستن

بالک کننده تبلیغ پیدا شد

در نظر داشته باشید با غیر فعال کردن مسدود کننده تبلیغ، ما را حمایت میکنید.