در این مقاله قصد داریم روش انتقال و همگامسازی فایلها بین سیستم یا سرورهای لینوکسی را با استفاده از دستور قدرتمند rsync آموزش دهیم. این ابزار به شما کمک میکند فایلها را سریع، امن و بدون نیاز به آپلود و دانلود دستی منتقل کنید.
مرحله اول: آمادهسازی محیط پس از ورود از طریق SSH
بعد از ورود از طریق SSH به سرور، ابتدا باید مطمئن شوید ابزار rsync روی سرور نصب شده است. این ابزار معمولاً بهصورت پیشفرض در توزیعهای محبوب مانند Ubuntu، Debian، CentOS و AlmaLinux وجود دارد. برای اطمینان از نصب، دستور زیر را وارد کنید:
rsync --version
اگر نسخه برنامه در خروجی نمایش داده شد، یعنی نصب است.
اما اگر پیام خطا یا «command not found» دریافت کردید، باید آن را نصب کنید.
در سیستمهای مبتنی بر Ubuntu و Debian دستور زیر را وارد کنید:
sudo apt update && sudo apt install rsync -y
و در سرورهایی با CentOS یا AlmaLinux از این دستور استفاده کنید:
sudo dnf install rsync -y
مرحله دوم: انتقال فایل از سیستم محلی به سرور
اگر میخواهید فایلی از سیستم خود به سرور منتقل کنید، از دستور زیر استفاده کنید. این دستور فایل را از مسیر محلی شما به مسیر مشخصشده روی سرور کپی میکند:
rsync -avz /path/to/local/file user@server_ip:/path/to/remote/directory
پارامتر -a ساختار و مجوز فایلها را حفظ میکند، گزینه -v اطلاعات کامل عملیات را در ترمینال نمایش میدهد و -z دادهها را هنگام انتقال فشرده میکند تا سرعت افزایش یابد.
برای مثال، اگر میخواهید فایل بکاپی به نام backup.tar.gz را از مسیر /home/user به پوشه /root/backups روی سرور ارسال کنید، دستور به این شکل خواهد بود:
rsync -avz /home/user/backup.tar.gz root@192.168.1.10:/root/backups
مرحله سوم: انتقال فایل از سرور به سیستم محلی
در صورتی که بخواهید فایل را از سرور به کامپیوتر خود منتقل کنید، تنها کافیست جای مبدأ و مقصد را جابهجا کنید. برای مثال دستور زیر فایل img.svg را از پوشه /root سرور به دسکتاپ سیستم شما منتقل میکند:
rsync -avz --progress root@37.59.110.22:/root/img.svg /home/mahdi/Desktop/
بعد از وارد کردن رمز عبور کاربر root، روند انتقال آغاز میشود و خروجی شبیه تصویر زیر خواهد بود. در اینجا فایل با موفقیت از سرور به سیستم منتقل شده و در مسیر /home/mahdi/Desktop قرار گرفته است.
مرحله چهارم: انتقال پوشهها و محتوای آنها
دستور rsync فقط برای فایلهای تکی نیست؛ بلکه میتواند کل یک دایرکتوری را هم منتقل کند. اگر میخواهید فقط محتوای پوشه منتقل شود، در انتهای مسیر مبدأ یک / قرار دهید. برای مثال:
rsync -avz root@192.168.1.10:/var/www/ /home/user/www-backup/
مرحله پنجم: انتقال مستقیم بین دو سرور
اگر قصد دارید فایلها را بین دو VPS منتقل کنید، میتوانید دادهها را مستقیماً بین سرورها انتقال دهید. کافیست دستور را در یکی از سرورها اجرا کنید:
rsync -avz root@192.168.1.10:/var/www/ root@192.168.1.11:/var/www/
مرحله ششم: همگامسازی کامل با گزینه delete
اگر میخواهید پوشه مقصد دقیقاً با مبدأ یکسان شود و فایلهای حذفشده نیز پاک شوند، از گزینه --delete استفاده کنید:
rsync -avz --delete /source/ /destination/
مرحله هفتم: انتقال از طریق پورت SSH سفارشی
در برخی از سرورها، برای افزایش امنیت، پورت پیشفرض SSH که معمولاً عدد 22 است تغییر داده میشود. در چنین شرایطی اگر از دستور معمولی rsync استفاده کنید، اتصال برقرار نخواهد شد چون rsync تلاش میکند از پورت 22 ارتباط بگیرد.
برای رفع این مشکل، باید پورت صحیح SSH را با استفاده از گزینه -e در دستور مشخص کنید تا rsync بداند از چه پورتی برای برقراری ارتباط استفاده کند. بهعنوان مثال، اگر پورت SSH سرور شما 2222 باشد، دستور بهصورت زیر نوشته میشود:
rsync -avz -e "ssh -p 2222" /local/path/ root@192.168.1.10:/remote/path/
مرحله هشتم: آزمایش و شبیهسازی قبل از انتقال واقعی
برای اطمینان از درستی دستور قبل از اجرای واقعی، میتوانید از گزینه --dry-run استفاده کنید. این گزینه عملیات را شبیهسازی کرده و فقط فهرست فایلهایی که قرار است منتقل شوند را نمایش میدهد، بدون آنکه تغییری در سیستم ایجاد کند:
rsync -avz --dry-run /source/ /destination/
با استفاده از rsync میتوانید فایلها و پوشههای خود را بهصورت سریع، امن و دقیق بین سرورها یا سیستمهای مختلف منتقل کنید. این ابزار گزینهای ایدهآل برای بکاپگیری منظم و همگامسازی خودکار دادهها در VPSهای ایرانسرور است.





