10 مثال کاربردی از دستور rsync در لینوکس

Rsync (Remote Sync) یک فرمان از راه دور برای کپی کردن و همگام سازی فایل ها و دایرکتوری ها از راه دور و همچنین به صورت محلی در سیستم های لینوکس / یونیکس است. با کمک فرمان rsync شما می توانید اطلاعات خود را از راه دور و به صورت محلی در سراسر دایرکتوری، در سراسر دیسک ها و شبکه ها کپی و همگام سازی کنید، پشتیبان گیری داده ها را انجام دهید و بین دو دستگاه لینوکس آینه سازی کنید.

برخی از مزایا و ویژگی های فرمان Rsync

  • این دستور یک فایل موثر و همگام سازی شده از یک سیستم از راه دور است.
  • پشتیبانی از لینک های کپی، دستگاه ها، صاحبان، گروه ها و مجوز ها.
  • این دستور سریعتر از scp (Secure Copy) است زیرا rsync از پروتکل به روز رسانی از راه دور استفاده می کند که اجازه می دهد فقط تفاوت بین دو مجموعه از فایل ها را انتقال دهد. اولین بار، کلیه محتویات یک فایل یا یک پوشه را از منبع به مقصد کپی می کند، اما از بار بعدی، تنها بلوک ها و بایت های تغییر یافته را به مقصد کپی می کند.
  • Rsync پهنای باند کمتری را مصرف می کند، زیرا با استفاده از روش های فشرده سازی و تفکیک پذیری در هنگام ارسال و دریافت اطلاعات هر دو به پایان می رسد.

فرم اصلی دستور

برخی از گزینه های معمول استفاده شده با دستورات rsync

  • -v : نمایش جزئیات
  • -r : داده ها را به صورت بازگشتی کپی کنید (اما نشانه های زمانی و اجازه را در هنگام انتقال داده ها حفظ نکنید
  • -a : حالت آرشیو، حالت آرشیو اجازه می دهد تا فایل های به صورت بازگشتی کپی کردن و در نتیجه آن حفظ لینک نمادین، مجوز های دسترسی فایل، کاربر و مالکیت گروه و timestamp
  • -z : فشرده سازی داده های فایل
  • -h : قابل خواندن انسان، شماره خروجی در فرمت قابل خواندن انسان است

1. کپی یا همگام سازی فایل ها و دایرکتوری ها به صورت محلی

این فرمان زیر می خواهد یک فایل واحد را در یک ماشین محلی همگام سازی کند از یک مکان به مکان دیگر. در اینجا در این مثال، نام فایل backup.tar باید کپی یا همگام سازی شده با / tmp / backups / پوشه باشد.

در مثال بالا می توانید ببینید که آیا مقصد قبلا وجود ندارد rsync می خواهد یک پوشه را به صورت خودکار برای مقصد ایجاد کند.

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

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

این فرمان می خواهد یک پوشه را از یک ماشین محلی به یک ماشین از راه دور همگام کند. به عنوان مثال: یک پوشه را در کامپیوتر محلی “rpmpkgs” خود را که شامل برخی از بسته های RPM وجود دارد و شما می خواهید که محتوای دایرکتوری محلی ارسال به یک سرور از راه دور، شما می توانید از دستور زیر استفاده کنید.

این فرمان به شما کمک می کند یک دایرکتوری راه دور را به یک دایرکتوری محلی همگام سازی کنید. در اینجا در این مثال یک پوشه / home / tarunika / rpmpkgs که در یک سرور از راه دور است به کامپیوتر محلی شما در / tmp / myrpms کپی می شود.

3. Rsync در بستر SSH

با استفاده از rsync، می توانیم از SSH (Secure Shell) برای انتقال داده استفاده کنیم، با استفاده از پروتکل SSH در هنگام انتقال اطلاعات ما در بستر اینترنت انجام داد.

بنابراین اگر شما از rsync استفاده می کنید، لازم است که رمزعبور کاربر و یا کاربر ریشه را برای انجام این کار خاص فراهم کنیم، بنابراین با استفاده از گزینه SSH، ورودی های خود را به شیوه رمزگذاری ارسال می کند تا رمز عبور شما امن باشد.

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

برای مشخص کردن یک پروتکل با rsync شما باید با نام پروتکل که میخواهید از آن استفاده کنید، گزینه “-e” را بدهید. در اینجا در این مثال، ما می خواهیم از “ssh” با گزینه “-e” استفاده کنیم و انتقال داده انجام دهیم.

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

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

برای نشان دادن پیشرفت در هنگام انتقال داده ها از یک ماشین به یک دیگر، می توانیم از گزینه “-progress” برای آن استفاده کنیم. این فایل ها و زمان باقی مانده را برای تکمیل انتقال نمایش می دهد.

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

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

6. استفاده از گزینه delete

اگر یک فایل یا دایرکتوری در منبع وجود داشته باشد، اما در حال حاضر در مقصد وجود دارد، ممکن است بخواهید آن فایل یا دایرکتوری موجود در هدف را در هنگام همگام سازی حذف کنید.

7. تنظیم حداکثر اندازه فایل های انتقال

شما می توانید حداکثر اندازه فایل را برای انتقال یا همگام سازی تعیین کنید. می توانید آن را با گزینه ”
–max-size ” انجام دهید. در اینجا در این مثال، حداکثر اندازه فایل 200k است، بنابراین این فرمان تنها فایل هایی را که برابر یا کوچکتر از 200k هستند را انتقال می دهد.

8. حذف فایل های منبع را بعد از انتقال موفقیت آمیز

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

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

9. اجرای خشک با rsync

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

اگر نمی خواهید این کار را انجام دهید، ممکن است بخواهید گزینه “-dry run” را از فرمان خود حذف کنید و در ترمینال اجرا شود

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

شما می توانید محدودیت پهنای باند را در هنگام انتقال داده ها از یک دستگاه به دیگری با کمک گزینه “-bwlimit” تنظیم کنید. این گزینه به محدود کردن پهنای باند I / O کمک می کند.

بنابراین، به طور پیش فرض، rsync همگام سازی بلوک ها و بایت ها، اگر شما می خواهید همگام سازی کل فایل، شما با استفاده از گزینه “-W”.


شاید این مطالب را هم دوست داشته باشید

دیدگاهتان را بنویسید

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