كيفية استخدام أمر SCP في Linux

برنامج تعليمي سهل لمساعدتك في نقل الملفات إلى نظام بعيد من نظام Linux الخاص بك باستخدام الأمر scp.

SCP تعني "النسخ الآمن". scpهي أداة مساعدة لسطر الأوامر يقدمها Linux والتي تسمح بنقل الملفات والدلائل من جهاز إلى آخر عبر شبكة غير آمنة.

إذا كنت ترغب في نسخ الملفات من نظام إلى آخر ، scpفيمكن أن يكون خيارًا جيدًا جدًا لإجراء نقل آمن للملفات والدلائل. عندما يتم توصيل الجهازين المتصلين عبر نفس الشبكة ، scpيصبح الاستخدام ممكنًا.

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

في هذا البرنامج التعليمي ، سنرى أمثلة مختلفة scpللأمر. سننظر أيضًا في بعض الخيارات المستخدمة بشكل متكرر باستخدام scpالأمر.

الشروع في العمل مع الأمر scp

باستخدام scpالأمر ، يمكنك نقل الملفات / الدلائل:

  • من جهازك المحلي إلى آلة بعيدة.
  • بين جهازين عن بعد.
  • من آلة بعيدة إلى جهازك المحلي.

بناء الجملة العام:

scp [Option] [source_file_name] [[email protected]_Host]:destination_folder

دعونا نفهم السمات الأساسية لهذا الأمر واحدة تلو الأخرى.

  • [source_file_name] هذا هو الملف المصدر الذي تريد نسخه.
  • [ [email protected] _Host] هذا هو اسم المستخدم للنظام البعيد حيث تريد نسخ الملف. يتم أيضًا استخدام عنوان IP الخاص بالجهاز البعيد في هذه السمة بعد @الرمز "".
  • [destination_folder] هذا هو الدليل الذي تريد حفظ الملف المنسوخ فيه.

ملاحظة:: يتم استخدام رمز النقطتين ( ) في بناء الجملة لأنه يميز بين المواقع المحلية والبعيدة. نستخدم النقطتين ( :) مع النظام البعيد لتحديد الدليل الذي يجب نسخ الملفات إليه. في حالة عدم تحديد الدليل الهدف ، سيتم نسخ الملفات إلى الدليل الرئيسي لمستخدم النظام البعيد.

الخيارات المستخدمة مع scp

بعض الخيارات الأكثر شيوعًا المستخدمة مع scpالأمر مذكورة أدناه.

خيار وصف
-C تسمح بضغط الملف المراد نقله
-v إعطاء الإخراج المطول
-r نسخ الملفات والدلائل بشكل متكرر
-p الحفاظ على الأذونات والأوضاع وأوقات الوصول للملفات
-P تغيير المنفذ الافتراضي المستخدم من قبل scpالأمر

كثيرا ما تستخدم الخيارات مع أمر scp

سنرى أمثلة على هذه الخيارات ، في المزيد من البرنامج التعليمي.

نسخ ملف من محلي إلى نظام بعيد

scpيسمح لك بنقل الملفات من نظامك المحلي إلى نظام بعيد باستخدام الصيغة التالية. يتيح لك ذلك نقل ملفاتك أو تحميلها إلى خادم تم وضعه عن بُعد.

بناء الجملة العام:

scp [file_name] [email protected]:[destination_folder]

مثال:

scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav

في هذا المثال ، نقوم بنسخ ملف "apache-tomcat-9.0.8.tar.gz" من النظام المحلي إلى النظام البعيد الذي يكون عنوان IP الخاص به هو "143.110.178.221".

على النظام البعيد ، سيتم الآن نسخ الملف إلى الدليل المسمى "gaurav".

انتاج:

[email protected]:~$ scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav
[email protected]'s password: 
apache-tomcat-9.0.8.tar.gz                           100% 9589KB  79.8KB/s   02:00    
[email protected]:~$ 

دعونا نتحقق من الإخراج على النظام البعيد للملف.

