Kuinka käyttää SCP-komentoa Linuxissa

Helppo opetusohjelma, jonka avulla voit siirtää tiedostoja etäjärjestelmään Linux-järjestelmästäsi scp-komennolla.

SCP tulee sanoista "Secure Copy". scp on Linuxin tarjoama komentoriviohjelma, joka mahdollistaa tiedostojen ja hakemistojen siirtämisen koneelta toiselle suojaamattoman verkon kautta.

Jos haluat kopioida tiedostoja järjestelmästä toiseen, niin scp voi olla erittäin hyvä vaihtoehto tiedostojen ja hakemistojen turvalliseen siirtoon. Kun kaksi kommunikoivaa laitetta on kytketty samaan verkkoon, käytetään scp tulee mahdolliseksi.

Voit luottaa siihen vahvasti scp komento luottamuksellisuuden ja eheyden vuoksi, sillä siirrettävä tiedosto ja siirrossa käytetty salasana ovat molemmat salattuja. Mitään arkaluontoisia tietoja ei paljasteta, vaikka joku yrittäisikin tiedustella liikennettä siirron aikana.

Tässä opetusohjelmassa näemme erilaisia ​​esimerkkejä scp komento. Tarkastelemme myös joitain usein käytettyjä vaihtoehtoja scp komento.

Aloita scp-komennolla

Käyttämällä scp komennolla voit siirtää tiedostoja/hakemistoja:

  • Paikallisesta koneesta etäkoneeseen.
  • Kahden etäkoneen välissä.
  • Etäkoneesta paikalliseen koneeseen.

Yleinen syntaksi:

scp [Vaihtoehto] [lähdetiedoston_nimi] [käyttäjä@kohteen_isäntä]:kohdekansio

Ymmärrämme tämän komennon perusattribuutit yksitellen.

  • [lähdetiedoston_nimi] Tämä on lähdetiedosto, jonka haluat kopioida.
  • [käyttäjä@kohde_isäntä] Tämä on sen etäjärjestelmän käyttäjätunnus, johon haluat kopioida tiedoston. Etäkoneen IP-osoitetta käytetään myös tässä attribuutissa "@' symboli.
  • [kohdekansio] Tämä on hakemisto, johon haluat tallentaa kopioidun tiedoston.

merkintä: kaksoispiste (:) -symbolia käytetään syntaksissa, koska se erottaa paikalliset ja etäpaikat. Käytämme kaksoispistettä (:) etäjärjestelmän kanssa määrittääksesi hakemiston, johon tiedostot kopioidaan. Jos emme määritä kohdehakemistoa, tiedostot kopioidaan etäjärjestelmän käyttäjän kotihakemistoon.

Käytetyt vaihtoehdot scp

Jotkut suosituimmista vaihtoehdoista, joita käytetään scp komennot on lueteltu alla.

VaihtoehtoKuvaus
-Csallia siirrettävän tiedoston pakkaamisen
-vanna sanallinen tulos
-rkopioida tiedostoja ja hakemistoja rekursiivisesti
-ssäilyttää tiedostojen käyttöoikeudet, tilat ja käyttöajat
-Pmuuta käyttämää oletusporttia scp komento

Näemme esimerkkejä näistä vaihtoehdoista edelleen opetusohjelmassa.

Tiedoston kopioiminen paikallisesta etäjärjestelmään

scp voit siirtää tiedostoja paikallisesta järjestelmästäsi etäjärjestelmään käyttämällä seuraavaa syntaksia. Tämän avulla voit siirtää tai ladata tiedostoja etäpalvelimelle.

Yleinen syntaksi:

scp [tiedoston_nimi] etäkäyttäjä@isäntä:[kohdekansio]

Esimerkki:

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

Tässä esimerkissä kopioimme tiedoston "apache-tomcat-9.0.8.tar.gz" paikallisesta järjestelmästä etäjärjestelmään, jonka IP-osoite on "143.110.178.221".

Etäjärjestelmässä tiedosto kopioidaan nyt hakemistoon "gaurav".

Lähtö:

gaurav@ubuntu:~$ scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav [email protected]:n salasana: apache-tomcat-9.0.8.tar.gz 100% 7589KB 9589KB /s 02:00 gaurav@ubuntu:~$ 

