وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

دستور Rsync در لینوکس با مثال

0 0
زمان لازم برای مطالعه: 5 دقیقه



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

می‌توانید از Rsync برای انعکاس داده‌ها، پشتیبان‌گیری افزایشی، کپی کردن فایل‌ها بین سیستم‌ها و به‌عنوان یک جایگزین برتر برای scp
، sftp
، و cp
دستورات

این راهنما روش استفاده از Rsync را از طریق مثال های عملی و توضیحات مفصل در مورد رایج ترین گزینه های Rsync پوشش می دهد.

در حال نصب Rsync

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

Rsync را نصب کنید روی اوبونتو و دبیان

sudo apt install rsync

Rsync را نصب کنید روی CentOS و فدورا

sudo yum install rsync

نحو دستور Rsync

قبل از اینکه به روش استفاده از rsync دستور، اجازه دهید با بررسی نحو اصلی شروع کنیم.

دستورات Rsync از این ساختار پیروی می کنند:

# Local to Local:  
rsync [OPTION]... [SRC]... DEST

# Local to Remote: 
rsync [OPTION]... [SRC]... [USER@]HOST:DEST

# Remote to Local: 
rsync [OPTION]... [USER@]HOST:SRC... [DEST]
  • OPTIONگزینه های Rsync
    (جزئیات زیر).
  • SRC – Source مسیر
  • DEST – مسیر مقصد
  • USER – نام کاربری از راه دور
  • HOST – نام میزبان راه دور یا آدرس IP.

rsync تعدادی گزینه را ارائه می دهد که روش رفتار فرمان را کنترل می کند. پرکاربردترین گزینه ها عبارتند از:

  • -a، --archive، حالت آرشیو، معادل -rlptgoD. این گزینه به Rsync می‌گوید که دایرکتوری‌ها را به صورت بازگشتی همگام‌سازی کند، دستگاه‌های خاص را انتقال دهد و مسدود کند، پیوندهای نمادین، زمان‌های اصلاح، گروه‌ها، مالکیت و مجوزها را حفظ کند.
  • -z، --compress. این گزینه Rsync را مجبور می کند تا داده ها را هنگام ارسال به دستگاه مقصد فشرده کند. فقط در صورتی از این گزینه استفاده کنید که اتصال به دستگاه از راه دور کند باشد.
  • -P، معادل --partial --progress. هنگامی که از این گزینه استفاده می شود، Rsync یک نوار پیشرفت را در حین انتقال نشان می دهد و فایل های نیمه منتقل شده را نگه می دارد. هنگام انتقال فایل های بزرگ از طریق اتصالات شبکه کند یا ناپایدار مفید است.
  • --delete. هنگامی که از این گزینه استفاده می شود، Rsync فایل های اضافی را از محل مقصد حذف می کند. برای آینه سازی مفید است.
  • -q، --quiet. اگر می خواهید پیام های بدون خطا را سرکوب کنید از این گزینه استفاده کنید.
  • -e. این گزینه به شما امکان می دهد پوسته راه دور متفاوتی را انتخاب کنید. به طور پیش فرض، Rsync برای استفاده از ssh پیکربندی شده است.
پیشنهاد می‌کنیم بخوانید:  روش نصب پایتون 3.8 روی CentOS 8

استفاده پایه

اساسی ترین مورد استفاده از Rsync کپی کردن یک فایل به صورت محلی است. در اینجا یک مثال است:

rsync -a /opt/filename.zip /tmp/
فایل کپی rsync

کاربری که دستور را اجرا می کند باید مجوز خواندن داشته باشد روی مکان منبع و مجوزهای نوشتن روی مقصد

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

rsync -a /opt/filename.zip /tmp/newfilename.zip

قدرت واقعی Rsync هنگام همگام سازی دایرکتوری ها به دست می آید. مثال زیر روش ایجاد محلی را نشان می دهد backup فایل های وب سایت:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

اگر دایرکتوری مقصد وجود نداشته باشد، Rsync آن را ایجاد می کند.

