آموزش سرورآموزش لینوکس

آموزش انتقال فایل بین دو سرور لینوکس از طریق SCP

شاید شما هم از آن دست افرادی هستید که از SSH لینوکس استفاده می کنید. ممکن است برای شما هم این سوال ایجاد شده باشد که چگونه می توانید فایل های خودتان را بین دو سرور لینوکس، انتقال داده و عملیات ریموت به سرور لینوکس را انجام دهید؟ خب، باید بدانید که راهکارهایی برای انجام این کار وجود دارد. اگر با این راه کارها آشنا نباشید، بدون شک انجام این کار برای شما سخت، دشوار و بعضا امکان ناپذیر به نظر می رسد. شما برای انتقال فایل بین دو سرور لینوکس، می توانید از SCP لینوکس استفاده کنید. اما SCP چیست و چگونه باید از آن استفاده کرد؟ اجازه دهید تا در ادامه به صورت کامل در این خصوص صحبت کنیم.

آشنایی کامل با SCP لینوکس

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

از این رو می توانید مطمئن شوید که داده های شما در یک بستر ایمن، به صورت کامل محافظت خواهند شد. حتی اگر ترافیک شما ردیابی شود نیز همچنان فایل های شما رمزگذاری شده باقی خواهند ماند. SCP لینوکس به شما این فرصت را می دهد تا اقدامات زیر را به ساده ترین شکل ممکن، انجام دهید:

  • کپی کردن فایل ها از یک هاست محلی به یک هاست راه دور
  • کپی کردن فایل ها از یک هاست راه دور به یک هاست محلی
  • کپی کردن فایل ها بین دو سرور از راه دور

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

  • لاگین پوسته امن در سرور
  • دسترسی ریشه ای به هر دو سرویس گیرنده و سرور (اختیاری)
  • ورود به Secure Shell در سیستم سرور

ما در ادامه به شما نشان می دهیم که چگونه فایل ها را با استفاده از دستور SCP کپی کرده و مثال های عملی را در اختیار شما قرار می دهیم.

انتقال فایل بین دو سرور لینوکس با SCP

نحوه استفاده از دستور SCP لینوکس

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

scp [option] [[email protected]_host:path/to/source/file] [[email protected]_host:target/path]

در این دستور اگر چیزی را جا بیندازید، به شکل زیر دستور تغییر پیدا می کند:

  • user_name هاست یا هدف، به صورت پیش فرض برای کاربر فعلی در نظر گرفته می شود.
  • path/to/source یا مسیر هدف از دستور، برنامه فایل را به صورت محلی جستجو یا کپی می کند.

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

آشنایی با گزینه های فرمان SCP

شما می توانید بسیاری از دستورهای SCP لینوکس را برای سفارشی سازی و تسریع در فرایند خود، به دستور اضافه کنید. این گزینه ها به عنوان ویژگی بعد از دستور SCP نوشته خواهند شد. هر گزینه دارای یک فرم کوتاه و تک نویسه ای و یک معادل طولانی و توصیفی است. این گزینه ها عبارت اند از:

-1از پروتکل 1 استفاده کنید.
-2از پروتکل 2 استفاده کنید
-4فقط از آدرس های Ipv4 استفاده کنید.
-6فقط از آدرس های IPv6 استفاده کنید.
-Bاجرا در حالت دسته ای، غیر فعال کردن تمام درخواست ها برای ورود کاربرد
-b buffer_sizeاندازه بافر مورد استفاده برای انتقال داده را مشخص کنید. اگر مشخص نشده باشد، آن را به صورت پیش فرض در نظر می گیرد.
-Cفشرده سازی را فعال کنید.
-c cipherرمز را برای رمزگذاری داده ها انتخاب کنید. اگر مشخص نشده باشد، SCP از پیش فرض «AnyStdCipher» استفاده می کند.
-D debug_levelسطح اشکال زدایی را تنظیم کنید.
-dفایل را فقط در صورتی کپی کنید که فهرست مقصد از قبل وجود داشته باشد.
-F fileیک فایل پیکربندی جایگزین برای SSH مشخص کنید.
-hلیستی از گزینه های فرمان را نشان دهید.
-i fileفایلی را مشخص کنید که از آن برای احراز هویت کلید عمومی خوانده شود.
-l limitپهنای باند را محدود کنید.
-o ssh_optionگزینه ها را روی SSH در قالب ssh_config تنظیم کنید.
-P portپورتی را که باید به آن متصل شود را مشخص کنید. اگر مشخص نشده باشد، SCP از پورت 22 استفاده می کند.
-qSCP را در حالت بی صدا اجرا کنید.
-Qنمایش هر گونه آمار انتقال فایل را غیر فعال کنید.
-rبه صورت بازگشتی کپی کنید.
-S programاز یک برنامه مشخص برای اتصال رمزگذاری استفاده کنید.
-uپس از تکمیل کپی، فایل منبع را حذف کنید.
-vحالت verbose را فعال کنید.

