Kaip naudoti SCP komandą „Linux“.

Paprasta pamoka, padedanti perkelti failus į nuotolinę sistemą iš „Linux“ sistemos naudojant komandą scp.

SCP reiškia „saugi kopija“. scp yra „Linux“ siūloma komandų eilutės programa, leidžianti perkelti failus ir katalogus iš vieno įrenginio į kitą per nesaugų tinklą.

Jei norite kopijuoti failus iš vienos sistemos į kitą, tada scp gali būti labai gera galimybė saugiai perkelti failus ir katalogus. Kai du bendraujantys įrenginiai yra sujungti per tą patį tinklą, tada naudojant scp tampa įmanoma.

Galite labai pasikliauti scp konfidencialumo ir vientisumo komanda, nes perduodamas failas ir perkėlimui naudojamas slaptažodis yra užšifruoti. Jokia neskelbtina informacija nebus atskleista, net jei kas nors bandys šnipinėti srautą, kol vyksta šis perkėlimas.

Šioje pamokoje pamatysime įvairių pavyzdžių scp komandą. Taip pat apžvelgsime kai kurias dažniausiai naudojamas parinktis scp komandą.

Darbo su scp komanda pradžia

Naudojant scp komanda galite perkelti failus / katalogus:

  • Iš vietinio įrenginio į nuotolinį įrenginį.
  • Tarp dviejų nuotolinių mašinų.
  • Iš nuotolinio įrenginio į vietinį įrenginį.

Bendroji sintaksė:

scp [Parinktis] [šaltinio_failo_pavadinimas] [naudotojas@paskirties_host]:paskirties_aplankas

Leiskite mums suprasti pagrindinius šios komandos požymius.

  • [šaltinio_failo_pavadinimas] Tai šaltinio failas, kurį norite nukopijuoti.
  • [naudotojas@paskirties_priegloba] Tai yra nuotolinės sistemos, į kurią norite kopijuoti failą, vartotojo vardas. Nuotolinio įrenginio IP adresas taip pat naudojamas šiame atribute po „@‘ simbolis.
  • [paskirties aplanką] Tai yra katalogas, kuriame norite išsaugoti nukopijuotą failą.

Pastaba: dvitaškis (:) simbolis naudojamas sintaksėje, nes jis atskiria vietines ir nutolusias vietas. Mes naudojame dvitaškį (:) su nuotoline sistema, kad nurodytumėte katalogą, į kurį reikia kopijuoti failus. Jei nenurodysime tikslinio katalogo, failai bus nukopijuoti į nuotolinio sistemos vartotojo namų katalogą.

Parinktys, naudojamos su scp

Kai kurios iš populiariausių parinkčių, naudojamų su scp komandos yra išvardytos žemiau.

Parinktisapibūdinimas
-Cleisti perduoti failo suglaudinimą
-vduoti žodinį išvestį
-rrekursyviai kopijuoti failus ir katalogus
-pišsaugoti failų leidimus, režimus ir prieigos laiką
-Ppakeisti numatytąjį prievadą, kurį naudoja scp komandą

Šių parinkčių pavyzdžius pamatysime toliau mokymo programoje.

Failo kopijavimas iš vietinės į nuotolinę sistemą

scp leidžia perkelti failus iš vietinės sistemos į nuotolinę sistemą naudojant šią sintaksę. Tai leidžia perkelti arba įkelti failus į nuotolinį serverį.

Bendroji sintaksė:

scp [failo_pavadinimas] nuotolinis_vartotojas@host:[paskirties_aplankas]

Pavyzdys:

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

Šiame pavyzdyje kopijuojame failą „apache-tomcat-9.0.8.tar.gz“ iš vietinės sistemos į nuotolinę sistemą, kurios IP adresas yra „143.110.178.221“.

Nuotolinėje sistemoje failas dabar bus nukopijuotas į katalogą pavadinimu „gaurav“.

Išvestis:

gaurav@ubuntu:~$ scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav [email protected] slaptažodis: apache-tomcat-9.0.8.tar.gz 100% 798 KB /s 02:00 gaurav@ubuntu:~$ 

Patikrinkime failo išvestį nuotolinėje sistemoje.

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

Taigi failas sėkmingai nukopijuojamas į nuotolinę sistemą naudojant scp komandą.

Kelių failų kopijavimas į nuotolinę sistemą

