10 SCP komandas failu/mapju pārsūtīšanai Linux


Linux administratoram jāpārzina CLI vide. Tā kā GUI režīms Linux serveros nav bieži instalējams. SSH var būt vispopulārākais protokols, kas ļauj Linux administratoram drošā veidā pārvaldīt serverus, izmantojot attālo. Iebūvēta ar SSH komandu ir SCP komanda. SCP tiek izmantots, lai drošā veidā kopētu failu (-us) starp serveriem.

Tālāk norādītā komanda tiks nolasīta kā “kopēt avota_datuma_nosaukumu” mapē “galamērķa_mape” vietnē “galamērķa_hosts”, izmantojot “lietotājvārda kontu”.

scp source_file_name [email _host:destination_folder

SCP komandā ir daudz parametru, kurus varat izmantot. Šeit ir parametri, kas var būt noderīgi ikdienas lietošanai.

Sniedziet detalizētu informāciju par SCP procesu, izmantojot parametru -v

SCP pamata komanda bez parametra kopēs failus fonā. Lietotājs neredzēs neko, ja vien process nav izdarīts vai parādās kāda kļūda. Lai drukāšanas informāciju ekrānā drukātu, varat izmantot parametru “-v”. Tas var palīdzēt atkļūdot savienojuma, autentifikācijas un konfigurācijas problēmas.

[email  ~/Documents $ scp -v Label.pdf [email :.
Executing: program /usr/bin/ssh host 202.x.x.x, user mrarianto, command scp -v -t .
OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 202.x.x.x [202.x.x.x] port 22.
debug1: Connection established.
debug1: Host '202.x.x.x' is known and matches the RSA host key.
debug1: Found key in /home/pungki/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: Next authentication method: password
[email 's password:
debug1: Authentication succeeded (password).
Authenticated to 202.x.x.x ([202.x.x.x]:22).
Sending file modes: C0770 3760348 Label.pdf
Sink: C0770 3760348 Label.pdf
Label.pdf 100% 3672KB 136.0KB/s 00:27
Transferred: sent 3766304, received 3000 bytes, in 65.2 seconds
Bytes per second: sent 57766.4, received 46.0
debug1: Exit status 0

No sākotnējiem failiem norādiet modifikācijas laikus, piekļuves laikus un režīmus

Šajā ziņā jums palīdzēs parametrs “-p”. Aptuvenais laiks un savienojuma ātrums parādīsies ekrānā.

[email  ~/Documents $ scp -p Label.pdf [email :.
[email 's password:
Label.pdf 100% 3672KB 126.6KB/s 00:29

Ātrāk veiciet failu pārsūtīšanu, izmantojot parametru -C

Viens no parametriem, kas var ātrāk pārsūtīt failu, ir parametrs “-C”. Parametrs “-C” saspiedīs jūsu failus, atrodoties ceļā. Unikālā lieta ir saspiešana notiek tikai tīklā. Kad fails ir nonācis galamērķa serverī, tas atgriezīsies sākotnējā izmērā tāpat kā pirms saspiešanas.

Apskatiet šīs komandas. Tas izmanto vienu 93 Mb lielu failu.

[email  ~/Documents $ scp -pv messages.log [email :.
Executing: program /usr/bin/ssh host 202.x.x.x, user mrarianto, command scp -v -p -t .
OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 202.x.x.x [202.x.x.x] port 22.
debug1: Connection established.
debug1: identity file /home/pungki/.ssh/id_rsa type -1
debug1: Found key in /home/pungki/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: Trying private key: /home/pungki/.ssh/id_rsa
debug1: Next authentication method: password
[email 's password:
debug1: Authentication succeeded (password).
Authenticated to 202.x.x.x ([202.x.x.x]:22).
debug1: Sending command: scp -v -p -t .
File mtime 1323853868 atime 1380425711
Sending file timestamps: T1323853868 0 1380425711 0
messages.log 100% 93MB 58.6KB/s 27:05
Transferred: sent 97614832, received 25976 bytes, in 1661.3 seconds
Bytes per second: sent 58758.4, received 15.6
debug1: Exit status 0

Kopējot failu bez parametra “-C”, rezultāts būs 1661,3 sekunde. Jūs varat salīdzināt rezultātu ar komandu zem kuras, izmantojot parametru “-C”.

[email  ~/Documents $ scp -Cpv messages.log [email :.
Executing: program /usr/bin/ssh host 202.x.x.x, user mrarianto, command scp -v -p -t .
OpenSSH_6.0p1 Debian-3, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 202.x.x.x [202.x.x.x] port 22.
debug1: Connection established.
debug1: identity file /home/pungki/.ssh/id_rsa type -1
debug1: Host '202.x.x.x' is known and matches the RSA host key.
debug1: Found key in /home/pungki/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: Next authentication method: publickey
debug1: Trying private key: /home/pungki/.ssh/id_rsa
debug1: Next authentication method: password
[email 's password:
debug1: Enabling compression at level 6.
debug1: Authentication succeeded (password).
Authenticated to 202.x.x.x ([202.x.x.x]:22).
debug1: channel 0: new [client-session]
debug1: Sending command: scp -v -p -t .
File mtime 1323853868 atime 1380428748
Sending file timestamps: T1323853868 0 1380428748 0
Sink: T1323853868 0 1380428748 0
Sending file modes: C0600 97517300 messages.log
messages.log 100% 93MB 602.7KB/s 02:38
Transferred: sent 8905840, received 15768 bytes, in 162.5 seconds
Bytes per second: sent 54813.9, received 97.0
debug1: Exit status 0
debug1: compress outgoing: raw data 97571111, compressed 8806191, factor 0.09
debug1: compress incoming: raw data 7885, compressed 3821, factor 0.48

Kā redzat, kad izmantojat saspiešanu, pārsūtīšanas process tiek veikts 162,5 sekundēs. Tas ir 10 reizes ātrāk nekā parametra “-C” neizmantošana. Ja tīklā kopējat daudz failu, parametrs “-C” palīdzēs samazināt kopējo nepieciešamo laiku.

Lieta, kas mums jāievēro, ka saspiešanas metode nedarbosies nevienā failā. Kad avota fails jau ir saspiests, uzlabojumus tajā neatradīsit. Parametri “-C” neietekmēs tādus failus kā .zip, .rar, attēlus un .iso failus.

Lai šifrētu failus, atlasiet citu šifru

Pēc noklusējuma SCP failu šifrēšanai izmanto “AES-128”. Ja vēlaties to mainīt, lai to šifrētu, varat izmantot parametru “-c”. Apskatiet šo komandu.

[email  ~/Documents $ scp -c 3des Label.pdf [email :.

[email 's password:
Label.pdf 100% 3672KB 282.5KB/s 00:13

Virs komandas sakiet SCP, lai faila šifrēšanai izmantotu 3des algoritmu. Lūdzu, uzmanieties, lai šis parametrs, izmantojot “-c”, nevis “-C”.

Joslas platuma izmantošanas ierobežošana

Vēl viens noderīgs parametrs ir “-l” parametrs. Parametrs “-l” ierobežos izmantojamo joslas platumu. Tas būs noderīgi, ja veicat automatizācijas skriptu, lai kopētu daudz failu, taču nevēlaties, lai joslas platumu iztukšotu SCP process.

[email  ~/Documents $ scp -l 400 Label.pdf [email :.

[email 's password:
Label.pdf 100% 3672KB 50.3KB/s 01:13

400 vērtība aiz “-l” parametra nozīmē, ka mēs ierobežojam joslas platumu SCP procesam tikai 50 KB/s. Jāatceras, ka joslas platums ir norādīts kilobitos/s (kbps). Tas nozīmē, ka 8 biti ir vienādi ar 1 baitu.

Kamēr SCP tiek skaitīts kilobaiti/s (KB/s). Tātad, ja vēlaties ierobežot joslas platumu, lai SCP maksimums būtu tikai 50 KB/s, jums tas jāiestata 50 x 8 = 400.

Norādiet konkrētu portu, ko izmantot ar SCP

Parasti SCP kā noklusējuma portu izmanto 22. portu. Bet drošības apsvērumu dēļ ostu var mainīt uz citu. Piemēram, mēs izmantojam 2249. portu. Tad komandai jābūt šādai.

[email  ~/Documents $ scp -P 2249 Label.pdf [email :.

[email 's password:
Label.pdf 100% 3672KB 262.3KB/s 00:14

Pārliecinieties, ka tajā tiek izmantots lielais burts “P”, nevis “p”, jo “p” jau tiek izmantots saglabātajiem laikiem un režīmiem.

Rekursīvi kopējiet failus direktorijā

Dažreiz mums ir nepieciešams kopēt direktoriju un visus tajā esošos failus/direktorijus. Būs labāk, ja mēs to varēsim izdarīt ar 1 komandu. SCP atbalsta šo scenāriju, izmantojot parametru “-r”.

[email  ~/Documents $ scp -r documents [email :.

[email 's password:
Label.pdf 100% 3672KB 282.5KB/s 00:13
scp.txt 100% 10KB 9.8KB/s 00:00

Kad kopēšanas process ir pabeigts, galamērķa serverī atradīsit direktoriju ar nosaukumu “dokumenti” ar visiem tā failiem. Automātiski tiek izveidota mape “dokumenti”.

Atspējot progresa mērītāju un brīdinājuma/diagnostikas ziņojumu

Ja izvēlaties neredzēt progresa mērītāju un brīdinājuma/diagnostikas ziņojumus no SCP, varat tos atspējot, izmantojot parametru “-q”. Lūk, piemērs.

[email  ~/Documents $ scp -q Label.pdf [email :.

[email 's password:
[email  ~/Documents $

Kā redzat, pēc paroles ievadīšanas nav informācijas par SCP procesu. Kad process būs pabeigts, atkal tiks parādīta uzvedne.

Kopējiet failus, izmantojot SCP, izmantojot starpniekserveri

Starpniekserveri parasti izmanto biroja vidē. Parasti SCP nav konfigurēts starpniekserveris. Kad jūsu vide izmanto starpniekserveri, jums jāpasaka SCP sazināties ar starpniekserveri.

Šis ir scenārijs. Starpniekservera adrese ir 10.0.96.6 un starpniekservera ports ir 8080. Starpniekserveris arī ieviesa lietotāja autentifikāciju. Pirmkārt, jums jāizveido fails “~/.ssh/config”. Otrkārt, jūs ievietojat šo komandu tajā.

ProxyCommand /usr/bin/corkscrew 10.0.96.6 8080 %h %p ~/.ssh/proxyauth

Tad jums jāizveido fails “~/.ssh/proxyauth”, kas satur.

myusername:mypassword

Pēc tam jūs varat darīt SCP caurspīdīgi, kā parasti.

Lūdzu, ņemiet vērā, ka korķa skrūve, iespējams, vēl nav instalēta jūsu sistēmā. Manā Linux Mint vispirms tas jāinstalē, izmantojot standarta Linux Mint instalēšanas procedūru.

$ apt-get install corkscrew

Citās yum balstītās sistēmās lietotāji var uzstādīt korķa skrūvi, izmantojot šādu komandu yum.

# yum install corkscrew

Vēl viena lieta, ka, tā kā failā “~/.ssh/proxyauth” ir jūsu “lietotājvārds” un “parole” skaidra teksta formātā, lūdzu, pārliecinieties, ka failam varat piekļūt tikai jūs.

Atlasiet citu failu ssh_config

Mobilo sakaru lietotājam, kurš bieži pārslēdzas no uzņēmuma tīkla uz publisko tīklu, būs grūti vienmēr mainīt iestatījumus SCP. Labāk, ja mēs varam ievietot citu ssh_config failu atbilstoši savām vajadzībām.

Starpniekserveri izmanto uzņēmuma tīklā, bet ne publiskajā tīklā, un jūs regulāri pārslēdzaties tīklā.

[email  ~/Documents $ scp -F /home/pungki/proxy_ssh_config Label.pdf

[email :.
[email 's password:
Label.pdf 100% 3672KB 282.5KB/s 00:13

Pēc noklusējuma “ssh_config” fails katram lietotājam tiks ievietots “~/.ssh/config”. Izveidojot konkrētu failu “ssh_config”, kas ir saderīgs ar starpniekserveri, jums būs vieglāk pārslēgties starp tīkliem.

Kad esat uzņēmuma tīklā, varat izmantot parametru “-F”. Kad esat publiskajā tīklā, varat izlaist “-F” parametru.

Tas viss ir par SCP. Lai iegūtu sīkāku informāciju, varat skatīt SCP rokasgrāmatas. Lūdzu, nekautrējieties atstāt komentārus un ieteikumus.