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

کپی کردن فایل ها از یک دستگاه به دستگاه دیگر می تواند یک کار دست و پا گیر باشد. خوشبختانه، شما می توانید این را ساده کنید process روی لینوکس با استفاده از rsync فرمان

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

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

rsync همچنین دارای ویژگی های قوی برای انتقال فایل ها به a backup وظایف سرور و آینه سازی این ویژگی‌های فایل را حفظ می‌کند و از انتقال امن از طریق SSH پشتیبانی می‌کند و آن را برای انتقال فایل‌های محلی و از راه دور مناسب می‌کند.

rsync چگونه کار می کند؟

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

گزینه ها و پارامترهای rsync

rsync گزینه‌های خط فرمان، پارامترها و فایل‌های پیکربندی متعددی برای تنظیم رفتار آن دارد. در اینجا برخی از موارد رایج استفاده می شود:

  • -v یا –کلمه – افزایش پرحرفی، ارائه خروجی دقیق تر در حین انتقال.
  • -a یا -بایگانی – حالت آرشیو، که شامل کپی بازگشتی و حفظ مجوزهای فایل، مُهرهای زمانی، پیوندهای نمادین و فایل‌های دستگاه است.
  • -r یا بازگشتی – دایرکتوری ها را به صورت بازگشتی کپی کنید.
  • -حذف – فایل های حذف شده را از فهرست مقصد حذف کنید.
  • –exclude=PATTERN – حذف فایل ها یا دایرکتوری های مطابق با الگوی مشخص شده.
  • –include=PATTERN – شامل فایل ها یا دایرکتوری هایی که با الگوی مشخص شده مطابقت دارند.
  • -z یا – فشرده سازی – فشرده سازی داده های فایل در حین انتقال برای کاهش استفاده از پهنای باند.
  • -s یا –sparse – پس از یک عملیات همگام سازی، خلاصه ای از فایل ها و فهرست های همگام سازی شده، از جمله فایل های پراکنده ایجاد کنید.
  • – اجرا خشک – اجرای آزمایشی را بدون ایجاد هیچ تغییر واقعی انجام دهید.
  • temp-dir – یک دایرکتوری برای ذخیره فایل های موقت مشخص کنید.
  • -u یا -update – رد شدن از فایل ها روی سمت مقصد که جدیدتر از فایل های مبدا هستند، بنابراین فقط فایل های قدیمی به روز می شوند.
  • -h یا –قابل خواندن برای انسان – خروجی اعداد در قالب قابل خواندن توسط انسان.
  • -i یا –itemize-changes – خروجی لیستی از تغییرات ایجاد شده در حین انتقال.
  • -پیش رفتن – نمایش پیشرفت در حین انتقال
  • -آمار – آمار انتقال فایل را پس از تکمیل ارائه می دهد.
  • -e یا –rsh=COMMAND – مشخص کنید از کدام پوسته راه دور استفاده کنید.
  • –bwlimit=RATE – پهنای باند را برای افزایش کارایی شبکه محدود کنید.
  • -P یا -جزئی-پیشرفت – فایل های نیمه انتقال یافته را نگه دارید و پیشرفت را نشان دهید.

برای یک لیست جامع از همه موجود rsync گزینه ها، دستور زیر را اجرا کنید:

man rsync

اطلاعات دقیقی در مورد هر گزینه و پارامتر خواهید دید.

نحو پایه

نحو اصلی an rsync دستور به شرح زیر است:

rsync [OPTIONS] SOURCE DESTINATION
  • [OPTIONS] – این قسمتی است که می توانید در آن قرار دهید rsync گزینه ها. می توانید بیش از یک گزینه اضافه کنید.
  • منبع – این دایرکتوری منبع یا فایلی است که می خواهید کپی یا همگام سازی کنید. مسیر داده های منبع را در اینجا مشخص کنید.
  • مقصد – دایرکتوری مقصد که در آن داده های مبدأ کپی یا همگام می شوند. مسیر دایرکتوری یا فایل مقصد را در اینجا مشخص کنید.

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

هنگام استفاده از rsync برای انتقال داده ها از یک کامپیوتر محلی به یک سرور خصوصی مجازی لینوکس (VPS)، ارتباطات متکی است روی را rsync اهریمن، دیو. این rsync نحو برای پوسته راه دور به شرح زیر است:

rsync [OPTIONS] -e "SSH_COMMAND" SOURCE DESTINATION