[email protected]:~/gaurav# ls
apache-tomcat-9.0.8.tar.gz
[email protected]:~/gaurav#

وبالتالي ، يتم نسخ الملف بنجاح إلى النظام البعيد باستخدام scpالأمر.

نسخ ملفات متعددة إلى نظام بعيد

في المثال السابق ، تعلمنا نقل ملف إلى النظام البعيد باستخدام scpالأمر. سنرى الآن طريقة نقل ملفات متعددة من نظامك المحلي إلى نظام بعيد باستخدام هذا الأمر.

بناء الجملة العام:

scp [file 1] [file 2] [file n] [email protected]_host:[specific directory]

دعونا نفهم هذه العملية البسيطة بمثال.

مثال:

scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav

هنا ، تم ذكر ملفات متعددة في الأمر المراد نسخها على النظام البعيد.

انتاج:

[email protected]:~$ scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav 
[email protected]'s password: 
ath.html                                      100%  199KB  94.7KB/s   00:02    
abc.txt                                       100%    0     0.0KB/s   00:00    
ppa-purge_0.2.8+bzr56_all.deb                 100% 4360    42.2KB/s   00:00    
[email protected]:~$

على النظام البعيد:

[email protected]:~/gaurav# ls -l
total 9800
-rw-r--r-- 1 root root       0 Oct  5 08:58 abc.txt
-rw-r--r-- 1 root root 9818695 Oct  5 08:35 apache-tomcat-9.0.8.tar.gz
-rw-r--r-- 1 root root  204057 Oct  5 08:58 ath.html
-rw-r--r-- 1 root root    4360 Oct  5 08:58 ppa-purge_0.2.8+bzr56_all.deb
[email protected]:~/gaurav#

يتم الآن نسخ جميع الملفات الثلاثة على النظام البعيد.

نسخ دليل إلى النظام البعيد

يمكنك استخدام scpالأمر لنسخ دليل من نظامك المحلي إلى النظام البعيد. تشبه هذه العملية عملية نسخ ملف. لنسخ محتوى الدليل أيضًا ، يمكنك استخدام -rالخيار مع scpالأمر.

يستخدم -rالخيار لنسخ دليل بشكل متكرر. هذا يعني أنه سيتم أيضًا نسخ جميع المجلدات الفرعية والملفات الموجودة داخل الدليل.

بناء الجملة العام:

scp -r [directory path] [email protected]_host:[target_directory]

مثال:

scp -r PycharmProjects [email protected]:gaurav

انتاج:

[email protected]:~$ scp -r PycharmProjects [email protected]:gaurav
[email protected]'s password: 
__main__.py                                   100%  623     7.8KB/s   00:00    
__init__.py                                   100%   23     0.4KB/s   00:00    
completion.py                                 100% 2929    28.1KB/s   00:00    
search.py                                     100% 4728    38.7KB/s   00:00    
uninstall.py                                  100% 2963    32.5KB/s   00:00    
hash.py                                       100% 1681    21.3KB/s   00:00    
check.py                                      100% 1430    16.8KB/s   00:00    
configuration.py                              100% 7125    50.4KB/s   00:00    
show.py                                       100% 6289    49.8KB/s   00:00    
download.py                                   100% 6623    48.2KB/s   00:00  
[email protected]:~$  

يؤدي استخدام -rالخيار مع scpالأمر إلى نسخ جميع المجلدات الفرعية والملفات الموجودة داخل الدليل من الجهاز المحلي إلى النظام البعيد.

عرض معلومات مفصلة حول عملية scp

يمكنك استخدام خيار -v(الأحرف الصغيرة v) لعرض المعلومات حول الملفات التي يتم نسخها على جهاز تحكم عن بعد أو على نظامك المحلي. يسمى هذا النوع من الإخراج أيضًا باسم الإخراج المطول.

عند استخدام هذا الخيار ، يتم عرض معلومات التصحيح الكاملة حول الملف على الشاشة.

بناء الجملة العام:

scp -v [file_name] [email protected]_host:

مثال:

scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team

انتاج:

[email protected]:~$ scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team
Executing: program /usr/bin/ssh host 159.89.170.11, user root, command scp -v -t team
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/gaurav/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 159.89.170.11 [159.89.170.11] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /home/gaurav/.ssh/id_rsa type -1
apache-tomcat-9.0.8.tar.gz                                                                                          100% 9589KB  99.8KB/s   01:36    
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 9826736, received 4016 bytes, in 97.2 seconds
Bytes per second: sent 101133.9, received 41.3
debug1: Exit status 0
[email protected]:~$

هنا ، في الإخراج ، يمكنك أن ترى أنه يتم عرض معلومات تصحيح الملف على الجهاز الطرفي عند استخدام scpالأمر مع -vالخيار.

نقل الملفات بين مضيفين عن بعد

يتيح لك Linux الاتصال بالعديد من المضيفين البعيدين. يمكنك نقل الملفات والدلائل بين مضيفين عن بعد باستخدام scpالأمر.

بناء الجملة العام:

scp [email protected]_1:/[file_name] [email protected]_2:[folder_to_save]

The syntax may seem a bit wider but is pretty simple. Here, the the first part of the command gives the input about the remote user from where the file is to be copied. colon (:) and / is used to specify the file name or the directory name which is to be transferred between the two remote machines.

The second part gives information about the target remote system where the file is to be copied.

Example:

scp -r [email protected]:gaurav [email protected]:/team

Here, we will be copying a directory named ‘gaurav’ recursively from the local system to a remote system. The file will be copied to a folder ‘team’ on the remote system.

Output:

[email protected]:~$ scp -r [email protected]:/gaurav [email protected]:/team 
[email protected]'s password: 
1.py                                          100%  134   261.3KB/s   00:00    
variables.py                                  100%  377   949.2KB/s   00:00    
abc.txt                                       100%    0     0.0KB/s   00:00    
ath.html                                      100%  199KB  41.8MB/s   00:00    
[email protected]:~$

Here, we used the scp command on the local system to transfer a directory named ‘gaurav’ from one remote server to another.

Transfer files from the remote system to your local system

يمكنك بسهولة نقل الملفات أو الدلائل من النظام البعيد إلى نظامك المحلي باستخدام scpالأمر. بكلمات أبسط ، يمكنك تنزيل ملفات أو أدلة متعددة من الخادم البعيد إلى نظامك المحلي باستخدام scp الأمر.

بناء الجملة العام:

scp [email protected]_host:/files/file.txt /[folder_of_local_system]

انتاج:

[email protected]:~$ scp [email protected]:how.txt .
[email protected]'s password: 
how.txt                                                                                                             100%   11     0.1KB/s   00:00    
[email protected]:~$

هنا ، قمت بتنزيل (نسخ) الملف من الخادم البعيد إلى دليلي الرئيسي. ومن ثم ، فقد استخدمت النقطة ( .) للتحديد في الأمر لنسخ الملف إلى دليلي الرئيسي.

إخراج العينة:

[email protected]:~$ ls -l how.txt
-rw-r--r-- 1 gaurav gaurav 11 Oct  6 09:49 how.txt
[email protected]:~$ 

هنا ، يتم نسخ الملف الآن إلى دليلي الرئيسي من الخادم البعيد.

بنفس الطريقة ، يمكنك تنزيل ملفات أو أدلة متعددة من الخادم البعيد باستخدام scpالأمر مع الخيارات المناسبة.

ضغط الملفات لإجراء عمليات نقل أسرع

في بعض الأحيان ، قد يستغرق نقل الملفات الكبيرة وقتًا طويلاً. يمكن معالجة هذه المشكلة أثناء استخدام scpالأمر مع خيار -C(الأحرف الكبيرة C).

باستخدام -C الخيار ، يضغط الملفات ذات الحجم الأكبر مما يسهل النقل الأسرع وبالتالي يوفر الوقت.

إحدى الحقائق المثيرة للاهتمام حول هذا الخيار هي أنه يتم نسخ الملف بحجمه الأصلي على النظام الوجهة ولكن أثناء عملية النقل ، يتم ضغط الحجم لتمكين النقل بشكل أسرع. وبالتالي ، يتم الضغط فقط على الشبكة.