Ankstesniame pavyzdyje išmokome perkelti failą į nuotolinę sistemą naudodami scp komandą. Dabar pamatysime būdą, kaip perkelti kelis failus iš vietinės sistemos į nuotolinę sistemą naudojant šią komandą.

Bendroji sintaksė:

scp [failas 1] [failas 2] [failas n] remote_username@remote_host:[konkretus katalogas]

Supraskime šį paprastą procesą pateikdami pavyzdį.

Pavyzdys:

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

Čia keli failai paminėti komandoje, kurią reikia nukopijuoti nuotolinėje sistemoje.

Išvestis:

gaurav@ubuntu:~$ scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav [email protected] slaptažodis: ath.html 100 %s 40 KB 9 KB 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:~$

Nuotolinėje sistemoje:

root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav# ls -l iš viso 9800 -rw-r--r-- 1 šaknis 0 spalio 5 d. 08:58 abc.txt -rw-r-- r-- 1 šaknis 9818695 spalio 5 d. 08:35 apache-tomcat-9.0.8.tar.gz -rw-r--r-- 1 šaknis 204057 spalio 5 d. 08:58 ath.html -rw-r-- r-- 1 šaknies šaknis 4360 spalio 5 d. 08:58 ppa-purge_0.2.8+bzr56_all.deb root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav#

Visi trys failai dabar nukopijuoti į nuotolinę sistemą.

Katalogo kopijavimas į nuotolinę sistemą

Tu gali naudoti scp komanda, kad nukopijuotumėte katalogą iš vietinės sistemos į nuotolinę sistemą. Procesas panašus į failo kopijavimo procesą. Norėdami nukopijuoti ir katalogo turinį, galite naudoti -r variantas su scp komandą.

The -r parinktis naudojama rekursyviai nukopijuoti katalogą. Tai reiškia, kad visi poaplankiai ir failai kataloge taip pat bus nukopijuoti.

Bendroji sintaksė:

scp -r [katalogo kelias] nuotolinis_naudotojovardas@remote_host:[tikslinis_katalogas]

Pavyzdys:

scp -r PycharmProjects [email protected]:gaurav

Išvestis:

gaurav@ubuntu:~$ scp -r PycharmProjects [email protected]:gaurav [email protected] slaptažodis: __main__.py 100% 623 7.8KB/s 00:00 __ins 0 KB/0 00:00 __ins3 :00 užbaigimas.py 100 % 2929 28,1 KB/s 00:00 search.py ​​100 % 4728 38,7 KB/s 00:00 uninstall.py 100 % 2963 32,5 KB/s 00:00 hash.py 10 .py 61 KB/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 download.py 623% 468 KB/s 00:00 gaurav@ubuntu:~$ 

Naudojant -r variantas su scp komanda nukopijuoja visus katalogo poaplankius ir failus iš vietinio kompiuterio į nuotolinę sistemą.

Rodoma išsami informacija apie scp procesą

Galite naudoti -v (mažosios raidės v) parinktį, kad būtų rodoma informacija apie failus, kurie yra kopijuojami nuotoliniu būdu arba vietinėje sistemoje. Šio tipo išvestis taip pat vadinama išsamia išvestimi.

Kai naudojama ši parinktis, visa derinimo informacija apie failą rodoma ekrane.

Bendroji sintaksė:

scp -v [failo_vardas] vartotojo_vardas@user_host:

Pavyzdys:

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

Išvestis:

gaurav@ubuntu:~$ scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team Vykdoma: programa /usr/bin/ssh host 159.89.170.11, vartotojo šaknis, komanda scp -v -t komanda OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 2017 m. gruodžio 7 d. debug1: nuskaitomi konfigūracijos duomenys /home/gaurav/.ssh/config debug1: nuskaitomi konfigūracijos duomenys /etc/ssh/ssh_config debug1: /etc/sfshig 19 eilutė: * debug1 parinkčių taikymas: prisijungimas prie 159.89.170.11 [159.89.170.11] prievado 22. debug1: ryšys užmegztas. debug1: key_load_publik 0 kanalas rtipo išėjimo būsenos atsakymas 0 debug1: kanalas 0: nemokamas: kliento seansas, nchannels 1 debug1: fd 0 clearing O_NONBLOCK debug1: fd 1 clearing O_NONBLOCK Perduota: išsiųsta 9826736, gauta 4016 baitų per sekundę. 101133.9, gautas 41.3 debug1: Išėjimo būsena 0 gaurav@ubuntu:~$ 