Tarkastetaan tiedoston lähtö etäjärjestelmästä.

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

Siten tiedosto kopioidaan onnistuneesti etäjärjestelmään käyttämällä scp komento.

Useiden tiedostojen kopioiminen etäjärjestelmään

Edellisessä esimerkissä opimme siirtämään tiedoston etäjärjestelmään käyttämällä scp komento. Näemme nyt menetelmän siirtää useita tiedostoja paikallisesta järjestelmästäsi etäjärjestelmään tällä komennolla.

Yleinen syntaksi:

scp [tiedosto 1] [tiedosto 2] [tiedosto n] remote_username@remote_host:[tietyinen hakemisto]

Ymmärrämme tämän yksinkertaisen prosessin esimerkin avulla.

Esimerkki:

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

Tässä useat tiedostot mainitaan komennossa, joka kopioidaan etäjärjestelmään.

Lähtö:

gaurav@ubuntu:~$ scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav [email protected]:n salasana: ath.html/ 100 %s40 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:~$

Etäjärjestelmässä:

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

Kaikki kolme tiedostoa on nyt kopioitu etäjärjestelmään.

Hakemiston kopioiminen etäjärjestelmään

Voit käyttää scp -komento kopioidaksesi hakemiston paikallisesta järjestelmästäsi etäjärjestelmään. Prosessi on samanlainen kuin tiedoston kopioiminen. Voit kopioida myös hakemiston sisällön käyttämällä -r vaihtoehto kanssa scp komento.

The -r -vaihtoehtoa käytetään kopioimaan hakemisto rekursiivisesti. Tämä tarkoittaa, että myös kaikki hakemiston alikansiot ja tiedostot kopioidaan.

Yleinen syntaksi:

scp -r [hakemistopolku] etäkäyttäjänimi@etäisäntä:[kohdehakemisto]

Esimerkki:

scp -r PycharmProjects [email protected]:gaurav

Lähtö:

gaurav@ubuntu:~$ scp -r PycharmProjects [email protected]:gaurav [email protected] salasana: __main__.py 100% 623 7.8KB/s 00:00 __ins 00:00 __ins 0_0_.py __ins s 00:00 check.py 100 % 1430 16,8 kt/s 00:00 konfiguraatio.py 100 % 7125 50,4 kt/s 00:00 show.py 100 % 6289 49,8 kt/s 00:00 download.py 623 % 46 KB/s 00:00 gaurav@ubuntu:~$ 

Käyttämällä -r vaihtoehto kanssa scp komento kopioi kaikki hakemiston alikansiot ja tiedostot paikalliselta koneelta etäjärjestelmään.

Näyttää yksityiskohtaiset tiedot scp-prosessista

Voit käyttää -v (pienet kirjaimet v) -vaihtoehto näyttääksesi tiedot tiedostoista, joita kopioidaan joko etälaitteeseen tai paikalliseen järjestelmääsi. Tämän tyyppistä tulostetta kutsutaan myös monisanaiseksi tulosteeksi.

Kun tätä vaihtoehtoa käytetään, tiedoston täydelliset virheenkorjaustiedot näytetään näytöllä.

Yleinen syntaksi:

scp -v [tiedoston_nimi] käyttäjän_nimi@user_host:

Esimerkki:

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

Lähtö:

gaurav@ubuntu:~$ scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team Suoritetaan: ohjelma /usr/bin/ssh host 159.89.170.11, root, komento scp -v -t tiimi OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7. joulukuuta 2017 debug1: Luetaan kokoonpanotietoja /home/gaurav/.ssh/config debug1: Luetaan määritystietoja /etc/ssh/ssh_config debug1: /etc/sfsh/ rivi 19: Otetaan asetuksia * debug1: Yhdistetään 159.89.170.11 [159.89.170.11] porttiin 22. debug1: Yhteys muodostettu. debug1: key_load_public: Ei tällaista tiedostoa tai hakemistoa debug1: identiteettitiedosto /home/gaurav/.ssh/id_rsa type -1 apache-tomcat-9.0.8.tar.gz 100% 9589KB 99.8KB/s 01:36 debug1: client_req:channel kanava 0 rtyyppi poistumistilan vastaus 0 debug1: kanava 0: ilmainen: asiakasistunto, nchannels 1 debug1: fd 0 tyhjennys O_NONBLOCK debug1: fd 1 tyhjennys O_NONBLOCK Siirretty: lähetetty 9826736, vastaanotettu 4016 tavua sekunnissa, lähetetty 101133.9, vastaanotettu 41.3 debug1: Poistumistila 0 gaurav@ubuntu:~$ 

Tässä tulosteessa voit nähdä, että tiedoston virheenkorjaustiedot näytetään päätteessäsi, kun scp komentoa käytetään kanssa -v vaihtoehto.

Tiedostojen siirto kahden etäisännän välillä

Linuxin avulla voit muodostaa yhteyden useisiin etäisänteihin. Voit siirtää tiedostoja ja hakemistoja kahden etäisännän välillä käyttämällä scp komento.

Yleinen syntaksi:

scp etäkäyttäjä_1@isäntä_1:/[tiedoston_nimi] etäkäyttäjä_2@isäntä_2:[tallennettava kansio]

Syntaksi saattaa tuntua hieman laajemmalta, mutta on melko yksinkertainen. Tässä komennon ensimmäinen osa antaa syötteen etäkäyttäjästä, josta tiedosto kopioidaan. kaksoispiste (:) ja / käytetään määrittämään tiedostonimi tai hakemistonimi, joka siirretään kahden etäkoneen välillä.

Toinen osa antaa tietoja kohteen etäjärjestelmästä, johon tiedosto kopioidaan.

Esimerkki:

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

Täällä kopioimme hakemiston nimeltä "gaurav" rekursiivisesti paikallisesta järjestelmästä etäjärjestelmään. Tiedosto kopioidaan etäjärjestelmän kansioon "tiimi".

Lähtö:

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

Täällä käytimme scp -komento paikallisessa järjestelmässä siirtääksesi Gaurav-nimisen hakemiston etäpalvelimelta toiselle.

Siirrä tiedostoja etäjärjestelmästä paikalliseen järjestelmääsi

Voit helposti siirtää tiedostoja tai hakemistoja etäjärjestelmästä paikalliseen järjestelmääsi käyttämällä scp komento. Yksinkertaisemmin sanottuna voit ladata useita tiedostoja tai hakemistoja etäpalvelimelta paikalliseen järjestelmääsi käyttämällä scp komento.

Yleinen syntaksi:

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

Lähtö:

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

Täällä olen ladannut (kopioinut) tiedoston etäpalvelimelta kotihakemistooni. Siksi olen käyttänyt pistettä (.) määrittääksesi komennon kopioida tiedosto kotihakemistooni.

Näytelähtö:

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

Täällä tiedosto on nyt kopioitu kotihakemistooni etäpalvelimelta.

Samalla tavalla voit ladata useita tiedostoja tai hakemistoja etäpalvelimelta käyttämällä scp komento sopivilla vaihtoehdoilla.

Tiedostojen pakkaaminen nopeuttaaksesi siirtoja

Joskus suurten tiedostojen siirtäminen voi viedä aikaa. Tämä ongelma voidaan korjata käytettäessä scp komennon kanssa -C (isot kirjaimet C) vaihtoehto.

Käyttämällä -C -vaihtoehto, pakkaa suurempikokoiset tiedostot, mikä helpottaa nopeampaa siirtoa ja säästää siten aikaa.

Yksi mielenkiintoinen tosiasia tästä vaihtoehdosta on, että tiedosto kopioidaan alkuperäisessä koossa kohdejärjestelmään, mutta siirtoprosessin aikana koko pakataan nopeamman siirron mahdollistamiseksi. Näin ollen pakkaus tehdään vain verkossa.

Yleinen syntaksi:

scp -C [tiedoston_nimi] käyttäjän_nimi@käyttäjän_isäntä:[kohdekansio]

Katsotaanpa vertailevaa esimerkkiä eron ymmärtämiseksi.

Siirto ilman -C-vaihtoehtoa:

gaurav@ubuntu:~$ scp -rv dlink [email protected]:team Suoritetaan: ohjelma /usr/bin/ssh host 68.183.82.183, user root, komento scp -v -r -t team OpenSSH_7.6p1 Ubuntu-4ubuntu0. 3, OpenSSL 1.0.2n, 7. joulukuuta 2017 debug1: Luetaan määritystietoja /home/trinity/.ssh/config debug1: Luetaan määritystietoja /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config rivi 19: Otetaan käyttöön *debug1-asetuksia : Yhdistetään 68.183.82.183 [68.183.82.183] porttiin 22. debug1: Yhteys muodostettu. 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 Siirretty: 4 sekunti047, 1 vastaanotettu 4 sekunti047s. sekunnissa: lähetetty 100693.7, vastaanotettu 53.7 debug1: Poistumistila 0 gaurav@ubuntu:~$ 

Yllä olevasta lähdöstä voidaan nähdä, että siirtoon kuluva aika on 74,6 sekuntia. Yritämme siirtää saman tiedoston käyttämällä -C-vaihtoehtoa ja tarkkailemme eroa.

Siirto -C-vaihtoehdolla:

gaurav@ubuntu:~$ scp -Crv dlink [email protected]:team Suoritetaan: ohjelma /usr/bin/ssh host 68.183.82.183, user root, komento scp -v -r -t team OpenSSH_7.6p1 Ubuntu-4ubuntu. 3, OpenSSL 1.0.2n, 7. joulukuuta 2017 debug1: Luetaan määritystietoja /home/trinity/.ssh/config debug1: Luetaan määritystietoja /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config rivi 19: Otetaan käyttöön *debug1-asetuksia : Yhdistetään 68.183.82.183 [68.183.82.183] porttiin 22. debug1: Yhteys muodostettu. . . webupload.img 100 % 1834KB 98,7KB/s 00:18 Lähetystiedostomuodot: C0664 1877552 router.img Sink: C0664 1877552 router.img router.img 100 % 1834KB/s 100.:061kt/100.:0:018 tiedostoja 3754103 DSL-2750U-Release-IN-T-01.00.07.zip Altaan: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip DSL-2750U-Release-0.7.pzi-0T 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 ON Clearing 0BLOCKNbug1 Siirretty: lähetetty 7518864, vastaanotettu 3828 tavua, 51,0 sekunnissa Tavua sekunnissa: lähetetty 100245,4, vastaanotettu 51,0 debug1: Poistumistila 0 debug1: pakkaa lähtevä: raakadata 7511925, pakattu 7513136, pakattu 7513136, pakattu 1 inbug: pakkaus 1 999, kerroin 0,68 gaurav@ubuntu:~$

Tässä voimme helposti havaita, että käyttämällä -C vaihtoehto kanssa scp komento on antanut meille mahdollisuuden pakata tiedosto verkon kautta, mikä osoittautuu aikaa säästäväksi vaihtoehdoksi.

Käytä eri ssh-porttia tiedostojen siirtoon

Kun käytät scp -komento käyttöönotettu oletusportti on portti 22. Käyttäjällä on vapaus muokata tätä porttivalintaa. Voit käyttää -P (isoilla kirjaimilla P-vaihtoehto) scp -komento käyttääksesi valitsemaasi porttia.

Yleinen syntaksi:

cp -P [uusi_portin_numero] [tiedoston_nimi/hakemiston_nimi] etäkäyttäjä@isäntä:[kohdekansio]

Esimerkki:

scp -P 4248 dlink [email protected]:team

Yllä olevaa komentoa käyttämällä tiedosto siirretään etäpalvelimelle. Mutta tällä kertaa käytetty portti tulee olemaan portti 4248 oletusarvon sijaan portti 22.

Johtopäätös

Tämän opetusohjelman läpi käytyämme olemme oppineet sen dynaamisesta luonteesta scp -komentoa käytetään tiedostojen siirtämiseen tai kopioimiseen järjestelmästä toiseen. Tätä vaihtoehtoa voidaan käyttää myös tiedostojen tai hakemistojen lataamiseen etäpalvelimelta. Näin ollen voimme päätellä, että scp komento on erittäin hyödyllinen tiedostojen siirrossa, kun joudut käsittelemään useampaa kuin yhtä järjestelmää sekä etäpalvelimia samanaikaisesti.