آموزش انتقال فایل‌های حجیم با scp بین دو سرور لینوکسی

انتقال فایل‌ها بین دو سرور لینوکس یکی از وظایف رایجی است که معمولاً با ابزارهای مختلف انجام می‌شود. یکی از محبوب‌ترین و قدرتمندترین ابزارها برای این کار SCP....

انتشار: , زمان مطالعه: 4 دقیقه
آموزش انتقال فایل‌های حجیم با scp بین دو سرور لینوکسی
دسته بندی: سیستم عامل تعداد بازدید: 45

انتقال فایل‌ها بین دو سرور لینوکس یکی از وظایف رایجی است که معمولاً با ابزارهای مختلف انجام می‌شود. یکی از محبوب‌ترین و قدرتمندترین ابزارها برای این کار، Secure Copy Protocol (SCP) است. scp بر پایه پروتکل SSH کار می‌کند و امکان انتقال فایل‌ها به صورت امن و مطمئن را فراهم می‌سازد.

در این مقاله، به شما نشان خواهیم داد چگونه می‌توانید فایل‌های حجیم را به سادگی و با دقت بین دو سرور لینوکسی انتقال دهید. این روش به ویژه برای کاربرانی که با فضای سروری آشنا هستند، سریع و بهینه است.

1. معرفی scp

SCP (Secure Copy Protocol) یک ابزار خط فرمان است که برای انتقال امن فایل‌ها بین سیستم‌های لینوکسی استفاده می‌شود. این ابزار از پروتکل SSH برای رمزنگاری اطلاعات و حفاظت از داده‌ها استفاده می‌کند، که آن را به یک روش امن برای انتقال فایل‌ها تبدیل کرده است.

مزایای استفاده از scp:

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

2. نصب و پیکربندی اولیه SSH

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

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

sudo apt update
sudo apt install openssh-server

برای سرورهای سنت‌اواس یا ردهت:

sudo yum install openssh-server

بعد از نصب، سرویس SSH باید فعال باشد:

sudo systemctl enable ssh
sudo systemctl start ssh

3. انتقال فایل با استفاده از scp

حالا که سرویس SSH روی هر دو سرور فعال است، می‌توانید از scp برای انتقال فایل‌ها استفاده کنید. به دستور زیر دقت کنید:

scp /path/to/local/file username@remote_host:/path/to/remote/directory
  • /path/to/local/file: مسیر فایل روی سرور مبدأ.
  • username: نام کاربری شما روی سرور مقصد.
  • remote_host: آدرس IP یا نام دامنه سرور مقصد.
  • /path/to/remote/directory: مسیر مقصد برای فایل روی سرور مقصد.

مثال:

فرض کنید می‌خواهید فایلی به نام largefile.tar.gz را از سرور محلی خود به سرور مقصد با IP 192.168.1.100 و در دایرکتوری /home/user/ منتقل کنید. دستور به این صورت خواهد بود:

scp largefile.tar.gz [email protected]:/home/user/

این دستور فایل شما را با استفاده از پروتکل SSH به صورت امن منتقل خواهد کرد.

4. بهینه‌سازی انتقال فایل‌های حجیم با پارامترهای مناسب

انتقال فایل‌های حجیم ممکن است زمان‌بر باشد و نیاز به بهینه‌سازی داشته باشد. scp گزینه‌های مختلفی برای کنترل سرعت و بهینه‌سازی فرآیند انتقال ارائه می‌دهد:

فشرده‌سازی هنگام انتقال: برای کاهش اندازه فایل‌های در حال انتقال، می‌توانید از پارامتر -C استفاده کنید که فشرده‌سازی انجام می‌دهد:

scp -C largefile.tar.gz [email protected]:/home/user/

استفاده از پورت سفارشی : اگر کاربر پورت پیش‌فرض SSH (پورت 22) را در سرور مقصد تغییر داده باشد، برای استفاده از scp باید پورت جدید را مشخص کنید. در این حالت، از گزینه -P استفاده می‌کنید تا پورت صحیح را تعیین کنید.

scp -P 2222 -C largefile.tar.gz [email protected]:/home/user/

محدود کردن پهنای باند: اگر نمی‌خواهید کل پهنای باند شبکه‌تان مصرف شود، می‌توانید از گزینه -l استفاده کنید تا پهنای باند انتقال را محدود کنید. مقدار وارد شده بر حسب کیلوبیت بر ثانیه (kbps) است:

scp -l 5000 largefile.tar.gz [email protected]:/home/user/

انتقال در پس‌زمینه: برای انتقال فایل‌های بسیار حجیم و ادامه کار دیگر در ترمینال، می‌توانید با استفاده از & انتقال را در پس‌زمینه انجام دهید:

scp largefile.tar.gz [email protected]:/home/user/ &

5. رفع مشکلات رایج

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

  • قطع اتصال در میانه‌ی انتقال: اگر اتصال قطع شد، می‌توانید از ابزارهای دیگر مانند rsync استفاده کنید که قابلیت ادامه از همان نقطه را دارد. scp به صورت پیش‌فرض این قابلیت را ندارد.

  • محدودیت سرعت: اگر سرور مقصد دارای محدودیت پهنای باند است، باید پهنای باند را محدود کنید (همانطور که در بخش قبل توضیح داده شد).


دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)