بعضا شاید با این مشکل مواجه شده اید که، قصد داشتید فایلی یا پوشه ای با حجم بالا را بین دو سرور در شبکه جابجا کنید، اما این جابجایی، با وجود برخوداری از پنهای باند زیاد بین دو سرور، خیلی طولانی انجام شده است.
معمولا، از ایمن ترین راه های انتقال فایل بین دو سرور، 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
نکته ای که است، در زمان اجرای دستور این ارتباط بین دو سرور برقرار می باشد و از روی، میزان حجم ارسال شده یا مانیتور کردن پهنای باند مصرفی می توان از اتمام ارسال آگاه و فرایند و دستورات را خاتمه داد.