Rsync دایرکتوری های منبع را با یک اسلش انتهایی (/) متفاوت است.

  • (با /) – اگر دایرکتوری منبع دارای یک اسلش انتهایی باشد، دستور فقط محتویات دایرکتوری را در فهرست مقصد کپی می کند.
  • (بدون /) – هنگامی که اسلش انتهایی حذف می شود، Rsync دایرکتوری منبع را در فهرست مقصد کپی می کند.

همگام سازی از راه دور

برای انتقال داده از راه دور با Rsync، باید آن را نصب کنید روی هم ماشین مبدا و هم ماشین مقصد. نسخه های جدید `Rsync برای استفاده از SSH به عنوان پوسته راه دور پیش فرض پیکربندی شده اند.

در مثال زیر، ما یک دایرکتوری را از یک محلی به یک ماشین راه دور منتقل می کنیم:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/
اگر یک ورود بدون رمز عبور SSH به دستگاه راه دور تنظیم نکرده باشید، از شما خواسته می شود رمز عبور کاربر را وارد کنید.

برای انتقال داده از یک کنترل از راه دور به یک ماشین محلی، از مکان راه دور به عنوان منبع استفاده کنید:

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

اگر SSH روی از راه دور host در حال گوش دادن است روی پورتی غیر از پیش فرض 22، پورت را با استفاده از -e گزینه:

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

برای نقل و انتقالات بزرگ، توصیه می شود که اجرا شود rsync دستور داخل a screen
جلسه یا استفاده از -P گزینه:

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

به استثنای فایل ها/دایرکتوری ها

دو گزینه برای حذف فایل ها و دایرکتوری ها وجود دارد. اولین گزینه استفاده از --exclude آرگومان کنید و فایل ها و دایرکتوری هایی را که می خواهید حذف کنید مشخص کنید روی خط فرمان

پیشنهاد می‌کنیم بخوانید:  چگونه GitLab را نصب و پیکربندی کنیم CentOS 7

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

مثال زیر روش حذف کردن را نشان می دهد node_modules و tmp دایرکتوری ها:

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

گزینه دوم استفاده از --exclude-from را انتخاب کنید و فایل ها و دایرکتوری هایی را که می خواهید در یک فایل حذف کنید را مشخص کنید.

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/
/exclude-file.txt
node_modules
tmp

عیب یابی

مشکلات متداول rsync و رفع آن:

  • اجازه رد شد: مطمئن شوید که مجوزهای خواندن تنظیم شده است روی مجوز منبع و نوشتن تنظیم شده است روی مقصد بررسی کنید که دسترسی SSH به کنترل از راه دور دارید host. استفاده کنید -v برای خروجی دقیق برای کمک به تشخیص مشکل.
  • هیچ مسیری به میزبان/اتصال رد شده است: اتصال شبکه، قوانین فایروال را بررسی کنید (SSH را مجاز کنید)، و مطمئن شوید که نام میزبان/IP صحیح استفاده شده است. می توانید اتصال را با ping دستور یا با تلاش برای SSH به host با استفاده از ssh user@host.
  • عدم تطابق نسخه پروتکل: به روز رسانی rsync روی هر دو ماشین به یک نسخه. شما می توانید این کار را از طریق مدیر بسته خود انجام دهید.
  • فایل ها حذف شده یا منتقل نشده اند: اضافه کردن -v برای دیدن جزئیات موارد استثنا، اسلش های انتهایی، یا مشکلات پیوند علامت را بررسی کنید. استفاده کنید --dry-run برای شبیه سازی انتقال بدون ایجاد هیچ تغییری.
  • انتقالات آهسته: از استفاده از -z گزینه روی شبکه های سریع، زیرا می تواند سربار غیر ضروری را اضافه کند. برای فایل های حجیم از -P گزینه و حفظ اتصالات پایدار.
  • خطای فایل های ناپدید شده: این خطا معمولاً زمانی رخ می دهد که فایل های منبع در حین انتقال تغییر می کنند. می توانید دستور را دوباره اجرا کنید یا از آن استفاده کنید --ignore-existing گزینه ای برای پرش از فایل هایی که تغییر کرده اند.

دستور را با -vv برای اطلاعات دقیق تر اشکال زدایی یا مشورت man rsync.

نتیجه گیری

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

در صورت داشتن هر گونه سوال در کامنت بگذارید.

rsync
terminal
برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1404-11-13 15:46:06

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید