מדריך קל שיעזור לך להעביר קבצים למערכת מרוחקת ממערכת הלינוקס שלך באמצעות הפקודה 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
הפקודה מוכיחה שהיא מועילה מאוד עבור העברות קבצים כאשר אתה צריך לטפל ביותר ממערכת אחת כמו גם שרתים מרוחקים בו זמנית.