این -e گزینه برای تعیین پوسته راه دور استفاده می شود. در بیشتر موارد، شما استفاده خواهید کرد ssh برای اتصال به ریموت host با استفاده از rsync پروتکل به روز رسانی از راه دور

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

بیایید دو سناریو رایج را بررسی کنیم.

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

rsync -avz -e ssh user@remote_host:/path/to/source/ /path/to/local/destination/

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

rsync -avz /path/to/local/source/ user@remote_host:/path/to/remote/destination/

روش بررسی نسخه rsync

rsync معمولاً به طور پیش فرض در بسیاری از توزیع های لینوکس گنجانده شده است. بیایید بررسی کنیم که آیا rsync قبلا نصب شده است روی سیستم شما

برای کاربران ویندوز که با میزبانی VPS کار می کنند، برای ورود به سیستم از PuTTY SSH استفاده کنید. اگر از macOS یا Linux استفاده می کنید، به ترمینال دسترسی پیدا کنید.

پس از ورود، دستور زیر را اجرا کنید:

rsync --version

خروجی مشابه زیر دریافت خواهید کرد:

rsync version 3.2.7 protocol version 31

روش نصب rsync

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

برای توزیع های مبتنی بر دبیان، از جمله اوبونتو:

sudo apt-get install rsync

برای توزیع های مبتنی بر فدورا، مانند CentOS:

sudo dnf install rsync

برای macOS:

brew install rsync

روش استفاده از دستورات rsync

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

برای ایجاد این دایرکتوری ها، این دستورات را دنبال کنید:

cd
mkdir original
mkdir duplicate

بعد، سه فایل نمونه در داخل ایجاد کنید اصلی پوشه:

touch original/file{1..3}

برای اطمینان از ایجاد همه فایل‌های نمونه، همه فایل‌های موجود در فهرست را فهرست کنید اصلی دایرکتوری و سیستم فایل را با استفاده از این دستور مشاهده کنید:

rsync original/

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

یکی از ضروری ترین موارد استفاده برای rsync این است که داده ها را بین دو دایرکتوری در یک سیستم تکرار کنید. برای این کار از دستور زیر استفاده کنید:

rsync original/* duplicate/

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

برای همگام سازی فایل ها و ایجاد یک پوشه جدید به طور همزمان، از این دستور استفاده کنید:

rsync original/ duplicate/

روش استفاده از دستورات rsync با زیر شاخه ها

برای همگام سازی پوشه ها و زیر شاخه ها بین دو مکان، از این استفاده کنید rsync دستور کپی دایرکتوری:

rsync -r original/*/ duplicate/

برای همگام سازی یک زیر شاخه خاص، دستور زیر را تایپ کنید:

rsync -r original/subdirectory_name/ duplicate/

جایگزین کردن subdirectory_name با نام زیرپوشه ای که می خواهید همگام سازی کنید.

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

rsync -r --exclude=subdirectory_name original/ duplicate/

روش همگام سازی فایل ها

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

rsync -av original/ duplicate/

برای کپی کردن فایل ها از اصلی دایرکتوری به یک سرور راه دور، این دستور را وارد کنید:

rsync -av -e ssh original/ username@remote_host:/path/to/destination/

جایگزین کردن نام کاربری، remote_host، و /مسیر/به/مقصد/ با مقادیر مناسب

روش ترکیب دستورات rsync

همانطور که بیشتر آشنا می شوید rsync، بیایید توانایی آن را برای ترکیب چندین دستور برای وظایف مدیریت فایل پیچیده بررسی کنیم.

می‌توانید ویژگی‌های همگام‌سازی و حذف را برای دستیابی به نتایج دقیق ترکیب کنید.

مثال زیر نشان می دهد که چگونه می توانید همه فایل ها را از روی همگام سازی کنید اصلی rsync دایرکتوری در حالی که به استثنای TXT فایل ها:

rsync -av --exclude="*.txt" original/ duplicate/

ترکیب کنید -r گزینه ای با دستورات همگام سازی برای اطمینان از آن rsync دایرکتوری ها و محتویات آنها به صورت بازگشتی همگام می شوند.

rsync -av -r original/ duplicate/

قبل از همگام سازی واقعی rsync پوشه، می توانید از – اجرا خشک گزینه پیش نمایش تغییرات rsync بدون ایجاد هیچ گونه تغییر واقعی انجام می شود.

rsync -av --dry-run original/ duplicate/

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

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

rsync -av --delete original/ duplicate/

rsync از همگام‌سازی فایل‌ها یا انواع فایل‌های مشخص شده با استفاده از الگوها و حروف عام پشتیبانی می‌کند. به عنوان مثال، فقط برای همگام سازی TXT فایل ها را وارد کنید:

rsync -av original/*.txt duplicate/

شما همچنین می توانید فایل های مبتنی بر حذف روی الگوهای خاص در نام آنها. برای حذف فایلی به نام example.txt، دستور زیر را تایپ کنید:

rsync -av --exclude=example.txt original/ duplicate/

ترکیب کنید -عبارتند از و – مستثنی کردن گزینه هایی برای گنجاندن چندین فایل یا دایرکتوری در حالی که دیگران را حذف می کند. در اینجا یک مثال برای گنجاندن فایل هایی که با حرف شروع می شوند آورده شده است L و تمام فایل های دیگر را حذف کنید:

rsync -av --include="L*" --exclude="*" original/ duplicate/

برای محدود کردن همگام سازی به فایل های زیر یک اندازه خاص، از – حداکثر اندازه گزینه و به دنبال آن محدودیت اندازه. این rsync دستور فقط همگام سازی فایل های کوچکتر از 10 مگابایت به شرح زیر است:

rsync -av --max-size=10M original/ duplicate/

روش اضافه کردن نوار پیشرفت

نظارت بر پیشرفت همگام سازی می تواند مفید باشد، به خصوص برای انتقال فایل های بزرگ. rsync به شما امکان می دهد با استفاده از نوار پیشرفت اضافه کنید -پیش رفتن گزینه. این دستوری است که می توانید استفاده کنید:

rsync -av --progress original/ duplicate/

خروجی چیزی شبیه به این خواهد بود:

file1.txt
    5,120,000 100%   50.00MB/s 0:00:00 (xfr#1, to-chk=2/3)
file2.txt
    5,345,678 100%   55.67MB/s 0:00:00 (xfr#2, to-chk=1/3)

برای افزودن نوار پیشرفت و حفظ فایل‌های منتقل شده جزئی به جای حذف آن‌ها در صورت وقفه، از آن استفاده کنید گزینه:

rsync -av -P original/ duplicate/

روش ایجاد یک نسخه پشتیبان rsync

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

پیشنهاد می‌کنیم بخوانید:  تابع get_posts وردپرس چیست و چگونه از آن برای ساخت لیست پست های PHP استفاده کنیم

برای ایجاد ریموت backup و دایرکتوری آن را مشخص کنید، از دستور زیر استفاده کنید:

rsync -av --backup --backup-dir=/path/to/backup/ original/ duplicate/

هنگام اجرا، rsync backup گزینه یک لیست فایل افزایشی ایجاد می کند و یک tilde اضافه می کند (~) به نام فایل اصلی، مانند important.txt.

نتیجه

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

سوالات متداول rsync

این بخش به رایج ترین سوالات در مورد پاسخ خواهد داد rsync

چه سیستم عامل هایی با rsync سازگار هستند؟

rsync در اصل برای سیستم عامل های یونیکس مانند لینوکس و macOS طراحی شده است. با این حال، می توان از آن نیز استفاده کرد روی سیستم های ویندوز با کمک شخص ثالث rsync برنامه های مشتری مانند Cygwin یا Windows Subsystem for Linux (WSL). این باعث می شود rsync یک انتخاب همه کاره برای همگام سازی فایل در سیستم عامل های مختلف.

rsync چه تفاوتی با سایر روش های انتقال فایل دارد؟

به جای انتقال کل فایل سیستم ها، rsync فقط تفاوت بین فایل های مقصد و مبدا را ارسال می کند و استفاده از پهنای باند را کاهش می دهد. می‌تواند روی اتصالات SSH ایمن کار کند، فشرده‌سازی فایل‌های منعطف را ارائه دهد و انتقال‌های قطع شده را از سر بگیرد. این به ویژه هنگام برخورد با تعداد زیادی فایل در یک سیستم راه دور بسیار مفید است.

آیا محدودیت یا اشکالی برای استفاده از rsync وجود دارد؟

در حالی که rsync ابزار قدرتمندی است، محدودیت هایی دارد. اول، ممکن است برای همگام سازی بلادرنگ مناسب نباشد زیرا در حالت دسته ای کار می کند. علاوه بر این، همانطور که کاربران اغلب به آن اعتماد دارند، رمزگذاری بومی را ارائه نمی دهد روی SSH برای انتقال امن در آخر، rsync می‌تواند برای مبتدیان پیچیده باشد و برای تسلط بر گزینه‌های گسترده‌اش به یک منحنی یادگیری نیاز دارد.