Kako uporabljati ukaz SCP v Linuxu

Preprosta vadnica, ki vam bo pomagala prenesti datoteke v oddaljeni sistem iz vašega sistema Linux z ukazom scp.

SCP pomeni 'Secure Copy'. scp je pripomoček ukazne vrstice, ki ga ponuja Linux in omogoča prenos datotek in imenikov z enega računalnika na drugega prek nezaščitenega omrežja.

Če želite kopirati datoteke iz enega sistema v drugega, potem scp je lahko zelo dobra možnost za varen prenos datotek in imenikov. Ko sta dve komunikacijski napravi povezani prek istega omrežja, uporabite scp postane možno.

Močno se lahko zanesete na scp ukaz za zaupnost in celovitost, saj sta datoteka, ki se prenaša, in geslo, uporabljeno za prenos, šifrirana. Nobene občutljive informacije ne bodo razkrite, tudi če bo kdo poskušal vohljati po prometu, medtem ko ta prenos poteka.

V tej vadnici bomo videli različne primere scp ukaz. Ogledali si bomo tudi nekatere pogosto uporabljene možnosti z scp ukaz.

Začetek uporabe ukaza scp

Uporabljati scp ukaz, s katerim lahko prenesete datoteke/imenike:

  • Od vašega lokalnega računalnika do oddaljenega računalnika.
  • Med dvema oddaljenima strojema.
  • Od oddaljenega računalnika do vašega lokalnega računalnika.

Splošna sintaksa:

scp [Možnost] [ime izvorne_datoteke] [user@destination_Host]:destination_folder

Razumimo osnovne lastnosti tega ukaza enega za drugim.

  • [ime izvorne_datoteke] To je izvorna datoteka, ki jo želite kopirati.
  • [user@destination_Host] To je uporabniško ime oddaljenega sistema, kamor želite kopirati datoteko. IP naslov oddaljenega računalnika se uporablja tudi v tem atributu za znakom »@' simbol.
  • [ciljna mapa] To je imenik, kamor želite shraniti kopirano datoteko.

Opomba: debelo črevo (:) se uporablja v sintaksi, saj razlikuje med lokalnimi in oddaljenimi lokacijami. Uporabljamo debelo črevo (:) z oddaljenim sistemom, da določite imenik, v katerega naj bodo datoteke kopirane. V primeru, da ciljnega imenika ne določimo, bodo datoteke kopirane v domači imenik oddaljenega uporabnika sistema.

Možnosti, ki se uporabljajo z scp

Nekatere najbolj priljubljene možnosti, ki se uporabljajo z scp ukazi so navedeni spodaj.

MožnostOpis
-Comogočite prenos stiskanja datoteke
-vdajte natančen rezultat
-rrekurzivno kopirajte datoteke in imenike
-strohraniti dovoljenja, načine in čas dostopa do datotek
-Pspremenite privzeta vrata, ki jih uporablja scp ukaz

Primere teh možnosti bomo videli naprej v vadnici.

Kopiranje datoteke iz lokalnega v oddaljeni sistem

scp vam omogoča prenos datotek iz vašega lokalnega sistema v oddaljeni sistem z uporabo naslednje sintakse. To vam omogoča prenos ali nalaganje datotek na oddaljen strežnik.

Splošna sintaksa:

scp [ime_datoteke] oddaljeni_user@host: [ciljna_mapa]

Primer:

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

V tem primeru kopiramo datoteko »apache-tomcat-9.0.8.tar.gz« iz lokalnega sistema v oddaljeni sistem, katerega naslov IP je »143.110.178.221«.

V oddaljenem sistemu bo datoteka zdaj kopirana v imenik z imenom 'gaurav'.

Izhod:

gaurav@ubuntu:~$ scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav [email protected] geslo: apache-tomcat-9.0.8.tar.gz 1090% 79 KB /s 02:00 gaurav@ubuntu:~$ 

Preverimo izhod datoteke na oddaljenem sistemu.

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

Tako je datoteka uspešno kopirana v oddaljeni sistem z uporabo scp ukaz.

Kopiranje več datotek v oddaljeni sistem

