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

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

علی مرادی

دستور SCP یا (secure  copy) یک ابزار خط فرمان است که به شما امکان می دهد پرونده ها و دایرکتوری ها را بین دو کامپیوتر به طور ایمن کپی کنید. با استفاده از scp ، می توانید یک پرونده را کپی کنید:

  • از سیستم لوکال شما گرفته تا یک سیستم از راه دور.
  • از یک سیستم از راه دور به سیستم لوکال شما.
  • بین دو سیستم از راه دور از سیستم لوکال شما.

هنگام انتقال داده ها با scp ، پرونده ها و رمز عبور رمزگذاری می شوند ، به طوری که هر کسی که از ترافیک دیدن می کند ، حساس نمی شود.

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

نحوه فرماندهی SCP:

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

نحوه دستور scp به شکل زیر می باشد:

scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2
  • OPTION – گزینه های SCP مانند رمزگذاری ، پیکربندی ssh ، درگاه ssh ، حد ، نسخه کپی بازگشتی و غیره.
  • [user@]SRC_HOST:]file1 – منبع فایل.
  • [user@]DEST_HOST:]file2 – پرونده مقصد.

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

scp تعدادی گزینه را کنترل می کند که هر جنبه ای از رفتار خود را کنترل می کند. گزینه های پرکاربرد عبارتند از:

  • -P درگاه میزبان ssh از راه دور را مشخص می کند.
  • -p بار اصلاح و دسترسی پرونده ها را حفظ می کند.
  • -q اگر می خواهید پیام پیشرفت و پیام های non-error را سرکوب کنید ، از این گزینه استفاده کنید.
  • -C این گزینه scp را مجبور به فشرده سازی داده های ارسال شده به دستگاه مقصد می کند.
  • -r این گزینه به scp می گوید که فهرستها را به صورت بازگشتی کپی کنید.

قبل از اینکه شروع کنید:

دستور scp برای انتقال داده به ssh متکی است ، بنابراین برای تأیید اعتبار در سیستمهای از راه دور ، به کلید یا رمز عبور ssh نیاز دارد.کلون (:) این است که چگونه scp بین مکانهای محلی و از راه دور تمایز قایل است.

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

کپی پرونده ها و دایرکتوری ها بین دو سیستم با scp:

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

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

scp file.txt remote_username@10.10.0.2:/remote/directory

که در آن ، file.txt نام فایلی است که می خواهیم آنرا کپی کنیم ، از راه دور Remote_username کاربر روی سرور راه دور است ، ۱۰٫۱۰٫۰٫۲ آدرس IP سرور است. مسیر / دایرکتوری مسیر دایرکتوری است که می خواهید پرونده را کپی کنید. اگر یک دایرکتوری راه دور را مشخص نکنید ، پرونده در فهرست خانه کاربر از راه دور کپی می شود.

از شما خواسته می شود رمزعبور کاربر را وارد کنید ، و روند انتقال شروع می شود.

remote_username@10.10.0.2's password:
file.txt 100% 0 0.0KB/s 00:00

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

scp file.txt remote_username@10.10.0.2:/remote/directory/newfilename.txt

اگر SSH روی میزبان از راه دور درگاه دیگری به غیر از پیش فرض ۲۲ می دهد ، می توانید پورت را با استفاده از آرگومان -P مشخص کنید:

scp -P 2322 file.txt remote_username@10.10.0.2:/remote/directory

دستور کپی یک دایرکتوری شبیه به هنگام کپی کردن فایلها است. تنها تفاوت این است که برای بازگشتی باید از -r استفاده کنید.

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

scp -r /local/directory remote_username@10.10.0.2:/remote/directory

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

برخلاف rsync ، هنگام استفاده از scp نیازی به ورود به یکی از سرورها نیستید تا بتوانید پرونده ها را از یک دستگاه دیگر از راه دور منتقل کنید.

دستور زیر پرونده /files/file.txt را از میزبان از راه دور host1.com در دایرکتوری / پرونده های موجود در host2.com از راه دور کپی می کند.

scp user1@host1.com:/files/file.txt user2@host2.com:/files

از شما خواسته می شود رمزهای عبور را برای هر دو حساب کاربری از راه دور وارد کنید. داده ها مستقیماً از یک میزبان از راه دور به میزبان دیگر منتقل می شوند.

برای مسیریابی ترافیک از طریق دستگاهی که فرمان صادر شده است ، از گزینه -۳ استفاده کنید:

scp -3 user1@host1.com:/files/file.txt user2@host2.com:/files

جمع بندی:

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

امیدواریم از این مقاله بهره لازم را برده و برای شما مفید بوده باشد. نظرات خود را با ما به اشتراک بگذارید.

ما را در شتابان هاست دنبال کنید.

برچسب ها: How to Use SCP Command to Securely Transfer Files آموزش لینوکس دستور scp دستور scp چیست

  • مریم ازادی گفت:

    ممنون خیلی کامل و کاربردی بود

  • Mohamadreza_khasheeee گفت:

    سلام
    من میخوام کد برنامه نویسی به زبان سی پلاس پلاس رو داخل ترمینال لینوکس ران کنم
    ی مشکلی دارم
    من به کلاستر محاسباتی دانشگاه وصل شدم
    ولی قبل از اون یک سیستم ssh دانشگاه وصل شدم و از طریق scp فایلم رو به سیستم لینوکس دانشگاه منتقل کرده ام
    اما من با اون سیستم ابتدایی لینوکس کار ندارم
    میخوام فایلی رو که از طریق scp به سیستم لینوکس دانشگاه انتقال دادم رو به کلاستر محاسباتی انتقال بدم ولی هرچی این دستوراتی که گفته شده رو میزنم
    پیغام میزنه که فایل پیدا نشد

    روشی که من دارم وصل میشم به صورت زیر هست
    جهت دسترسی به کلاستر از خارج دانشگاه ابتدا باید توسط یوزر و پسوورد ایمیل آکادمیک خود به سرور های دانشگاه ssh نمایید
    ssh your_email@host
    سپس با استفاده از یوزر و پسووردی که جهت اتصال به کلاستر در اختیار شما قرار گرفته به کلاستر ss کنید:
    ssh cluster_user@host-cluster

    الان من فایل رو به سرور ssh فرستادم و میخوام اون فایل رو به کلاستر بفرستم که بتونم کد رو اجرا کنم

    ممنون میشم این مورد رو راهنمایی کنید

    • میلاد زنگی گفت:

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

  • ارسال دیدگاه جدید