Egy egyszerű oktatóanyag, amely segít a fájlok átvitelében egy távoli rendszerre a Linux rendszerről az scp paranccsal.
Az SCP a „Secure Copy” rövidítése. scp
a Linux által kínált parancssori segédprogram, amely lehetővé teszi fájlok és könyvtárak átvitelét egyik gépről a másikra nem biztonságos hálózaton keresztül.
Ha fájlokat szeretne másolni egyik rendszerről a másikra, akkor scp
nagyon jó lehetőség lehet a fájlok és könyvtárak biztonságos átvitelére. Ha a két kommunikáló gép ugyanazon a hálózaton keresztül kapcsolódik, akkor a scp
lehetségessé válik.
Erősen támaszkodhat a scp
parancsot a titkosság és integritás érdekében, mivel az átvitel alatt álló fájl és az átvitelhez használt jelszó egyaránt titkosított. Nem fognak érzékeny információk megjelenni még akkor sem, ha valaki megpróbál lesni a forgalomról, miközben ez az átvitel folyamatban van.
Ebben az oktatóanyagban különböző példákat fogunk látni a scp
parancs. Megnézünk néhány gyakran használt opciót is a scp
parancs.
Kezdő lépések az scp paranccsal
Használni a scp
paranccsal átvihet fájlokat/könyvtárakat:
- A helyi gépről egy távoli gépre.
- Két távoli gép között.
- Távoli gépről a helyi gépre.
Általános szintaxis:
scp [Opció] [forrásfájl_neve] [felhasználó@cél_gazda]:cél_mappa
Nézzük meg egyenként ennek a parancsnak az alapvető attribútumait.
- [forrás_fájl_neve] Ez a másolni kívánt forrásfájl.
- [user@destination_Host] Ez annak a távoli rendszernek a felhasználóneve, ahová a fájlt másolni szeretné. Ebben az attribútumban a távoli gép IP-címe is szerepel a „
@
' szimbólum. - [cél mappa] Ez az a könyvtár, ahová a másolt fájlt menteni szeretné.
Jegyzet: A vastagbél (:
) szimbólumot használunk a szintaxisban, mivel különbséget tesz a helyi és a távoli hely között. A kettőspontot használjuk (:
) a távoli rendszerrel, hogy megadja azt a könyvtárat, ahová a fájlokat másolni kell. Ha nem adjuk meg a célkönyvtárat, akkor a fájlok a távoli rendszerfelhasználó saját könyvtárába másolódnak.
Használt opciók scp
Néhány legnépszerűbb opció, amelyet a scp
parancsot az alábbiakban felsoroljuk.
választási lehetőség | Leírás |
-C | lehetővé teszi az átvitt fájl tömörítését |
-v | adja meg a bőbeszédű kimenetet |
-r | fájlok és könyvtárak rekurzív másolása |
-o | megőrzi a fájlok engedélyeit, módjait és hozzáférési idejét |
-P | módosítsa a által használt alapértelmezett portot scp parancs |
Az oktatóanyagban további példákat láthatunk ezekre a lehetőségekre.
Fájl másolása helyiről távoli rendszerre
scp
lehetővé teszi a fájlok átvitelét a helyi rendszerről egy távoli rendszerre a következő szintaxis használatával. Ez lehetővé teszi a fájlok átvitelét vagy feltöltését egy távoli szerverre.
Általános szintaxis:
scp [fájlnév] távoli_felhasználó@gazdagép:[célmappa]
Példa:
scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav
Ebben a példában egy „apache-tomcat-9.0.8.tar.gz” fájlt másolunk a helyi rendszerről a „143.110.178.221” IP-című távoli rendszerre.
A távoli rendszeren a fájl most a „gaurav” nevű könyvtárba lesz másolva.
Kimenet:
gaurav@ubuntu:~$ scp apache-tomcat-9.0.8.tar.gz [email protected]:gaurav [email protected] jelszava: apache-tomcat-9.0.8.tar.gz 100% 798 KB /s 02:00 gaurav@ubuntu:~$
Ellenőrizzük a fájl kimenetét a távoli rendszeren.
root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav# ls apache-tomcat-9.0.8.tar.gz root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav#
Így a fájl sikeresen átmásolódik a távoli rendszerre a scp
parancs.
Több fájl másolása távoli rendszerre
Az előző példában megtanultuk a fájl átvitelét a távoli rendszerre a scp
parancs. Most látni fogjuk a módszert, amellyel több fájlt vihetünk át a helyi rendszerről egy távoli rendszerre ezzel a paranccsal.
Általános szintaxis:
scp [fájl 1] [fájl 2] [fájl n] remote_username@remote_host:[specifikus könyvtár]
Értsük meg ezt az egyszerű folyamatot egy példán keresztül.
Példa:
scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav
Itt több fájl szerepel a távoli rendszerre másolandó parancsban.
Kimenet:
gaurav@ubuntu:~$ scp ath.html abc.txt ppa-purge_0.2.8+bzr56_all.deb [email protected]:gaurav [email protected] jelszava: 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:~$
A távoli rendszeren:
root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav# ls -l összesen 9800 -rw-r--r-- 1 gyökérgyökér 0 október 5. 08:58 abc.txt -rw-r-- r-- 1 gyökérgyökér 9818695 október 5. 08:35 apache-tomcat-9.0.8.tar.gz -rw-r--r-- 1 gyökérgyökér 204057 október 5. 08:58 ath.html -rw-r-- r-- 1 gyökér gyökér 4360. október 5. 08:58 ppa-purge_0.2.8+bzr56_all.deb root@ubuntu-s-1vcpu-1gb-blr1-01:~/gaurav#
Mindhárom fájl átmásolásra került a távoli rendszerre.
Könyvtár másolása a távoli rendszerre
Te tudod használni scp
paranccsal átmásolhat egy könyvtárat a helyi rendszerről a távoli rendszerre. A folyamat hasonló a fájl másolásához. A címtár tartalmának másolásához is használhatja a -r
opcióval a scp
parancs.
A -r
Az opció egy könyvtár rekurzív másolására szolgál. Ez azt jelenti, hogy a könyvtárban lévő összes almappa és fájl is másolásra kerül.
Általános szintaxis:
scp -r [könyvtár elérési útja] távoli_felhasználónév@remote_host:[célkönyvtár]
Példa:
scp -r PycharmProjects [email protected]:gaurav
Kimenet:
gaurav@ubuntu:~$ scp -r PycharmProjects [email protected]:gaurav [email protected] jelszava: __main__.py 100% 623 7.8KB/s 00:00 __ins 0 KB/0 00_0_.py __ins. . 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 623% 468 KB/s 00:00 gaurav@ubuntu:~$
Használni a -r
opcióval a scp
parancs átmásolja a könyvtárban található összes almappát és fájlt a helyi gépről a távoli rendszerre.
Részletes információk megjelenítése az scp folyamatról
Használhatja a -v
(kisbetűs v
) lehetőséget, hogy megjelenítse a távoli vagy a helyi rendszeren másolt fájlokkal kapcsolatos információkat. Ezt a fajta kimenetet bőbeszédű kimenetnek is nevezik.
Ha ezt az opciót használja, a fájl teljes hibakeresési információja megjelenik a képernyőn.
Általános szintaxis:
scp -v [fájl_név] felhasználónév@felhasználói_gazda:
Példa:
scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team
Kimenet:
gaurav@ubuntu:~$ scp -v apache-tomcat-9.0.8.tar.gz [email protected]:team Végrehajtás: program /usr/bin/ssh host 159.89.170.11, root felhasználó, parancs scp -v -t csapat OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n, 2017. december 7. debug1: Konfigurációs adatok olvasása /home/gaurav/.ssh/config debug1: Konfigurációs adatok olvasása /etc/ssh/ssh_config debug1: /ssh_sconfsh/ 19. sor: A * debug1 opciók alkalmazása: Csatlakozás a 159.89.170.11 [159.89.170.11] 22-es porthoz. debug1: A kapcsolat létrejött. debug1: key_load_public: Nincs ilyen fájl vagy könyvtár debug1: azonosságfájl /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 csatorna 0 rtípus kilépési állapot válasz 0 debug1: csatorna 0: ingyenes: kliens-munkamenet, nchannels 1 debug1: fd 0 törlés O_NONBLOCK debug1: fd 1 törlés O_NONBLOCK Áthelyezve: elküldve 9826736, fogadva 4016 bájt/másodperc. 101133.9, kapott 41.3 debug1: Kilépési állapot 0 gaurav@ubuntu:~$
Itt, a kimenetben láthatja, hogy a fájl hibakeresési információi megjelennek a terminálon, amikor a scp
parancsot a -v
választási lehetőség.
Fájlok átvitele két távoli gazdagép között
A Linux lehetővé teszi, hogy több távoli gazdagéphez csatlakozzon. Fájlokat és könyvtárakat vihet át két távoli gazdagép között a segítségével scp
parancs.
Általános szintaxis:
scp távoli_felhasználó_1@gazda_1:/[fájlnév] távoli_felhasználó_2@gazda_2:[mentendő_mappa]
A szintaxis kissé tágabbnak tűnhet, de nagyon egyszerű. Itt a parancs első része megadja a bemenetet a távoli felhasználóról, ahonnan a fájlt másolni kell. kettőspont (:) és /
A két távoli gép között átvinni kívánt fájlnév vagy könyvtárnév megadására szolgál.
A második rész információt nyújt a cél távoli rendszerről, ahová a fájlt másolni kell.
Példa:
scp -r [email protected]:gaurav [email protected]:/csapat
Itt egy „gaurav” nevű könyvtárat fogunk rekurzívan átmásolni a helyi rendszerről egy távoli rendszerre. A fájl a távoli rendszer „team” mappájába másolódik.
Kimenet:
gaurav@ubuntu:~$ scp -r [email protected]:/gaurav [email protected]:/team [email protected] jelszava: 1.py 100% 134 261.3KB/s változók 0.183.82.183 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:~$
Itt használtuk a scp
parancs a helyi rendszeren a „gaurav” nevű könyvtár átviteléhez egyik távoli szerverről a másikra.
Fájlok átvitele a távoli rendszerről a helyi rendszerre
Könnyen átviheti a fájlokat vagy könyvtárakat a távoli rendszerről a helyi rendszerre a segítségével scp
parancs. Egyszerűbben fogalmazva, több fájlt vagy könyvtárat tölthet le a távoli kiszolgálóról a helyi rendszerére a segítségével scp
parancs.
Általános szintaxis:
scp remote_username@user_host:/files/file.txt /[folder_of_local_system]
Kimenet:
gaurav@ubuntu:~$ scp [email protected]:how.txt . [email protected] jelszava: how.txt 100% 11 0.1KB/s 00:00 gaurav@ubuntu:~$
Itt letöltöttem (másoltam) a fájlt a távoli szerverről a saját könyvtáramba. Ezért használtam a pontot (.
) megadásához a parancsban, hogy másolja a fájlt a saját könyvtáramba.
Minta kimenet:
gaurav@ubuntu:~$ ls -l how.txt -rw-r--r-- 1 gaurav gaurav 11. október 6. 09:49 how.txt gaurav@ubuntu:~$
Itt a fájl most a saját könyvtáramba másolódik a távoli szerverről.
Ugyanígy több fájlt vagy könyvtárat is letölthet a távoli szerverről a scp
parancsot a megfelelő opciókkal.
Fájlok tömörítése a gyorsabb átvitel érdekében
Néha a nagy fájlok átvitele időigényes lehet. Ez a probléma a scp
parancsot a -C
(nagybetűs C
) választási lehetőség.
Használni a -C
opciót, tömöríti a nagyobb méretű fájlokat, ami megkönnyíti a gyorsabb átvitelt, és így időt takarít meg.
Egy érdekes tény ezzel az opcióval kapcsolatban, hogy a fájl eredeti méretével másolódik a célrendszerre, de az átviteli folyamat során a méret tömörítésre kerül a gyorsabb átvitel érdekében. Így a tömörítés csak a hálózaton történik.
Általános szintaxis:
scp -C [fájl_név] felhasználónév@felhasználói_gazda:[célmappa]
Nézzünk egy összehasonlító példát, hogy megértsük a különbséget.
Átvitel -C opció nélkül:
gaurav@ubuntu:~$ scp -rv dlink [email protected]:team Végrehajtás: program /usr/bin/ssh host 68.183.82.183, root felhasználó, parancs scp -v -r -t csapat OpenSSH_7.6p1 Ubuntu-4ubuntu0. 3, OpenSSL 1.0.2n, 2017. december 7. debug1: Konfigurációs adatok olvasása /home/trinity/.ssh/config debug1: Konfigurációs adatok olvasása /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config 19. sor: A *debug1 beállításainak alkalmazása : Csatlakozás a 68.183.82.183 [68.183.82.183] 22-es porthoz. debug1: A kapcsolat létrejött. 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 Átvitel: 65 beküldve 04tes által 6 s. másodpercenként: 100693.7 küldve, 53.7 fogadott debug1: Kilépési állapot 0 gaurav@ubuntu:~$
A fenti kimenetből láthatjuk, hogy az átvitelhez szükséges idő 74,6 másodperc. Megpróbáljuk ugyanazt a fájlt átvinni a -C kapcsolóval, és megfigyeljük a különbséget.
Átvitel -C opcióval:
gaurav@ubuntu:~$ scp -Crv dlink [email protected]:team Végrehajtás: program /usr/bin/ssh host 68.183.82.183, root felhasználó, parancs scp -v -r -t team OpenSSH_7.6p1 Ubuntu-4ubuntu. 3, OpenSSL 1.0.2n, 2017. december 7. debug1: Konfigurációs adatok olvasása /home/trinity/.ssh/config debug1: Konfigurációs adatok olvasása /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config 19. sor: A *debug1 beállításainak alkalmazása : Csatlakozás a 68.183.82.183 [68.183.82.183] 22-es porthoz. debug1: A kapcsolat létrejött. . . webupload.img 100% 1834KB 98,7KB/s 00:18 Fájlküldési módok: C0664 1877552 router.img Nyelő: C0664 1877552 router.img router.img 100% 1834KB/s 100.:0:01834KB/s fájlmód 3754103 DSL-2750U-Release-IN-T-01.00.07.zip Mosogató: C0664 3754103 DSL-2750U-Release-IN-T-01.00.07.zip DSL-2750U-Release-0.7.0pziT A Átvive: elküldve 7518864, fogadva 3828 bájtot, 51.0 másodperc alatt Bájt/másodperc: elküldve 100245.4, fogadva 51.0 debug1: Kilépési állapot 0 debug1: kimenő tömörítés: nyers adatok 7511925, tömörítve 7513136, tömörítés1, debug. tömörítés1, de com4 999, 0,68-as faktor gaurav@ubuntu:~$
Itt könnyen megfigyelhetjük, hogy a -C
opcióval a scp
parancs lehetővé tette a fájl tömörítését a hálózaton keresztül, így időtakarékos lehetőségnek bizonyult.
Másik ssh port használata a fájlátvitelhez
Használata közben a scp
parancs a telepített alapértelmezett port a 22-es port
. A felhasználó szabadon testreszabhatja a portválasztást. Használhatja a -P
(nagybetűs P opció) a scp
parancsot a választott port használatához.
Általános szintaxis:
cp -P [új_portszám] [fájlnév/könyvtárnév] távoli_felhasználó@host:[célmappa]
Példa:
scp -P 4248 dlink [email protected]:team
A fenti paranccsal a fájl átkerül a távoli szerverre. De ezúttal a használt port lesz 4248-as port
az alapértelmezett helyett 22-es port
.
Következtetés
Miután végignéztük ezt az oktatóanyagot, megismertük a dinamikus természetét scp
parancs fájlok egyik rendszerről a másikra történő átvitelére vagy másolására szolgál. Ez a lehetőség fájlok vagy könyvtárak letöltésére is használható a távoli szerverről. Ebből arra következtethetünk scp
parancs nagyon hasznosnak bizonyul a fájlátvitelhez, amikor egynél több rendszert és távoli kiszolgálót kell kezelnie egyszerre.