از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
دستور Rsync در لینوکس با مثال
سرفصلهای مطلب
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 پیکربندی شده است.
استفاده پایه
اساسی ترین مورد استفاده از Rsync کپی کردن یک فایل به صورت محلی است. در اینجا یک مثال است:
rsync -a /opt/filename.zip /tmp/

کاربری که دستور را اجرا می کند باید مجوز خواندن داشته باشد روی مکان منبع و مجوزهای نوشتن روی مقصد
حذف نام فایل از مسیر مقصد، فایل را با نام فعلی کپی می کند. اگر می خواهید فایل را با نام دیگری ذخیره کنید، نام جدید را مشخص کنید روی قسمت مقصد:
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/
برای انتقال داده از یک کنترل از راه دور به یک ماشین محلی، از مکان راه دور به عنوان منبع استفاده کنید:
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 آرگومان کنید و فایل ها و دایرکتوری هایی را که می خواهید حذف کنید مشخص کنید روی خط فرمان
هنگام حذف فایل ها یا دایرکتوری ها، از مسیرهای نسبی آنها به محل منبع استفاده کنید.
مثال زیر روش حذف کردن را نشان می دهد 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/
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.
در صورت داشتن هر گونه سوال در کامنت بگذارید.
terminal
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1404-11-13 15:46:06