بناء الجملة العام:

scp -C [file_name] [email protected]_host:[target_folder]

دعونا نرى مثالاً مقارناً لفهم الاختلاف.

التحويل بدون خيار C:

[email protected]:~$ scp -rv dlink [email protected]:team
Executing: program /usr/bin/ssh host 68.183.82.183, user root, command scp -v -r -t team
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/trinity/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 68.183.82.183 [68.183.82.183] port 22.
debug1: Connection established.

debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 7516504, received 4008 bytes, in 74.6 seconds
Bytes per second: sent 100693.7, received 53.7
debug1: Exit status 0
[email protected]:~$ 

مما سبق يمكننا أن نرى أن الوقت المطلوب للنقل هو 74.6 ثانية. سنحاول نقل نفس الملف باستخدام الخيار -C ونلاحظ الفرق.

التحويل مع خيار C:

[email protected]:~$ scp -Crv dlink [email protected]:team
Executing: program /usr/bin/ssh host 68.183.82.183, user root, command scp -v -r -t team
OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n  7 Dec 2017
debug1: Reading configuration data /home/trinity/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 68.183.82.183 [68.183.82.183] port 22.
debug1: Connection established.
.
.
webupload.img                                                                                                       100% 1834KB  98.7KB/s   00:18    
Sending file modes: C0664 1877552 router.img
Sink: C0664 1877552 router.img
router.img                                                                                                          100% 1834KB 100.3KB/s   00:18    
Sink: E
Sending file modes: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip
Sink: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip
DSL-2750U-Release-IN-T-01.00.07.zip                                                                                 100% 3666KB 218.5KB/s   00:16    
Sink: E
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 7518864, received 3828 bytes, in 51.0 seconds
Bytes per second: sent 100245.4, received 51.0
debug1: Exit status 0
debug1: compress outgoing: raw data 7511925, compressed 7513136, factor 1.00
debug1: compress incoming: raw data 1467, compressed 999, factor 0.68
[email protected]:~$

هنا ، يمكننا أن نلاحظ بسهولة أن استخدام -Cالخيار مع scpالأمر قد سمح لنا بضغط الملف عبر الشبكة ، مما يثبت أنه خيار موفر للوقت.

استخدام منفذ ssh مختلف لنقل الملفات

أثناء استخدام scpالأمر ، يكون المنفذ الافتراضي الذي تم نشره هو port 22. للمستخدم حرية تخصيص اختيار المنفذ هذا. يمكنك استخدام -P(خيار الأحرف الكبيرة P) مع scpالأمر لاستخدام المنفذ الذي تختاره.

بناء الجملة العام:

cp -P [new_port_number] [file_name/directory_name] [email protected]:[destination_folder]

مثال:

scp -P 4248 dlink [email protected]:team

باستخدام الأمر أعلاه ، سيتم نقل الملف إلى الخادم البعيد. لكن هذه المرة ، سيكون المنفذ المستخدم port 4248بدلاً من الافتراضي port 22.

استنتاج

بعد الاطلاع على هذا البرنامج التعليمي ، تعرفنا على الطبيعة الديناميكية scpللأمر المستخدم لنقل الملفات أو نسخها من نظام إلى آخر. يمكن أيضًا استخدام هذا الخيار لتنزيل الملفات أو الدلائل من الخادم البعيد. وبالتالي ، يمكننا أن نستنتج أن scpالأمر أثبت أنه مفيد جدًا لعمليات نقل الملفات عندما يتعين عليك التعامل مع أكثر من نظام بالإضافة إلى الخوادم البعيدة في وقت واحد.


كيفية استخدام CD Command في Linux

كيفية استخدام CD Command في Linux

طريقة سهلة لتغيير الدلائل في Linux من المحطة

كيفية إصلاح: الأمر غير موجود خطأ في أوبونتو

كيفية إصلاح: الأمر غير موجود خطأ في أوبونتو

