`rsync` یک ابزار قدرتمند و انعطافپذیر برای انتقال و همگامسازی فایلها و پوشهها در سیستمهای لینوکسی است. این دستور برای کپی کردن دادهها بین دو مکان مختلف استفاده میشود، و میتواند به صورت محلی (روی یک سیستم) یا از طریق شبکه (بین دو سیستم) عمل کند. از جمله قابلیتهای برجسته `rsync` میتوان به پشتیبانی از انتقال دادهها با پهنای باند محدود، امنیت بالا، و امکان همگامسازی انتخابی اشاره کرد.
در این مقاله، نحوه نصب و استفاده از `rsync` در توزیعهای مختلف لینوکس شامل اوبونتو، دبیان، سنتوس و فدورا را آموزش خواهیم داد.
پیشنیازها
– یک سیستم لینوکس (اوبونتو، دبیان، سنتوس یا فدورا)
– دسترسی به ترمینال با دسترسی مدیریتی (sudo)
– اتصال به اینترنت (برای نصب ابزارها)
نصب `rsync` بر روی اوبونتو و دبیان
در اوبونتو و دبیان، `rsync` معمولاً به صورت پیشفرض نصب شده است. اما اگر نصب نشده باشد، میتوانید با استفاده از دستور زیر آن را نصب کنید:
sudo apt update
sudo apt install rsync -y
نصب `rsync` بر روی سنتوس و فدورا
در سنتوس و فدورا، میتوانید از دستورهای زیر برای نصب `rsync` استفاده کنید:
برای سنتوس:
sudo yum install rsync -y
برای فدورا:
sudo dnf install rsync -y
ساختار کلی دستور `rsync`
ساختار کلی دستور `rsync` به صورت زیر است:
rsync [گزینهها] منبع مقصد
– منبع (Source): مسیری که فایلها باید از آنجا کپی شوند.
– مقصد (Destination): مسیری که فایلها باید به آنجا کپی شوند.
– گزینهها (Options): پارامترهایی که رفتار `rsync` را تعیین میکنند.
مثالهای عملی از استفاده `rsync`
۱. کپی کردن فایلها و پوشهها به صورت محلی
برای کپی کردن یک فایل یا پوشه به صورت محلی (در همان سیستم)، میتوانید از دستور زیر استفاده کنید:
rsync -avh /path/to/source /path/to/destination
– **`-a`**: گزینه آرشیو که اطمینان حاصل میکند فایلها با تمام مجوزها، مالکیت و ساختار دایرکتوری کپی شوند.
– **`-v`**: گزینه حالت verbos برای نمایش اطلاعات بیشتر در حین عملیات.
– **`-h`**: نمایش اندازه فایلها در قالبی خوانا برای انسان (مثلاً MB یا GB).
مثال:
rsync -avh /home/user/documents /home/user/backup
۲. همگامسازی فایلها بین دو سیستم از طریق SSH
یکی از رایجترین استفادههای `rsync`، انتقال فایلها بین دو سیستم از طریق SSH است. برای این کار، از گزینه `-e` به همراه `ssh` استفاده کنید:
rsync -avh -e ssh /path/to/source user@remote_host:/path/to/destination
مثال:
rsync -avh -e ssh /home/user/documents user@192.168.1.10:/home/user/backup
در اینجا، `rsync` تمام فایلها و پوشههای موجود در `/home/user/documents` را به سیستم ریموت با IP `192.168.1.10` منتقل میکند.
۳. همگامسازی دو پوشه (کپی به صورت دوطرفه)
اگر میخواهید دو پوشه را به صورت دوطرفه همگامسازی کنید، میتوانید از `rsync` برای بهروزرسانی فقط فایلهای جدیدتر استفاده کنید. به این صورت که فایلهای موجود در منبع و مقصد را همگامسازی میکند و فایلهایی که تغییر کردهاند را بهروزرسانی میکند:
rsync -avhu --delete /path/to/source /path/to/destination
– **`–delete`**: فایلهایی که در منبع وجود ندارند، اما در مقصد موجود هستند را حذف میکند.
– **`-u`**: فقط فایلهایی را کپی میکند که جدیدتر هستند.
مثال:
rsync -avhu --delete /home/user/documents /home/user/backup
۴. انتقال فایلهای حجیم با پهنای باند محدود
اگر با محدودیت پهنای باند مواجه هستید و نمیخواهید که انتقال فایلها تمام پهنای باند را مصرف کند، میتوانید از گزینه `–bwlimit` استفاده کنید:
rsync -avh --bwlimit=1000 /path/to/source user@remote_host:/path/to/destination
– **`–bwlimit`**: مقدار پهنای باندی که `rsync` استفاده میکند (بر حسب KB/s).
مثال:
rsync -avh --bwlimit=1000 /home/user/videos user@192.168.1.10:/home/user/backup
در اینجا، پهنای باند به ۱۰۰۰ کیلوبایت در ثانیه محدود شده است.
۵. استفاده از `rsync` برای پشتیبانگیری
یکی از کاربردهای اصلی `rsync` برای پشتیبانگیری از فایلها و سیستمها است. شما میتوانید از آن برای ایجاد نسخههای پشتیبان به صورت منظم استفاده کنید. برای این کار، کافی است که یک اسکریپت bash ایجاد کنید که دستور `rsync` را اجرا کند.
#!/bin/bash
rsync -avh --delete /home/user/documents /mnt/backup/documents_backup
با ذخیره کردن این اسکریپت و اجرای آن، `rsync` تمامی فایلهای موجود در `/home/user/documents` را به پوشه `/mnt/backup/documents_backup` همگامسازی میکند و فایلهای اضافی را حذف میکند.
۶. همگامسازی فایلهای مشخص
میتوانید از `rsync` برای کپی کردن فقط فایلهای مشخص یا پسوندهای خاص استفاده کنید:
rsync -avh --include='*.txt' --exclude='*' /path/to/source/ /path/to/destination/
– **`–include`**: فایلهای با پسوند مشخص شده را شامل میشود.
– **`–exclude`**: همه چیز به جز فایلهای مشخص شده را حذف میکند.
مثال:
rsync -avh --include='*.pdf' --exclude='*' /home/user/documents /home/user/pdf_backup
در اینجا، فقط فایلهای `.pdf` از `/home/user/documents` به `/home/user/pdf_backup` منتقل میشوند.
نکات و پیشنهادات
۱. استفاده از `rsync` برای اسکریپتهای پشتیبانگیری: `rsync` به دلیل ویژگی همگامسازی، یکی از بهترین ابزارها برای ایجاد اسکریپتهای پشتیبانگیری منظم است.
۲. اتصالات SSH امنتر: برای اطمینان از امنیت انتقال دادهها، همواره از کلیدهای SSH به جای رمزهای عبور استفاده کنید.
۳. استفاده از `cron` برای زمانبندی: میتوانید از `cron` برای اجرای خودکار اسکریپتهای `rsync` در زمانهای معین استفاده کنید.
جمعبندی
`rsync` ابزاری بسیار مفید و کارآمد برای همگامسازی فایلها در سیستمهای لینوکسی است. با استفاده از این ابزار، شما میتوانید فایلها و پوشهها را بهسرعت کپی و همگامسازی کنید، پشتیبانگیریهای منظم انجام دهید و حتی انتقال فایلهای حجیم را بهینهسازی کنید. این ابزار به دلیل سرعت، امنیت و انعطافپذیری بالا، یکی از محبوبترین ابزارهای مدیریت فایل در لینوکس به شمار میآید.