دستور Rsync در لینوکس: راهنمای کامل و جامع

دستور Rsync در لینوکس: راهنمای کامل و جامع

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


معرفی Rsync

rsync مخفف “remote sync” است؛ ابزاری برای انتقال و همگام‌سازی فایل‌ها و دایرکتوری‌ها بین دو محل (لوکال به لوکال، لوکال به ریموت یا بالعکس). ویژگی کلیدی rsync، مقایسه هوشمندانه محتویات فایل‌ها و انتقال تنها تغییرات است که مصرف پهنای باند را به شدت کاهش می‌دهد.

  • انتشار اولیه: ۱۹۹۶
  • زبان توسعه: C
  • پروتکل: مبتنی بر TCP (پورت پیش‌فرض ۲۲/ssh یا ۱۰۳/rsyncd)
  • مجوز: GPL

نصب و راه‌اندازی

در اغلب توزیع‌های لینوکس، rsync از پیش نصب شده است. در غیر این صورت می‌توانید با دستور زیر نصب کنید:

# در توزیع‌های مبتنی بر Debian/Ubuntu
sudo apt update
sudo apt install rsync

# در توزیع‌های مبتنی بر RedHat/CentOS/Fedora
sudo yum install rsync

برای استفاده از حالت daemon (سرور rsync) جهت دریافت فایل از کلاینت‌ها، فایل تنظیمات /etc/rsyncd.conf را ویرایش و سرویس rsyncd را فعال کنید.

نحو کلی دستور

فرمت عمومی rsync به شکل زیر است:

rsync [OPTIONS] source destination
  • مبدا (source): مسیری که می‌خواهید فایل‌ها را از آنجا همگام‌سازی کنید.
  • مقصد (destination): مسیری که فایل‌ها باید به آنجا منتقل شوند.
  • اگر مقصد یا مبدا شامل ریموت باشد، باید به شکل [user@]host:/path مشخص شود.

توضیح دقیق گزینه‌ها

۱. گزینه‌های کلی

  • -v
    نمایش جزئیات عملیات انتقال.
  • -q
    سرکوب پیام‌های غیرضروری.
  • --progress
    نمایش پیشرفت انتقال هر فایل.
  • -n
    شبیه‌سازی انتقال بدون اعمال واقعی؛ بسیار مناسب برای تست قبل از اجرای نهایی.

۲. حالت آرشیو و همگام‌سازی کامل

  • -a
    معادل -rlptgoD ؛ حفظ لینک‌ها (-l)، بازگشت‌پذیری (-r)، مجوزها (-p)، زمان‌بندی (-t)، مالکیت (-o)، گروه (-g) و فایل‌های ویژه (-D).
# برای حالت عادی در لوکال
rsync -a /home/user/data/ /backup/data/

# برای انتقال از سرور لوکال به سرور مقصد
rsync -a /home/user/data/ user@remote.example.com:/backup/data/

# برای انتقال از سرور دیگر به سرور خودمان
rsync -a user@remote.example.com:/home/user/data/ /backup/data/

۳. فشرده‌سازی و بهینه‌سازی

  • -z
    فشرده‌سازی داده‌ها در حین انتقال (مناسب لینک‌های کند).
  • -c
    چک‌سام برای مقایسه فایل‌ها به‌جای مقایسه زمان و اندازه.
  • --bwlimit=PD
    محدود کردن پهنای‌باند به PD کیلوبیت بر ثانیه.
rsync -az --bwlimit=5000 source/ dest/

۴. مدیریت حذف و فایل‌های بیش‌ازحد

  • --delete
    حذف فایل‌هایی در مقصد که در مبدا وجود ندارند.
  • --delete-excluded
    حذف فایل‌های مستثنی‌شده از مقصد.
  • --max-size=SIZE / --min-size=SIZE
    محدود کردن انتقال براساس اندازه فایل (مثلاً --max-size=10M).

۵. فیلترها و استثناها

  • --exclude=PATTERN
    نادیده‌گرفتن فایل‌ها/دایرکتوری‌های مطابق با الگو.
  • --include=PATTERN
    شامل‌کردن فایل‌های مشخص در حالی‌که بقیه غیرمکان‌ها کنار گذاشته می‌شوند.
  • --filter=RULE
    قوانین پیچیده‌تر با سینتکس rsync.
rsync -av --exclude='*.log' --include='important.log' src/ dest/

۶. مسائل شبکه و SSH

  • -e 'ssh -p PORT'
    تعیین پورت SSH سفارشی.
  • --rsh=COMMAND
    استفاده از RSH یا SSH با دستور دلخواه.
  • --timeout=SECONDS
    تعیین زمان‌تایم‌اوت شبکه.

۷. بهبود تجربه کاربری

  • -P
    معادل --partial --progress؛ نگه‌داشتن فایل‌های ناقص و نمایش پیشرفت.
  • --stats
    نمایش آمار کلی پس از اتمام انتقال.
  • --human-readable (-h)
    نمایش اندازه‌ها به‌طور خوانا (مثلاً 4.1M به‌جای بایت خام).

مثال‌های کاربردی

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

rsync -avz -e ssh /home/user/project/ user@remote:/var/www/project/

2. پشتیبان‌گیری دوره‌ای با حذف فایل‌های اضافه

rsync -av --delete /data/ /backup/data/

3. انتقال فایل‌های بزرگ با محدودیت پهنای‌باند

rsync -avz --bwlimit=2000 /videos/ backup:/mnt/videos/

4. شبیه‌سازی قبل از انتقال

rsync -av --dry-run /source/ /dest/

مزایا

  • سریع و بهینه: انتقال تنها تغییرات، کاهش حجم داده و استفاده بهینه از پهنای‌باند.
  • قابل‌اعتماد: امکان ادامه‌ی انتقال پس از قطع ارتباط با گزینه --partial.
  • امنیت بالا: استفاده از SSH برای رمزنگاری ترافیک.
  • تنوع گزینه‌ها: بیش از ۳۰ پارامتر برای کنترل دقیق رفتار ابزار.
  • پشتیبانی گسترده: در تمام توزیع‌ها و بسیاری از سیستم‌های BSD و macOS موجود است.

معایب

  • پیچیدگی گزینه‌ها: کاربر مبتدی ممکن است در انتخاب پارامترهای صحیح دچار سردرگمی شود.
  • عدم رابط گرافیکی رسمی: برای کاربران غیرمتنی، نصب رابط‌هایی مانند Grsync نیاز است.
  • مصرف زیاد CPU در فشرده‌سازی: گزینه -z ممکن است در سیستم‌های قدیمی بار پردازشی بالایی ایجاد کند.

نتیجه‌گیری

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

rapidoserver وب‌سایت

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

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