כיצד להשתמש בפקודת SCP בלינוקס

מדריך קל שיעזור לך להעביר קבצים למערכת מרוחקת ממערכת הלינוקס שלך באמצעות הפקודה scp.

SCP קיצור של 'עותק מאובטח'. scp הוא כלי שורת פקודה המוצע על ידי לינוקס המאפשר העברה של קבצים וספריות ממחשב אחד לאחר על גבי רשת לא מאובטחת.

אם ברצונך להעתיק קבצים ממערכת אחת לאחרת, אז scp יכולה להיות אפשרות טובה מאוד לבצע העברה מאובטחת של הקבצים והספריות. כאשר שתי המכונות המתקשרות מחוברות באותה רשת, אז באמצעות scp הופך לאפשרי.

אתה יכול לסמוך מאוד על scp פקודה לשמירה על סודיות ושלמות שכן הקובץ המועבר והסיסמה המשמשת להעברה מוצפנים. שום מידע רגיש לא ייחשף גם אם מישהו ינסה לחטט בתנועה בזמן ההעברה הזו.

במדריך זה נראה דוגמאות שונות של scp פקודה. אנו גם נסתכל על כמה מהאפשרויות הנפוצות בשימוש עם scp פקודה.

תחילת העבודה עם הפקודה scp

משתמש ב scp פקודה אתה יכול להעביר קבצים/ספריות:

  • מהמחשב המקומי שלך למחשב מרוחק.
  • בין שתי מכונות מרוחקות.
  • ממכשיר מרוחק למכונה המקומית שלך.

תחביר כללי:

scp [Option] [source_file_name] [user@destination_Host]:destination_folder

הבה נבין את התכונות הבסיסיות של פקודה זו בזה אחר זה.

  • [שם_קובץ_מקור] זהו קובץ המקור שברצונך להעתיק.
  • [user@destination_Host] זהו שם המשתמש של המערכת המרוחקת שאליה ברצונך להעתיק את הקובץ. כתובת ה-IP של המחשב המרוחק משמשת גם בתכונה זו לאחר ה-'@'סמל.
  • [תיקיית יעד] זוהי הספרייה שבה ברצונך לשמור את הקובץ המועתק.

הערה: המעי הגס (:) סמל משמש בתחביר כיוון שהוא מבדיל בין המיקומים המקומיים והמרוחקים. אנו משתמשים במעי הגס (:) עם המערכת המרוחקת כדי לציין את הספרייה שאליה יש להעתיק את הקבצים. במקרה שלא נציין את ספריית היעד, אזי הקבצים יועתקו לספריית הבית של משתמש המערכת המרוחקת.

אפשרויות בשימוש עם scp

כמה מהאפשרויות הפופולריות ביותר בשימוש עם scp הפקודה מופיעות למטה.

אוֹפְּצִיָהתיאור
-Cלאפשר העברת דחיסה של הקובץ
-vתן את הפלט המילולי
העתק קבצים וספריות באופן רקורסיבי
-עמ'לשמור הרשאות, מצבים וזמני גישה לקבצים
שנה את יציאת ברירת המחדל שבה משתמשת scp פקודה

נראה את הדוגמאות של אפשרויות אלה, בהמשך המדריך.

העתקת קובץ ממערכת מקומית למערכת מרוחקת

scp מאפשר לך להעביר קבצים מהמערכת המקומית שלך למערכת מרוחקת באמצעות התחביר הבא. זה מאפשר לך להעביר או להעלות את הקבצים שלך לשרת הממוקם מרחוק.

תחביר כללי:

scp [file_name] remote_user@host:[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'.

תְפוּקָה:

gaurav@ubuntu:~$ scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav [email protected] הסיסמה של: apache-tomcat-9.0.8.tar.gz 100% KB 95.89KB 95.89KB /s 02:00 gaurav@ubuntu:~$ 

תן לנו לבדוק את הפלט במערכת המרוחקת עבור הקובץ.

root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav# ls apache-tomcat-9.0.8.tar.gz root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav#

לפיכך, הקובץ מועתק בהצלחה למערכת המרוחקת באמצעות ה scp פקודה.

העתקת קבצים מרובים למערכת מרוחקת

בדוגמה הקודמת, למדנו להעביר קובץ למערכת המרוחקת באמצעות ה scp פקודה. כעת נראה את השיטה להעברת קבצים מרובים מהמערכת המקומית שלך למערכת מרוחקת באמצעות פקודה זו.

תחביר כללי:

scp [קובץ 1] [קובץ 2] [קובץ n] remote_username@remote_host:[ספרייה ספציפית]

הבה נבין את התהליך הפשוט הזה עם דוגמה.

דוגמא:

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

כאן, מספר קבצים מוזכרים בפקודה שיש להעתיק במערכת המרוחקת.

תְפוּקָה:

gaurav@ubuntu:~$ scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav [email protected] של סיסמה: ath.html 100% 94907KB:94907KB: 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 gaurav@ubuntu:~$

במערכת המרוחקת:

root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav# ls -l סך הכל 9800 -rw-r--r-- 1 root root 0 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 5 באוקטובר 08:58 ppa-purge_0.2.8+bzr56_all.deb root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav#

כל שלושת הקבצים מועתקים כעת במערכת המרוחקת.

העתקת ספרייה למערכת המרוחקת

אתה יכול להשתמש scp פקודה להעתקת ספרייה מהמערכת המקומית שלך למערכת המרוחקת. התהליך דומה לזה של העתקת קובץ. כדי להעתיק גם את תוכן הספרייה, אתה יכול להשתמש ב- אפשרות עם ה scp פקודה.

ה אפשרות משמשת להעתקת ספרייה באופן רקורסיבי. כלומר, כל תיקיית המשנה והקבצים בתוך הספרייה יועתקו גם הם.

תחביר כללי:

scp -r [נתיב ספרייה] שם משתמש_מרוחק@מארח_מרוחק:[מדריך_יעד]

דוגמא:

scp -r PycharmProjects [email protected]:gaurav

תְפוּקָה:

gaurav@ubuntu:~$ scp -r PycharmProjects [email protected]:gaurav [email protected] הסיסמה של: __main__.py 100% 623 7.8KB/s 00:00 2init 0__0s.py :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 16801% 2.1KB/s 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 00:100 הורדה 00:100%.py KB/s 00:00 gaurav@ubuntu:~$ 

משתמש ב אפשרות עם ה scp הפקודה מעתיקה את כל התיקיות והקבצים בתוך הספרייה מהמחשב המקומי למערכת המרוחקת.

הצגת מידע מפורט על תהליך scp

אתה יכול להשתמש ב -v (אותיות קטנות v) אפשרות להציג את המידע על הקבצים המועתקים בשלט או במערכת המקומית שלך. סוג פלט זה נקרא גם פלט מילולי.

כאשר נעשה שימוש באפשרות זו, המידע המלא על ניפוי הבאגים על הקובץ מוצג על המסך.

תחביר כללי:

scp -v [שם_קובץ] שם_משתמש@מארח_משתמש:

דוגמא:

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

תְפוּקָה:

gaurav@ubuntu:~$ scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team ביצוע: תוכנית /usr/bin/ssh מארח 159.89.170.11, שורש משתמש, פקודה scp -v -t צוות OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 בדצמבר 2017 debug1: קריאת נתוני תצורה /home/gaurav/.ssh/config debug1: קריאת נתוני תצורה /etc/ssh/ssh_config debug1:/etsh_consfig שורה 19: החלת אפשרויות עבור * debug1: התחברות ליציאת 159.89.170.11 [159.89.170.11] 22. debug1: חיבור נוצר. debug1: key_load_public: אין קובץ או ספרייה כאלה debug1: קובץ זהות /home/gaurav/.ssh/id_rsa סוג -1 apache-tomcat-9.0.8.tar.gz 100% 9589KB 99.8KB/s 01:36 debug1: client_reput:_channel_inq ערוץ 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 הועבר: נשלח 9826736, התקבל 4016 בתים לשנייה, ב-97 בתים. 101133.9, קיבל 41.3 debug1: סטטוס יציאה 0 gaurav@ubuntu:~$ 

כאן, בפלט, אתה יכול לראות שמידע ניפוי הבאגים של הקובץ מוצג בטרמינל שלך כאשר scp הפקודה משמשת עם ה -v אוֹפְּצִיָה.

העברת קבצים בין שני מארחים מרוחקים

לינוקס מאפשרת לך להתחבר למארחים מרוחקים מרובים. אתה יכול להעביר קבצים וספריות בין שני מארחים מרחוק באמצעות scp פקודה.

תחביר כללי:

scp remote_user_1@host_1:/[file_name] remote_user_2@host_2:[folder_to_save]

התחביר אולי נראה קצת יותר רחב אבל הוא די פשוט. כאן, החלק הראשון של הפקודה נותן את הקלט לגבי המשתמש המרוחק שממנו יש להעתיק את הקובץ. נקודתיים (:) ו / משמש לציון שם הקובץ או שם הספרייה שיש להעביר בין שני המכונות המרוחקות.

החלק השני נותן מידע על מערכת היעד המרוחקת שאליה יש להעתיק את הקובץ.

דוגמא:

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

כאן, אנו נעתיק ספרייה בשם 'gaurav' באופן רקורסיבי מהמערכת המקומית למערכת מרוחקת. הקובץ יועתק לתיקיה 'צוות' במערכת המרוחקת.

תְפוּקָה:

gaurav@ubuntu:~$ scp -r [email protected]:/gaurav [email protected]:/team [email protected] הסיסמה של: 1.py 100% 134 261.3KB/s 00. 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 gaurav@ubuntu:~$

כאן, השתמשנו ב- scp פקודה במערכת המקומית להעברת ספרייה בשם 'gaurav' משרת מרוחק אחד לאחר.

העבר קבצים מהמערכת המרוחקת למערכת המקומית שלך

אתה יכול להעביר בקלות את הקבצים או הספריות מהמערכת המרוחקת למערכת המקומית שלך באמצעות scp פקודה. במילים פשוטות יותר, אתה יכול להוריד מספר רב של קבצים או ספריות מהשרת המרוחק למערכת המקומית שלך באמצעות scp פקודה.

תחביר כללי:

scp remote_username@user_host:/files/file.txt /[folder_of_local_system]

תְפוּקָה:

gaurav@ubuntu:~$ scp [email protected]:how.txt . הסיסמה של [email protected]: how.txt 100% 11 0.1KB/s 00:00 gaurav@ubuntu:~$

כאן, הורדתי (העתקתי) את הקובץ מהשרת המרוחק לספריית הבית שלי. לפיכך, השתמשתי בנקודה (.) כדי לציין בפקודה להעתיק את הקובץ לספריית הבית שלי.

פלט לדוגמה:

gaurav@ubuntu:~$ ls -l how.txt -rw-r--r-- 1 gaurav gaurav 11 באוקטובר 6 09:49 how.txt gaurav@ubuntu:~$ 

כאן, הקובץ מועתק כעת לספריית הבית שלי מהשרת המרוחק.

באותו אופן, אתה יכול להוריד מספר קבצים או ספריות מהשרת המרוחק באמצעות scp פקודה עם האפשרויות המתאימות.

דחיסת קבצים כדי לבצע העברות מהירות יותר

לפעמים, העברת קבצים גדולים עלולה להיות גוזלת זמן. ניתן לטפל בבעיה זו תוך כדי שימוש ב- scp פקודה עם ה -C (אותיות גדולות ג) אפשרות.

משתמש ב -C אפשרות, דוחס את הקבצים בגודל גדול יותר מה שמקל על העברה מהירה יותר ובכך חוסך זמן.

עובדה מעניינת אחת לגבי אפשרות זו היא שהקובץ מועתק עם הגודל המקורי שלו במערכת היעד, אך במהלך תהליך ההעברה, הגודל נדחס כדי לאפשר העברה מהירה יותר. לפיכך, הדחיסה מתבצעת רק ברשת.

תחביר כללי:

scp -C [שם_קובץ] שם_משתמש@מארח_משתמש:[תיקיית_יעד]

הבה נראה דוגמה השוואתית כדי להבין את ההבדל.

העברה ללא אפשרות -C:

gaurav@ubuntu:~$ scp -rv dlink [email protected]:team ביצוע: תוכנית /usr/bin/ssh מארח 68.183.82.183, שורש משתמש, פקודה scp -v -r -t team OpenSSH_7.6p1 Ubuntu-4ubuntu0. 3, OpenSSL 1.0.2n 7 בדצמבר 2017 debug1: קריאת נתוני תצורה /home/trinity/.ssh/config debug1: קריאת נתוני תצורה /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config שורה 19: החלת אפשרויות debug1 עבור * : מתחבר ליציאת 68.183.82.183 [68.183.82.183] 22. debug1: חיבור נוצר. 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 הועבר: נשלחו על ידי 7516tes, 4004 שניות. לשנייה: נשלח 100693.7, התקבל 53.7 debug1: סטטוס יציאה 0 gaurav@ubuntu:~$ 

מהאמור לעיל, פלט אנו יכולים לראות שהזמן הנדרש להעברה הוא 74.6 שניות. ננסה להעביר את אותו קובץ באמצעות אפשרות -C ונראה את ההבדל.

העברה עם אפשרות -C:

gaurav@ubuntu:~$ scp -Crv dlink [email protected]:team ביצוע: תוכנית /usr/bin/ssh מארח 68.183.82.183, שורש משתמש, פקודה scp -v -r -t team OpenSSH_7.6p1 Ubuntu-4ubuntu0. 3, OpenSSL 1.0.2n 7 בדצמבר 2017 debug1: קריאת נתוני תצורה /home/trinity/.ssh/config debug1: קריאת נתוני תצורה /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config שורה 19: החלת אפשרויות debug1 עבור * : מתחבר ליציאת 68.183.82.183 [68.183.82.183] 22. debug1: חיבור נוצר. . . webupload.img 100% 1834KB 98.7KB/s 00:18 מצבי שליחת קבצים: C0664 1877552 router.img Sink: C0664 1877552 router.img router.img 100% 1834KB: 1004KB קובץ:1004KB:C6B 3754103 DSL-2750U-Release-IN-T-01.00.07.zip כיור: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip DSL-2750U-Release-IN-T-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_NO 0 clearing ONBLOCKNO clearing ONBLOCKNO הועבר: נשלח 7518864, קיבל 3828 בתים, תוך 51.0 שניות בתים לשנייה: נשלח 100245.4, התקבל 51.0 debug1: סטטוס יציאה 0 debug1: דחיסה יוצאת: נתונים גולמיים 7511925, דחוסים 751310g: 751310g 999, פקטור 0.68 gaurav@ubuntu:~$

כאן, אנו יכולים לראות בקלות ששימוש ב- -C אפשרות עם ה scp הפקודה אפשרה לנו לדחוס את הקובץ דרך הרשת ובכך הוכחה כאפשרות לחסכון בזמן.

שימוש ביציאת ssh אחרת להעברת קבצים

תוך כדי שימוש ב scp הפקודה יציאת ברירת המחדל שנפרסת היא יציאה 22. למשתמש יש את החופש להתאים אישית את בחירת היציאה הזו. אתה יכול להשתמש ב (אפשרות P גדולה) עם ה scp פקודה להשתמש ביציאה לבחירתך.

תחביר כללי:

cp -P [מספר_יציאת_חדש] [שם_קובץ/שם_ספרייה] משתמש_remote@host:[תיקיית_יעד]

דוגמא:

scp -P 4248 dlink [email protected]:team

באמצעות הפקודה לעיל, הקובץ יועבר לשרת המרוחק. אבל הפעם, הנמל המשמש יהיה יציאה 4248 במקום ברירת המחדל יציאה 22.

סיכום

לאחר שעברנו את המדריך הזה, למדנו על האופי הדינמי של scp פקודה המשמשת להעברה או העתקה של קבצים ממערכת אחת לאחרת. אפשרות זו יכולה לשמש גם להורדת קבצים או ספריות מהשרת המרוחק. לפיכך, אנו יכולים להסיק זאת scp הפקודה מוכיחה שהיא מועילה מאוד עבור העברות קבצים כאשר אתה צריך לטפל ביותר ממערכת אחת כמו גם שרתים מרוחקים בו זמנית.