V prejšnjem primeru smo se naučili prenesti datoteko v oddaljeni sistem s pomočjo scp ukaz. Zdaj bomo videli metodo za prenos več datotek iz vašega lokalnega sistema v oddaljeni sistem s tem ukazom.

Splošna sintaksa:

scp [datoteka 1] [datoteka 2] [datoteka n] oddaljeno_uporabniško ime@remote_host:[določen imenik]

Naj razumemo ta preprost postopek s primerom.

Primer:

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

Tukaj je v ukazu, ki ga je treba kopirati v oddaljeni sistem, omenjeno več datotek.

Izhod:

gaurav@ubuntu:~$ scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav [email protected] geslo: ath.html 1090 KB 1090 KB 02 abc.txt 100 % 0 0,0 KB/s 00:00 ppa-purge_0.2.8+bzr56_all.deb 100 % 4360 42,2 KB/s 00:00 gaurav@ubuntu:~$

Na oddaljenem sistemu:

root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav# ls -l skupaj 9800 -rw-r--r-- 1 koren root 0 5. oktober 08:58 abc.txt -rw-r-- r-- 1 korenski koren 9818695 5. oktober 08:35 apache-tomcat-9.0.8.tar.gz -rw-r--r-- 1 korenski koren 204057 5. oktober 08:58 ath.html -rw-r-- r-- 1 korenski koren 4360, 5. oktober 08:58 ppa-purge_0.2.8+bzr56_all.deb root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav#

Vse tri datoteke so zdaj kopirane v oddaljeni sistem.

Kopiranje imenika v oddaljeni sistem

Lahko uporabiš scp ukaz za kopiranje imenika iz vašega lokalnega sistema v oddaljeni sistem. Postopek je podoben kot pri kopiranju datoteke. Če želite kopirati tudi vsebino imenika, lahko uporabite -r možnost z scp ukaz.

The -r možnost se uporablja za rekurzivno kopiranje imenika. To pomeni, da bodo kopirane tudi vse podmape in datoteke v imeniku.

Splošna sintaksa:

scp -r [pot imenika] oddaljeno_uporabniško ime@remote_host:[ciljni_imenik]

Primer:

scp -r PycharmProjects [email protected]:gaurav

Izhod:

gaurav@ubuntu:~$ scp -r PycharmProjects [email protected]:gaurav [email protected] geslo: __main__.py 100% 623 7.8KB/s 00:00 KB/s 00:00 KB/s 00: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 1010 KB 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 10230% 8 KB/s 00:00 gaurav@ubuntu:~$ 

Uporabljati -r možnost z scp ukaz kopira vse podmape in datoteke v imeniku iz lokalnega računalnika v oddaljeni sistem.

Prikaz podrobnih informacij o procesu scp

Lahko uporabite -v (male črke v) možnost za prikaz informacij o datotekah, ki se kopirajo v oddaljenem ali lokalnem sistemu. Ta vrsta izhoda se imenuje tudi podroben izhod.

Ko je ta možnost uporabljena, se na zaslonu prikažejo popolne informacije o odpravljanju napak o datoteki.

Splošna sintaksa:

scp -v [ime_datoteke] uporabniško_ime@uporabniški_gostitelj:

Primer:

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

Izhod:

gaurav@ubuntu:~$ scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team Izvajanje: program /usr/bin/ssh gostitelj 159.89.170.11, uporabniški koren, ukaz scp -v -t ekipa OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7. december 2017 debug1: branje konfiguracijskih podatkov /home/gaurav/.ssh/config debug1: branje konfiguracijskih podatkov /etc/ssh/ssh_config debug1/etc_/ssh vrstica 19: uporaba možnosti za * debug1: povezava z 159.89.170.11 [159.89.170.11] vrati 22. debug1: povezava vzpostavljena. debug1: key_load_public: Ni take datoteke ali imenika debug1: identitetna datoteka /home/gaurav/.ssh/id_rsa type -1 apache-tomcat-9.0.8.tar.gz 100% 9589KB 99,8KB/s 01:36 debug_channel client_reput_in kanal 0 rtype izhod-status odgovor 0 debug1: kanal 0: brezplačno: odjemalska seja, kanali 1 debug1: fd 0 brisanje O_NONBLOCK debug1: fd 1 brisanje O_NONBLOCK Preneseno: poslano 9826736, prejeto 4016 bajtov na sekundo, poslano v 2 sekundah 101133.9, prejeto 41.3 debug1: Izhodni status 0 gaurav@ubuntu:~$ 