Čia, išvestyje, galite pamatyti, kad failo derinimo informacija rodoma jūsų terminale, kai scp komanda naudojama su -v variantas.

Failų perkėlimas tarp dviejų nuotolinių kompiuterių

„Linux“ leidžia prisijungti prie kelių nuotolinių kompiuterių. Galite perkelti failus ir katalogus tarp dviejų nuotolinių kompiuterių, naudodami scp komandą.

Bendroji sintaksė:

scp nuotolinis_naudotojas_1@host_1:/[failo_pavadinimas] nuotolinis_vartotojas_2@host_2:[aplankas, kurį reikia išsaugoti]

Sintaksė gali atrodyti šiek tiek platesnė, bet gana paprasta. Čia pirmoji komandos dalis suteikia įvestį apie nuotolinį vartotoją, iš kurio reikia nukopijuoti failą. dvitaškis (:) ir / naudojamas norint nurodyti failo pavadinimą arba katalogo pavadinimą, kuris turi būti perkeltas tarp dviejų nuotolinių mašinų.

Antroje dalyje pateikiama informacija apie tikslinę nuotolinę sistemą, kurioje failas turi būti kopijuojamas.

Pavyzdys:

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

Čia mes rekursyviai nukopijuosime katalogą pavadinimu „gaurav“ iš vietinės sistemos į nuotolinę sistemą. Failas bus nukopijuotas į nuotolinės sistemos aplanką „team“.

Išvestis:

gaurav@ubuntu:~$ scp -r [email protected]:/gaurav [email protected]:/team [email protected] slaptažodis: 1.py 100% 134 261.3KB/s kintamieji 0:0 100% 377 949,2 KB/s 00:00 abc.txt 100% 0 0,0 KB/s 00:00 ath.html 100% 199 KB 41,8 MB/s 00:00 gaurav@ubuntu:~$

Čia mes panaudojome scp komanda vietinėje sistemoje perkelti katalogą pavadinimu „gaurav“ iš vieno nuotolinio serverio į kitą.

Perkelkite failus iš nuotolinės sistemos į vietinę sistemą

Galite lengvai perkelti failus ar katalogus iš nuotolinės sistemos į vietinę sistemą naudodami scp komandą. Paprasčiau tariant, galite atsisiųsti kelis failus arba katalogus iš nuotolinio serverio į savo vietinę sistemą naudodami scp komandą.

Bendroji sintaksė:

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

Išvestis:

gaurav@ubuntu:~$ scp [email protected]:how.txt . [email protected] slaptažodis: how.txt 100% 11 0.1KB/s 00:00 gaurav@ubuntu:~$

Čia aš atsisiunčiau (nukopijavau) failą iš nuotolinio serverio į savo namų katalogą. Todėl aš naudoju tašką (.) komandoje nurodyti kopijuoti failą į mano namų katalogą.

Išvesties pavyzdys:

gaurav@ubuntu:~$ ls -l how.txt -rw-r--r-- 1 gaurav gaurav 11 spalio 6 d. 09:49 how.txt gaurav@ubuntu:~$ 

Čia failas dabar nukopijuotas į mano namų katalogą iš nuotolinio serverio.

Taip pat galite atsisiųsti kelis failus arba katalogus iš nuotolinio serverio naudodami scp komandą su atitinkamomis parinktimis.

Failų suspaudimas, kad būtų galima greičiau perkelti

Kartais didelių failų perkėlimas gali užtrukti. Šią problemą galima išspręsti naudojant scp komandą su -C (didžiosios raidės C) variantas.

Naudojant -C parinktį, suspaudžia didesnio dydžio failus, o tai palengvina greitesnį perdavimą ir taip sutaupo laiko.

Vienas įdomus šios parinkties faktas yra tas, kad failas nukopijuojamas su pradiniu dydžiu paskirties sistemoje, tačiau perkėlimo proceso metu dydis suglaudinamas, kad būtų galima greičiau perkelti. Taigi suspaudimas atliekamas tik tinkle.

Bendroji sintaksė:

scp -C [failo_vardas] vartotojo_vardas@naudotojo_host:[tikslinis_aplankas]

Pažiūrėkime lyginamąjį pavyzdį, kad suprastume skirtumą.

