اذهب إلى المحتوى

كيف تستخدم الأمر scp لتأمين نسخ الملفات بين الخواديم


محمد أحمد العيل

يعدّ نقل الملفات بين الحاسوب الشخصي وخادوم بعيد أو بين خادوميْن إحدى المهامّ الاعتياديّة لأي مدير أنظمة. توجد الكثير من الوسائل لإنجاز مهمة نقل الملفات هذه، إلا أنّ الأمر scp (اختصار لـ Secure copy، النسخ الآمن) يتميّز عن طرق أخرى بتعميّته (تشفيره) للملفات أثناء نقلها. تحمي التعميّةُ الملفاتِ عند النقل من أعين المتطفلين المنتشرين على الشبكة وتساعد في إبقاء محتواها خصوصيا.

main2.png

يعتمد الأمر scp على SSH، لذا تأكّد أنه معدّ جيّدًا. إن كان SSH معدًّا للعمل عن طريق المفاتيح العموميّة والخاصّة فلن تحتاج لإدخال كلمة السّر في كلّ مرة تنفّذ فيها الأمر scp؛ أما إن لم يكن كذلك فستُطلَب منك كلمة السرّ الخاصّة بالحساب المُستخدَم (كما سنرى بعد قليل).

لا يحتاج الأمر scp، عكسَ أدوات أخرى مثل rsync، لتسجيل الدخول إلى الخادوم حتى تُنقَل الملفات.

نقل ملفّ واحد من الجهاز المحلّي إلى خادوم

يحتاج الأمر scp للمسار المصدَر والمسار الوِجهة لنسخ ملفّ من مكان إلى آخر. في ما يلي كيفية استخدام الأمر:

scp localmachine/path_to_the_file username@server_ip:/path_to_remote_directory

حيث:

  • localmachine/path_to_the_file: المسار المصدَر (على الجهاز المحلّي).
  • username: حساب المستخدم على الخادوم.
  • server_ip: عنوان IP الخاصّ بالخادوم. يمكن استخدام اسم المضيف أيضا.
  • path_to_remote_directory: المسار الوِجهة (على الخادوم).

مثال على الاستخدام:

scp /home/swapnil/Downloads/fedora.iso swapnil@10.0.0.75:/media/prim_5/media_server/

بالنسبة لمستخدمي Windows 10 فيمكنهم الاستعانة بـ Ubuntu bash لنسخ ملفات من حاسوب وندوز إلى خادوم لينكس:

scp /mnt/c/Users/swapnil/Downloads/fedora.iso swapnil@10.0.0.75:/media/prim_5/
  media_server/

نسخ مجلّد محلي إلى خادوم

إن أردت نسخ مجلّد كامل، بدلا من ملفّ، إلى الخادوم فيمكنك ذلك بإضافة الخيار r- إلى الأمر؛ على النحو التالي:

scp -r localmachine/path_to_the_directory username@server_ip:/path_to_remote_directory/

تأكّد من أن المسار المصدر لا يحوي شريطا مائلا / في نهايته. في نفس الوقت فإن مسار المجلَّد الوِجهة يجب - على عكس المصدر - أن يكون آخره شريطا مائلا.

نسخ جميع ملفات مجلّد محلي إلى الخادوم

ماذا إن أردت نسخ جميع الملفات الموجودة في مجلّد محلّي إلى مجلّد على الخادوم؟ يمكنك ذلك بإضافة شريط مائل / وعلامة * بعده إلى نهاية مسار المجلّد المصدر؛ دون أن ننسى استخدام الخيار r- مع الأمر scp:

scp -r localmachine/path_to_the_directory/* username@server_ip:/path_to_remote_directory/

ملحوظة: الفرق بين هذا الأمر والأمر السابق أن الأمر الأخير ينسخ ما يحويه المجلّد من ملفّات، بينما ينسخ الأمر السابق المجلّد ومحتوياته معا.

نسخ ملفّات من الخادوم إلى الجهاز المحلّي

يشبه نسخ ملفات من الخادوم إلى الجهاز المحلّي عموما الطرق المشروحة سابقا، مع تبديل المعطيات - المصدر والوِجهة - المُمرَّرة إلى الأمر.

نسخ ملف واحد

scp username@server_ip:/path_to_remote_directory local_machine/path_to_the_file 

نسخ مجلّد من الخادوم

scp -r username@server_ip:/path_to_remote_directory local-machine/path_to_the_directory/

تأكّد من أن المسار المصدر لا يحوي شريطا مائلا / في نهايته. في نفس الوقت فإن مسار المجلَّد الوِجهة يجب - على عكس المصدر - أن يكون آخره شريطا مائلا.

نسخ جميع ملفات مجلّد من الخادوم

scp -r username@server_ip:/path_to_remote_directory/* local-machine/path_to_the_directory/ 

النسخ الآمن للملفات من مجلّد على الخادوم إلى مجلّد آخر على الخادوم انطلاقا من الحاسوب المحلي

يمكن تسجيل الدخول إلى الخادوم ثم استخدام rsync لإنجاز المهمّة، إلّا أن scp يمكنه فعل ذلك دون الحاجة لتسجيل الدخول إلى الخادوم.

نسخ ملفّ واحد

scp username@server_ip:/path_to_the_remote_file username@server_ip:/
  path_to_destination_directory/

نسخ مجلّد

scp username@server_ip:/path_to_the_remote_file username@server_ip:/
  path_to_destination_directory/

ملفات من خادوم إلى خادوم آخر انطلاقا من الجهاز المحلّي

تشبه هذه الحالة استخدام scp لنسخ ملفّ من مجلّد على الخادوم إلى مجلّد آخر على نفس الخادوم. الفرق هنا هو أننا نحدّد حساب المستخدم على كلا الخادوميْن وعنوانيْهما أثناء تنفيذ الأمر scp .

نسخ ملف واحد

scp username@server1_ip:/path_to_the_remote_file username@server2_ip:/
  path_to_destination_directory/

نسخ مجلّد

scp username@server1_ip:/path_to_the_remote_file username@server2_ip:/
  path_to_destination_directory/

نسخ جميع ملفات مجلّد

scp -r username@server1_ip:/path_to_source_directory/* username@server2_ip:/
  path_to_the_destination_directory/ 

خاتمة

تصبح الأمور سهلة كثيرًا فور فهم المبادئ العامة لعمل الأمر scp ، ويمكنك بعدها نسخ الملفات بكل سهولة وأمان.

ترجمة - بتصرّف - للمقال How to Securely Transfer Files Between Servers with scp لصاحبه Swapnil Bhartiya.


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...