Tukaj v izhodu lahko vidite, da so informacije o odpravljanju napak datoteke prikazane na vašem terminalu, ko se scp ukaz se uporablja z -v možnost.

Prenos datotek med dvema oddaljenima gostiteljem

Linux vam omogoča povezavo z več oddaljenimi gostitelji. Datoteke in imenike lahko prenašate med dvema oddaljenima gostiteljema z uporabo scp ukaz.

Splošna sintaksa:

scp remote_user_1@host_1:/[ime_file] remote_user_2@host_2:[mapa_to_save]

Sintaksa se morda zdi nekoliko širša, vendar je precej preprosta. Tukaj prvi del ukaza poda podatke o oddaljenem uporabniku, od koder naj se kopira datoteka. debelo črevo (:) in / se uporablja za določitev imena datoteke ali imena imenika, ki naj se prenese med obema oddaljenima računalnikoma.

Drugi del poda informacije o ciljnem oddaljenem sistemu, kamor naj se datoteka kopira.

Primer:

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

Tukaj bomo rekurzivno kopirali imenik z imenom 'gaurav' iz lokalnega sistema v oddaljeni sistem. Datoteka bo kopirana v mapo 'ekipa' na oddaljenem sistemu.

Izhod:

gaurav@ubuntu:~$ scp -r [email protected]:/gaurav [email protected]:/team [email protected] geslo: 1.py 100% 134 261.3KB/s spremenljivke.py 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:~$

Tukaj smo uporabili scp ukaz v lokalnem sistemu za prenos imenika z imenom 'gaurav' z enega oddaljenega strežnika na drugega.

Prenesite datoteke iz oddaljenega sistema v vaš lokalni sistem

Datoteke ali imenike lahko preprosto prenesete iz oddaljenega sistema v vaš lokalni sistem z uporabo scp ukaz. Preprosteje povedano, lahko prenesete več datotek ali imenikov z oddaljenega strežnika v vaš lokalni sistem z uporabo scp ukaz.

Splošna sintaksa:

scp oddaljeno_uporabniško ime@user_host:/files/file.txt /[mapa_local_system]

Izhod:

gaurav@ubuntu:~$ scp [email protected]:how.txt . geslo [email protected]: how.txt 100 % 11 0,1 KB/s 00:00 gaurav@ubuntu:~$

Tukaj sem prenesel (kopiral) datoteko z oddaljenega strežnika v svoj domači imenik. Zato sem uporabil piko (.), da v ukazu določite kopiranje datoteke v moj domači imenik.

Vzorčni izhod:

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

Tukaj je datoteka zdaj kopirana v moj domači imenik z oddaljenega strežnika.

Na enak način lahko prenesete več datotek ali imenikov z oddaljenega strežnika z uporabo scp ukaz z ustreznimi možnostmi.

Stiskanje datotek za hitrejše prenose

Včasih je prenos velikih datotek lahko zamuden. To težavo je mogoče rešiti med uporabo scp ukaz z -C (velike črke C) možnost.

Uporabljati -C možnost, stisne datoteke večje velikosti, kar olajša hitrejši prenos in tako prihrani čas.

Zanimivo dejstvo o tej možnosti je, da je datoteka v ciljnem sistemu kopirana s svojo izvirno velikostjo, vendar se med postopkom prenosa velikost stisne, da se omogoči hitrejši prenos. Tako se stiskanje izvaja samo v omrežju.

Splošna sintaksa:

scp -C [ime_datoteke] uporabniško ime@user_host: [ciljna_mapa]

Oglejmo si primerjalni primer, da razumemo razliko.

Prenos brez možnosti -C:

gaurav@ubuntu:~$ scp -rv dlink [email protected]:team Izvajanje: program /usr/bin/ssh gostitelj 68.183.82.183, uporabniški koren, ukaz scp -v -r -t ekipa OpenSSH_7.6p1 Ubuntu-4ubuntu 3, OpenSSL 1.0.2n 7. december 2017 debug1: Branje konfiguracijskih podatkov /home/trinity/.ssh/config debug1: Branje konfiguracijskih podatkov /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config vrstica 19: Uporaba možnosti za * debug1 : Povezava na 68.183.82.183 [68.183.82.183] vrata 22. debug1: Povezava vzpostavljena. debug1: client_input_channel_req: kanal 0 rtype exit-status reply 0 debug1: kanal 0: brezplačno: odjemalska seja, kanali 1 debug1: fd 0 brisanje O_NONBLOCK debug1: fd 1 brisanje O_NONBLOCK Preneseno: 5 prejeto 045 sekund, prejeto s 045 sekund. na sekundo: poslano 100693,7, prejeto 53,7 debug1: Izhodni status 0 gaurav@ubuntu:~$ 

Iz zgornjega izhoda lahko vidimo, da je čas, potreben za prenos, 74,6 sekunde. Poskusili bomo prenesti isto datoteko z možnostjo -C in opazili razliko.

Prenos z možnostjo -C:

gaurav@ubuntu:~$ scp -Crv dlink [email protected]:team Izvajanje: program /usr/bin/ssh gostitelj 68.183.82.183, uporabniški koren, ukaz scp -v -r -t ekipa OpenSSH_7.6p1 Ubuntu0.4ub 3, OpenSSL 1.0.2n 7. december 2017 debug1: Branje konfiguracijskih podatkov /home/trinity/.ssh/config debug1: Branje konfiguracijskih podatkov /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config vrstica 19: Uporaba možnosti za * debug1 : Povezava na 68.183.82.183 [68.183.82.183] vrata 22. debug1: Povezava vzpostavljena. . . webupload.img 100 % 1834KB 98,7 KB/s 00:18 Načini pošiljanja datotek: C0664 1877552 router.img Pomivalno korito: C0664 1877552 router.img router.img 100 % 1834KB: način pošiljanja datoteke C0664 1877552 router.img 3754103 DSL-2750U-Release-IN-T-01.00.07.zip Pomivalno korito: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip DSL-2750U-Release-IN-0p-T-07. 100% 3666KB 218,5 KB/s 00:16 Sink: E debug1: client_input_channel_req: kanal 0 rtype izhodni-status odgovor 0 debug1: kanal 0: brezplačno: odjemalska seja, kanali 1 debug1: fd NOBLOCK brisanje O de_buN1: fdNOBLOCK Preneseno: poslano 7518864, prejeto 3828 bajtov, v 51,0 sekundah Bajtov na sekundo: poslano 100245,4, prejeto 51,0 debug1: Izhodno stanje 0 debug1: stisnite izhodne: neobdelane podatke 7511925, stisnjeno 7513136: stisnjeno 7513136 podatkov: stisnjeno 1.4. 999, faktor 0,68 gaurav@ubuntu:~$

Tukaj lahko zlahka opazimo, da z uporabo -C možnost z scp ukaz nam je omogočil, da stisnemo datoteko prek omrežja, kar se je izkazalo za možnost prihranka časa.

Za prenos datotek uporabite druga vrata ssh

Med uporabo scp ukaz privzeta vrata, ki so nameščena, so pristanišče 22. Uporabnik ima svobodo pri prilagajanju te izbire vrat. Lahko uporabite -P (možnost velike črke P) z scp ukaz za uporabo vrat po vaši izbiri.

Splošna sintaksa:

cp -P [nova_številka_vrat] [ime_datoteke/ime_imenika] oddaljeni_uporabnik@gostitelj: [ciljna_mapa]

Primer:

scp -P 4248 dlink [email protected]:team

Z zgornjim ukazom bo datoteka prenesena na oddaljeni strežnik. Toda tokrat bo uporabljeno pristanišče vrata 4248 namesto privzetega pristanišče 22.

Zaključek

Po pregledu te vadnice smo se naučili dinamične narave scp ukaz, ki se uporablja za prenos ali kopiranje datotek iz enega sistema v drugega. To možnost lahko uporabite tudi za prenos datotek ali imenikov z oddaljenega strežnika. Tako lahko sklepamo, da scp ukaz se izkaže za zelo koristen pri prenosih datotek, ko morate hkrati upravljati več kot en sistem in oddaljene strežnike.