من المحتمل أن يكون الأمر make أحد أكثر الأوامر استخدامًا في نظام Linux البيئي. يستخدم هذا الأمر لبناء البرامج وترجمتها مباشرة من الكود المصدري.

كيفية البحث عن الملفات المكررة وإزالتها على نظام Linux باستخدام fdupes

كيفية البحث عن الملفات المكررة وإزالتها على نظام Linux باستخدام fdupes

عند العمل بكميات كبيرة من الوسائط والمستندات ، من الشائع أن تتراكم نسخ متعددة من نفس الملف على جهاز الكمبيوتر الخاص بك. حتمًا ، ما يلي هو مساحة تخزين مزدحمة مليئة بالملفات الزائدة عن الحاجة ، مما يؤدي إلى إجراء فحوصات دورية للملفات المكررة على نظامك.

كيفية تثبيت واستخدام Neofetch على Linux

كيفية تثبيت واستخدام Neofetch على Linux

يعرض Neofetch شعار ASCII لتوزيع Linux الخاص بك مع المعلومات المتعلقة بنظامك في الجهاز. سيستخدمه العديد من مستخدمي Linux في لقطات شاشة لأجهزة سطح المكتب الخاصة بهم فقط لأنهم يعتقدون أنها رائعة. وهم على حق. يمكنك استخدامه لإظهار الإعداد الخاص بك في لقطات الشاشة أيضًا.

كيفية تعطيل Ubuntu Dock على Ubuntu 20.04

كيفية تعطيل Ubuntu Dock على Ubuntu 20.04

أحيانًا يكون من الأفضل مغادرة الرصيف والإبحار بعيدًا!

كيفية استخدام CD Command في Linux

كيفية استخدام CD Command في Linux

طريقة سهلة لتغيير الدلائل في Linux من المحطة

كيفية إضافة مفاتيح SSH على أوبونتو 20.04

كيفية إضافة مفاتيح SSH على أوبونتو 20.04

تشرح لك هذه المقالة عملية إضافة مصادقة مفاتيح SSH على خادم Ubuntu 20.04 وتعطيل المصادقة المستندة إلى كلمة المرور.

كيفية تحديث Firefox من Terminal على أجهزة كمبيوتر Ubuntu Linux

كيفية تحديث Firefox من Terminal على أجهزة كمبيوتر Ubuntu Linux

تعرف على كيفية تحديث Firefox من Terminal على كمبيوتر Ubuntu Linux

كيفية تمكين SSH على Ubuntu 20.04

كيفية تمكين SSH على Ubuntu 20.04

الوصول بأمان إلى جهاز Ubuntu الخاص بك من أي مكان

كيفية التحقق مما إذا كان الملف أو الدليل موجودًا في برنامج Bash Shell

كيفية التحقق مما إذا كان الملف أو الدليل موجودًا في برنامج Bash Shell

التحقق من وجود ملف أو دليل من نص برمجي Bash

كيفية تثبيت Google Chrome على Ubuntu 20.04

كيفية تثبيت Google Chrome على Ubuntu 20.04

دليل سريع لتثبيت Google Chrome من سطر الأوامر على Ubuntu 20.04

كيفية إجراء اختبارات السرعة من سطر أوامر Linux باستخدام Speedtest-cli

كيفية إجراء اختبارات السرعة من سطر أوامر Linux باستخدام Speedtest-cli

Speedtest.net هي خدمة لاختبار سرعة اتصالك بالإنترنت. يستخدم خادم speedtest.net قريب للتنزيل

كيفية إنشاء مستخدم Sudo على Ubuntu 20.04 LTS

كيفية إنشاء مستخدم Sudo على Ubuntu 20.04 LTS

امنح امتيازات الجذر لأي مستخدم لديه sudo على Ubuntu 20.04 LTS

كيفية تحديث NodeJS إلى أحدث إصدار في أوبونتو

كيفية تحديث NodeJS إلى أحدث إصدار في أوبونتو

تحديث NodeJS باستخدام APT و NVM.