Kako koristiti SCP naredbu u Linuxu

Jednostavan vodič koji će vam pomoći prenijeti datoteke na udaljeni sustav s vašeg Linux sustava pomoću naredbe scp.

SCP je skraćenica od 'Secure Copy'. scp je uslužni program naredbenog retka koji nudi Linux koji omogućuje prijenos datoteka i direktorija s jednog računala na drugi preko nesigurne mreže.

Ako želite kopirati datoteke s jednog sustava na drugi, onda scp može biti vrlo dobra opcija za siguran prijenos datoteka i direktorija. Kada su dva komunikacijska stroja povezana preko iste mreže, tada se koristi scp postaje moguće.

Možete se u velikoj mjeri osloniti na scp naredba za povjerljivost i integritet jer su datoteka koja se prenosi i lozinka korištena za prijenos šifrirane. Nikakve osjetljive informacije neće biti otkrivene čak i ako netko pokuša pronjuškati promet dok je prijenos u tijeku.

U ovom vodiču vidjet ćemo različite primjere scp naredba. Također ćemo pogledati neke od često korištenih opcija s scp naredba.

Početak rada s naredbom scp

Koristiti scp naredbom kojom možete prenijeti datoteke/direktorije:

  • S vašeg lokalnog stroja na udaljeni stroj.
  • Između dva udaljena stroja.
  • S udaljenog stroja na vaš lokalni stroj.

Opća sintaksa:

scp [Opcija] [ime_izvorne_datoteke] [user@destination_Host]:destination_folder

Razumijemo osnovne atribute ove naredbe jednu po jednu.

  • [ime_izvorne_datoteke] Ovo je izvorna datoteka koju želite kopirati.
  • [korisnik@destination_Host] Ovo je korisničko ime udaljenog sustava na koji želite kopirati datoteku. IP adresa udaljenog stroja također se koristi u ovom atributu nakon "@' simbol.
  • [destination_folder] Ovo je direktorij u koji želite spremiti kopiranu datoteku.

Bilješka: debelo crijevo (:) simbol se koristi u sintaksi jer razlikuje lokalnu i udaljenu lokaciju. Koristimo debelo crijevo (:) s udaljenim sustavom za određivanje direktorija u koji se datoteke trebaju kopirati. U slučaju da ne navedemo ciljni direktorij, tada će datoteke biti kopirane u kućni direktorij korisnika udaljenog sustava.

Opcije koje se koriste sa scp

Neke od najpopularnijih opcija koje se koriste uz scp naredbe su navedene u nastavku.

OpcijaOpis
-Cdopustiti prijenos kompresije datoteke
-vdati opsežan izlaz
-rrekurzivno kopirati datoteke i direktorije
-strsačuvati dopuštenja, načine rada i vremena pristupa datotekama
-Ppromijeniti zadani port koji koristi scp naredba

Vidjet ćemo primjere ovih opcija, dalje u tutorialu.

Kopiranje datoteke s lokalnog na udaljeni sustav

scp omogućuje prijenos datoteka s vašeg lokalnog sustava na udaljeni sustav koristeći sljedeću sintaksu. To vam omogućuje prijenos ili prijenos vaših datoteka na udaljeni poslužitelj.

Opća sintaksa:

scp [naziv_datoteke] udaljeni_user@host:[odredišna_mapa]

Primjer:

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

U ovom primjeru kopiramo datoteku 'apache-tomcat-9.0.8.tar.gz' s lokalnog sustava na udaljeni sustav čija je IP adresa '143.110.178.221'.

Na udaljenom sustavu datoteka će sada biti kopirana u direktorij pod nazivom 'gaurav'.

Izlaz:

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

Provjerimo izlaz na udaljenom sustavu za datoteku.

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

Dakle, datoteka se uspješno kopira na udaljeni sustav pomoću scp naredba.

Kopiranje više datoteka na udaljeni sustav

U prethodnom primjeru naučili smo prenijeti datoteku na udaljeni sustav pomoću scp naredba. Sada ćemo vidjeti metodu za prijenos više datoteka s vašeg lokalnog sustava na udaljeni sustav pomoću ove naredbe.

Opća sintaksa:

scp [datoteka 1] [datoteka 2] [datoteka n] udaljeno_username@remote_host:[određeni direktorij]

Razumijemo ovaj jednostavan proces na primjeru.

Primjer:

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

Ovdje se spominje više datoteka u naredbi za kopiranje na udaljeni sustav.

Izlaz:

gaurav@ubuntu:~$ scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav [email protected] lozinka: ath.html 1090 KB 90% 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:~$

Na udaljenom sustavu:

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

Sve tri datoteke sada su kopirane na udaljeni sustav.

Kopiranje direktorija na udaljeni sustav

Možeš koristiti scp naredba za kopiranje direktorija s vašeg lokalnog sustava na udaljeni sustav. Postupak je sličan onome kod kopiranja datoteke. Za kopiranje sadržaja imenika također možete koristiti -r opcija s scp naredba.

The -r opcija se koristi za rekurzivno kopiranje direktorija. To znači da će sve podmape i datoteke unutar direktorija također biti kopirane.

Opća sintaksa:

scp -r [puta direktorija] udaljeno_username@remote_host:[ciljani_direktorij]

Primjer:

scp -r PycharmProjects [email protected]:gaurav

Izlaz:

gaurav@ubuntu:~$ scp -r PycharmProjects [email protected]:gaurav [email protected] lozinka: __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 1012% s 00:00 check.py 100% 1430 16,8 KB/s 00:00 configuration.py 100% 7125 50,4 KB/s 00:00 show.py 100% 6289 49,8 KB/s 00:00 download.py 10230% 662. KB/s 00:00 gaurav@ubuntu:~$ 

Koristiti -r opcija s scp naredba kopira sve podmape i datoteke unutar direktorija s lokalnog stroja na udaljeni sustav.

Prikaz detaljnih informacija o scp procesu

Možete koristiti -v (mala slova v) opcija za prikaz informacija o datotekama koje se kopiraju na udaljenom ili lokalnom sustavu. Ova vrsta izlaza naziva se i opširnim izlazom.

Kada se koristi ova opcija, potpune informacije o otklanjanju pogrešaka o datoteci se prikazuju na zaslonu.

Opća sintaksa:

scp -v [ime_datoteke] korisničko_ime@korisnički_host:

Primjer:

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

Izlaz:

gaurav@ubuntu:~$ scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team Izvršavanje: program /usr/bin/ssh host 159.89.170.11, korisnički root, naredba scp -v -t tim OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7. prosinca 2017. debug1: Čitanje konfiguracijskih podataka /home/gaurav/.ssh/config debug1: Čitanje konfiguracijskih podataka /etc/ssh/ssh_config debug1: /etc_config redak 19: Primjena opcija za * debug1: Povezivanje na 159.89.170.11 [159.89.170.11] port 22. debug1: Veza uspostavljena. debug1: key_load_public: nema takve datoteke ili direktorija debug1: datoteka identiteta /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 izlaz-status odgovor 0 debug1: kanal 0: slobodan: klijentska sesija, kanali 1 debug1: fd 0 brisanje O_NONBLOCK debug1: fd 1 brisanje O_NONBLOCK Preneseno: poslano 9826736, primljeno 4016 bajtova u sekundi, poslano 4016 bajtova u sekundi, u 101133.9, primljeno 41.3 debug1: Izlazni status 0 gaurav@ubuntu:~$ 

Ovdje, u izlazu, možete vidjeti da se informacije o otklanjanju pogrešaka datoteke prikazuju na vašem terminalu kada je scp naredba se koristi s -v opcija.

Prijenos datoteka između dva udaljena hosta

Linux vam omogućuje povezivanje s više udaljenih hostova. Možete prenositi datoteke i direktorije između dva udaljena hosta pomoću scp naredba.

Opća sintaksa:

scp daljinski_user_1@host_1:/[ime_datoteke] udaljeni_korisnik_2@host_2:[mapa_za_spremi]

Sintaksa se može činiti malo širom, ali je prilično jednostavna. Ovdje prvi dio naredbe daje input o udaljenom korisniku s kojeg se datoteka treba kopirati. debelo crijevo (:) i / koristi se za određivanje naziva datoteke ili naziva direktorija koji će se prenijeti između dva udaljena računala.

Drugi dio daje informacije o ciljnom udaljenom sustavu na koji se datoteka treba kopirati.

Primjer:

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

Ovdje ćemo rekurzivno kopirati direktorij pod nazivom 'gaurav' s lokalnog sustava na udaljeni sustav. Datoteka će se kopirati u mapu 'tim' na udaljenom sustavu.

Izlaz:

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

Ovdje smo koristili scp naredba na lokalnom sustavu za prijenos direktorija pod nazivom 'gaurav' s jednog udaljenog poslužitelja na drugi.

Prenesite datoteke s udaljenog sustava na vaš lokalni sustav

Možete jednostavno prenijeti datoteke ili direktorije s udaljenog sustava na vaš lokalni sustav pomoću scp naredba. Jednostavnijim riječima, možete preuzeti više datoteka ili direktorija s udaljenog poslužitelja na vaš lokalni sustav pomoću scp naredba.

Opća sintaksa:

scp udaljeno_username@user_host:/files/file.txt /[mapa_lokalnog_sustava]

Izlaz:

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

Ovdje sam preuzeo (kopirao) datoteku s udaljenog poslužitelja u svoj kućni direktorij. Stoga sam koristio točku (.) da navedem u naredbi za kopiranje datoteke u moj početni direktorij.

Uzorak izlaza:

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

Ovdje je datoteka sada kopirana u moj kućni direktorij s udaljenog poslužitelja.

Na isti način možete preuzeti više datoteka ili direktorija s udaljenog poslužitelja pomoću scp naredbu s odgovarajućim opcijama.

Sažimanje datoteka za brži prijenos

Ponekad prijenos velikih datoteka može biti dugotrajan. Ovaj se problem može riješiti tijekom korištenja scp naredba s -C (velika slova C) opcija.

Koristiti -C opcija, komprimira datoteke veće veličine što olakšava brži prijenos i time štedi vrijeme.

Jedna zanimljiva činjenica o ovoj opciji je da se datoteka kopira s izvornom veličinom na odredišnom sustavu, ali tijekom procesa prijenosa, veličina je komprimirana kako bi se omogućio brži prijenos. Dakle, kompresija se vrši samo na mreži.

Opća sintaksa:

scp -C [naziv_datoteke] korisničko_ime@korisnički_host:[ciljna_mapa]

Pogledajmo usporedni primjer da bismo razumjeli razliku.

Prijenos bez -C opcije:

gaurav@ubuntu:~$ scp -rv dlink [email protected]:team Izvršavanje: program /usr/bin/ssh host 68.183.82.183, root korisnika, naredba scp -v -r -t tim OpenSSH_7.6p1 Ubuntu-4ubuntu 3, OpenSSL 1.0.2n 7. prosinca 2017. debug1: Čitanje konfiguracijskih podataka /home/trinity/.ssh/config debug1: Čitanje konfiguracijskih podataka /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config redak 19: Primjena opcija za * debug1 : Povezivanje na 68.183.82.183 [68.183.82.183] port 22. debug1: Veza uspostavljena. debug1: client_input_channel_req: kanal 0 rtype exit-status reply 0 debug1: kanal 0: slobodan: klijentska sesija, kanali 1 debug1: fd 0 brisanje O_NONBLOCK debug1: fd 1 brisanje O_NONBLOCK1 Preneseno: poslano 5045 sekunde, primljeno od 5045 sekundi. u sekundi: poslano 100693,7, primljeno 53,7 debug1: Izlazni status 0 gaurav@ubuntu:~$ 

Iz gornjeg izlaza možemo vidjeti da je vrijeme potrebno za prijenos 74,6 sekundi. Pokušat ćemo prenijeti istu datoteku pomoću opcije -C i uočiti razliku.

Prijenos s opcijom -C:

gaurav@ubuntu:~$ scp -Crv dlink [email protected]:team Izvršavanje: program /usr/bin/ssh host 68.183.82.183, korisnik root, naredba scp -v -r -t tim OpenSSH_7.6p1 Ubuntu-4ub 3, OpenSSL 1.0.2n 7. prosinca 2017. debug1: Čitanje konfiguracijskih podataka /home/trinity/.ssh/config debug1: Čitanje konfiguracijskih podataka /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config redak 19: Primjena opcija za * debug1 : Povezivanje na 68.183.82.183 [68.183.82.183] port 22. debug1: Veza uspostavljena. . . webupload.img 100% 1834KB 98.7KB/s 00:18 Načini slanja datoteka: C0664 1877552 router.img Sink: C0664 1877552 router.img router.img 100% 1834KB/s: Šaljemo datoteku C0664 1877552: C0664 1877552 router.img router.img 100% 1833KB/slanje datoteke: 1060 1060. 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-0p-T-07 100% 3666KB 218,5 KB/s 00:16 Sink: E debug1: client_input_channel_req: kanal 0 rtype exit-status reply 0 debug1: kanal 0: slobodan: klijentska sesija, kanali 1 debug1: fd NOgNBLOCK brisanje O de_NOBLOCK Obrisanje Preneseno: poslano 7518864, primljeno 3828 bajtova, za 51,0 sekundi Bajtovi u sekundi: poslano 100245,4, primljeno 51,0 debug1: Izlazni status 0 debug1: komprimiranje odlaznih: neobrađeni podaci 7511925, komprimirani 7513136 7513136 komprimirani 7513136 podataka: komprimirani 1 rabug faktor 1, kompresirani faktor 1 ra7 999, faktor 0,68 gaurav@ubuntu:~$

Ovdje to možemo lako uočiti koristeći -C opcija s scp naredba nam je omogućila komprimiranje datoteke preko mreže i tako se pokazalo kao opcija za uštedu vremena.

Korištenje drugog ssh porta za prijenos datoteka

Tijekom korištenja scp naredba zadani port koji se postavlja je luka 22. Korisnik ima slobodu prilagoditi ovaj izbor porta. Možete koristiti -P (opcija P velikim slovima) s scp naredbu za korištenje porta po svom izboru.

Opća sintaksa:

cp -P [novi_broj_porta] [naziv_datoteke/ime_direktorija] udaljeni_korisnik@host:[odredišna_mapa]

Primjer:

scp -P 4248 dlink [email protected]:tim

Koristeći gornju naredbu, datoteka će se prenijeti na udaljeni poslužitelj. Ali ovaj put će se koristiti luka luka 4248 umjesto zadanog luka 22.

Zaključak

Nakon što smo prošli kroz ovaj vodič, naučili smo o dinamičkoj prirodi scp naredba koja se koristi za prijenos ili kopiranje datoteka s jednog sustava na drugi. Ova se opcija također može koristiti za preuzimanje datoteka ili direktorija s udaljenog poslužitelja. Dakle, možemo zaključiti da scp naredba se pokazuje vrlo korisnom za prijenos datoteka kada morate istovremeno rukovati više od jednog sustava kao i udaljenim poslužiteljima.