نمونه های دستور SCP لینوکس

برای درک هرچه بهتر این ابزار، می توانید به نمونه های دستور SCP زیر نگاهی بیندازید:

یک فایل را از Local به Remote Server کپی کنید:

در این مثال، ما یک فایل نمونه را از یک هاست محلی به یک هاست راه دور کپی می کنیم:

scp Desktop/sample_example.txt [email protected]:/home/remote_dir

دستور شامل اطلاعات زیر خواهد بود:

  • Desktop/sample_example.txt – نام فایل در حال کپی و مکان آن.
  • [email protected] – نام کاربری و آدرس IP سرور راه دور.
  • /home/remote_dir – مکانی که فایل کپی شده در آن ذخیره می شود.
SCP Linux

یک فایل را از یک سرور راه دور در هاست محلی کپی کنید:

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

scp 147.182.143.27:/home/remote_dir/sample_example.txt home/Desktop

در این قطعه کد، اطلاعات زیر ارائه شده است:

  • [email protected] – نام کاربری و آدرس IP سرور راه دور که فایل در حال حاضر در آن قرار دارد.
  • /home/remote_dir/sample_example.txt – نام فایل در حال کپی و مکان آن.
  • home/Desktop – مکانی که فایل کپی شده در آن ذخیره می شود.
SCP Linux

یک فایل را از یک سرور راه دور به سرور دیگر کپی کنید:

حال بیایید ببینیم که چگونه با استفاده از دستور SCP لینوکس یک فایل را از یک سرور راه دور به یک سرور راه دور دیگر، منتقل می کنیم:

scp [email protected]:/home/remote_dir/sample_example.txt [email protected]:home/Desktop

این دستور مشخص می کند که:

  • [email protected] – نام کاربری و آدرس IP سرور راه دور که فایل در حال حاضر در آن قرار دارد.
  • /home/remote_dir/sample_example.txt – نام فایل در حال کپی و مکان آن.
  • [email protected] – نام کاربری و آدرس IP سرور راه دور که می خواهیم فایل را در آن کپی کنیم.
  • home/Desktop – مکانی که فایل کپی شده در سرور راه دور ذخیره می شود.

چندین فایل را با SCP کپی کنید:

SCP لینوکس همچنین به شما این اجازه را می دهد تا چندین فایل را به کمک یک دستور کپی کنید. به عنوان مثال، در دستور زیر دو فایل از یک هاست محلی به یک سرور راه دور کپی خواهد شد:

scp example/sample1.txt example/sample2.txt [email protected]:/home/remote_dir

این دستور شامل اطلاعات زیر است:

  • example/sample1.txt – نام و محل اولین فایلی که کپی می شود.
  • example/sample2.txt – نام و مکان دومین فایل در حال کپی شدن.
  • [email protected] – نام کاربری و آدرس IP سرور راه دور دریافت کننده فایل ها.
  • /home/remote_dir – مکانی که در آن فایل های کپی شده در سرور راه دور ذخیره می شوند.
SCP Linux

یک پوشه را از هاست محلی به سرور راه دور به صورت بازگشتی کپی کنید

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

scp -r example [email protected]:/home/remote_dir

این دستور شامل اطلاعات زیر است:

  • -r – گزینه ای برای کپی کردن پوشه به صورت بازگشتی.
  • example- نام پوشه ای که از سرور محلی کپی می شود.
  • [email protected] – نام کاربری و آدرس IP سرور راه دور دریافت کننده پوشه.
  • /home/remote_dir – مکانی که در آن پوشه کپی شده در سرور راه دور ذخیره می شود.

با استفاده از یک پورت خاص یک فایل را با SCP کپی کنید