Perkėlimas be -C parinkties:

gaurav@ubuntu:~$ scp -rv dlink [email protected]:team Vykdoma: programa /usr/bin/ssh host 68.183.82.183, vartotojo root, komanda scp -v -r -t team OpenSSH_7.6p1 Ubuntu-4ubuntu0 3, OpenSSL 1.0.2n 2017 m. gruodžio 7 d. debug1: nuskaitomi konfigūracijos duomenys /home/trinity/.ssh/config debug1: nuskaitomi konfigūracijos duomenys /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config 19 eilutė: *debug1 parinkčių taikymas : Prisijungiama prie 68.183.82.183 [68.183.82.183] prievado 22. debug1: ryšys užmegztas. 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 Perduota: 4 sekundė 047s, 6 siųsta 047s. per sekundę: išsiųsta 100693.7, gauta 53.7 debug1: Išėjimo būsena 0 gaurav@ubuntu:~$ 

Iš aukščiau pateiktos išvesties matome, kad perkėlimui reikalingas laikas yra 74,6 sekundės. Bandysime perkelti tą patį failą naudodami parinktį -C ir pastebėsime skirtumą.

Perkėlimas naudojant -C parinktį:

gaurav@ubuntu:~$ scp -Crv dlink [email protected]:team Vykdoma: programa /usr/bin/ssh host 68.183.82.183, vartotojo root, komanda scp -v -r -t team OpenSSH_7.6p1 Ubuntu-4ubuntu. 3, OpenSSL 1.0.2n 2017 m. gruodžio 7 d. debug1: nuskaitomi konfigūracijos duomenys /home/trinity/.ssh/config debug1: nuskaitomi konfigūracijos duomenys /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config 19 eilutė: *debug1 parinkčių taikymas : Prisijungiama prie 68.183.82.183 [68.183.82.183] prievado 22. debug1: ryšys užmegztas. . . webupload.img 100% 1834KB 98,7KB/s 00:18 Siuntimo failų režimai: C0664 1877552 router.img Sink: C0664 1877552 router.img router.img 100% 1834KB/100.:0618 failo režimai0.:0:68 3754103 DSL-2750U-Release-IN-T-01.00.07.zip Kriauklė: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip DSL-2750U-Release-IN-T-01.00.07. 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_NOCK ON Clearing 0BLOCKNbug1 Perduota: išsiųsta 7518864, gauta 3828 baitai, per 51,0 sekundės Baitai per sekundę: išsiųsta 100245,4, gauta 51,0 derinimas1: Išėjimo būsena 0 debug1: suspausti išeinantys: neapdoroti duomenys 7511925, suspausti 7513136, suspausti 7513136, suspausti 1 veiksnys: debug7: 999, koeficientas 0,68 gaurav@ubuntu:~$

Čia galime lengvai pastebėti, kad naudojant -C variantas su scp komanda leido mums suspausti failą tinkle, todėl tai pasirodė esanti laiko taupymo parinktis.

Failų perdavimui naudokite kitą ssh prievadą

Naudodami scp komandą numatytasis įdiegtas prievadas yra 22 uostas. Vartotojas turi laisvę tinkinti šį prievado pasirinkimą. Galite naudoti -P (didžiųjų raidžių P parinktis) su scp komandą, kad galėtumėte naudoti pasirinktą prievadą.

Bendroji sintaksė:

cp -P [naujas_prievado_numeris] [failo_pavadinimas/katalogo_pavadinimas] nuotolinis_vartotojas@host:[paskirties_aplankas]

Pavyzdys:

scp -P 4248 dlink [email protected]:team

Naudojant aukščiau pateiktą komandą, failas bus perkeltas į nuotolinį serverį. Tačiau šį kartą bus naudojamas uostas 4248 prievadas vietoj numatytojo 22 uostas.

Išvada

Peržiūrėję šią mokymo programą sužinojome apie dinamišką šios programos prigimtį scp komanda, naudojama failams perkelti arba kopijuoti iš vienos sistemos į kitą. Ši parinktis taip pat gali būti naudojama failams ar katalogams atsisiųsti iš nuotolinio serverio. Taigi galime daryti tokią išvadą scp komanda yra labai naudinga perduodant failus, kai vienu metu turite tvarkyti daugiau nei vieną sistemą ir nuotolinius serverius.