دستور 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 میرساند.