بعضا شاید با این مشکل مواجه شده اید که، قصد داشتید فایلی یا پوشه ای با حجم بالا را بین دو سرور در شبکه جابجا کنید، اما این جابجایی، با وجود برخوداری از پنهای باند زیاد بین دو سرور، خیلی طولانی انجام شده است.

معمولا، از ایمن ترین راه های انتقال فایل بین دو سرور، scp و rsync هستند که بر پایه پروتوکل ssh اجرا می شوند، اما متأسفانه قابلیت استفاده کامل از پهنای باند موجود را ندارند.

در اینجا، نام برنامه ای دیگر به نام nc یا netcat به میان می آید. دستور Netcat (یا nc) یک ابزار خط فرمان است که برای خواندن و نوشتن داده بین دو شبکهٔ کامپیوتری به کار می‌رود. این ارتباط از طریق پروتکل‌های TCP یا UDP انجام می‌شود. بسته به سیستم عامل، نام این دستور ممکن است متفاوت باشد (مانند netcat، nc، ncat و دیگر موارد).

Netcat به دلیل قابلیت‌های گسترده در عیب‌یابی اتصالات شبکه و امکان استفاده در اسکریپت‌نویسی، ابزاری حیاتی برای مدیران شبکه و سیستم به شمار می‌رود.

در این نوشته قابلیت انتقال فایل/پوشه در شبکه این دستور را ارائه می دهیم.

نصب netcat

برای نصب netcat روی دبیان ۱۲ کافی است تا دستور زیر را اجرا کنید:

sudo apt install netcat-traditional

ارسال فایل با netcat

برای ارسال فایل با این دستور، ابتدا روی سرور مقصد و در مسیری که می خواهیم فایل به آنجا منتقل شود، دستور زیر را اجرا نمایید:

nc -l -p 1234 > file.txt

سپس در سرور مبدا فایل مورد نظر را طبق دستور زیر اجرا و ارسال نمایید:

nc 192.168.0.71 1234 < file.txt

طی دو دستور فوق، با دستور nc ابتدا روی سرور مقصد روی شبکه یک پورت به شماره ۱۲۳۴ باز و شوره به listen می کند، و با دستور روی سرور مبدا، فایل مورد نظر را به آدرس وپورت باز شده ارسال می کند. netcat از تمامی پهنای باند موجود شبکه بین دو سرور برای ارسال استفاده می کند.

انتقال پوشه با netcat

ارسال پوشه نیز همانند ارسال فایل است، با یک تفاوت، این که در این حالت با استفاده از دستور tar پوشه به فایل تبدیل و ارسال می شود. برای ارسال ابتدا روی سرور مقصد و در محلی که قصد پوشه به آن مسیر را دارید، دستور زیر را اچرا می نمایید:

nc -l -p 1234 | tar -C . -xf -

سپس، با اجرا دستور زیر روی سرور مبدا ارسال شروع می شود:

tar -c mongo | nc 192.168.10.41 1234

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

منابع

برچسب ها: linux tips terminal network opensource