به صورت پیش فرض، SCP لینوکس از پورت 22 استفاده می کند. با این حال، اگر یک سیستم از راه دور برای گوش دادن به درخواست های ssh در پورت دیگری پیکربندی شده است، می توانید از سوئیچ P- برای تعیین پورت استفاده کنید. به عنوان مثال، دستور زیر با استفاده از پورت 2222 یک فایل را از یک سرور محلی به یک سرور راه دور انتقال می دهد:

scp -P 2222 Desktop/sample_example.txt [email protected]:/home/remote_dir

این دستور شامل اطلاعات زیر است:

  • -P 2222 – از پورت 2222 استفاده کنید.
  • Desktop/sample_example.txt – نام فایلی که می خواهید کپی کنید و مکان آن.
  • [email protected] – نام کاربری و آدرس IP سرور راه دور دریافت کننده فایل.
  • /home/remote_dir – مکانی که فایل کپی شده در سرور راه دور ذخیره می شود.

یک فایل را با SCP در حالت بی صدا کپی کنید

اجرای SCP لینوکس در حالت بی صدا به معنای غیرفعال کردن نمایش سنجش پیشرفت و پیام های خطا در خروجی است. برای این کار باید از گزینه –q استفاده کنید:

scp -q Desktop/sample_example.txt [email protected]:/home/remote_dir
SCP Linux

یک فایل را با SCP در حالت Verbose کپی کنید

با افزودن گزینه -v که سطح اشکال زدایی را روی 2 تنظیم می کند، می توانید scp را در حالت کلامی اجرا کنید. با انجام این کار، اطلاعات اشکال زدایی در خروجی چاپ خواهند شد و می تواند هنگام عیب یابی به شما کمک کند. برای این کار گزینه -v را بعد از scp اضافه کنید تا حالت verbose فعال شود، مانند مثال زیر:

scp -v Desktop/sample_example.txt [email protected]:/home/remote_dir
SCP Linux

یک فایل را با SCP و محدود کردن پهنای باند کپی کنید

گزینه جالب توجه دیگر محدود کردن پهنای باند استفاده شده توسط دستور SCP لینوکس با افزودن پارامتر -l است. این ویژگی به خصوص هنگام کپی کردن فایل های بزرگ برای جلوگیری از تخلیه پهنای باند SCP مفید خواهد بود. هنگام محدود کردن پهنای باند، باید عدد را بر حسب کیلوبیت بر ثانیه مشخص کنید. به خاطر داشته باشید که 1 بایت = 8 بیت است. بنابراین، اگر می‌خواهید پهنای باند SCP را به 100 کیلوبایت بر ثانیه محدود کنید، مقدار آن در kbps برابر با 800 خواهد بود، مانند دستور زیر:

scp -l 800 Desktop/sample_example.txt [email protected]:/home/remote_dir

یک فایل را با SCP سریعتر کپی کنید

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

scp -C Desktop/sample_example.txt [email protected]:/home/remote_dir

یک فایل را با SCP با استفاده از یک رمز خاص کپی کنید

به طور پیش فرض، SCP لینوکس از AES-128 برای رمزگذاری فایل ها استفاده می کند. با این حال، گزینه -c به شما امکان می دهد رمزی را که SCP برای رمزگذاری فایل استفاده می کند، تغییر دهید. به عنوان مثال، برای افزایش امنیت، می توانید مانند مثال زیر به رمزگذاری 3des بروید:

scp -c 3des Desktop/sample_example.txt [email protected]:/home/remote_dir

با استفاده از IPv4 یا IPv6 یک فایل را با SCP کپی کنید

شما می توانید با افزودن ویژگی -4 یا -6، SCP لینوکس را مجبور کنید تا بسته به نیاز شما فقط از IPv4 یا IPv6 استفاده کند. برای کپی کردن یک فایل نمونه از یک سرور محلی به یک میزبان راه دور فقط با استفاده از IPv6، باید دستور زیر اجرا کنید:

scp -6 Desktop/sample_example.txt [email protected]:/home/remote_dir

البته به یاد داشته باشید که باید با تفاوت های اصلی بین IPv4 و IPv6 آشنا شوید.

یک فایل را با ویژگی های حفظ فایل SCP کپی کنید

برای کپی کردن یک فایل با استفاده از SCP و حفظ ویژگی های فایل مانند تغییر و زمان دسترسی، حالت ها و مجوزها، از گزینه -p استفاده کنید:

scp -p Desktop/sample_example.txt [email protected]:/home/remote_dir

نوشته های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا