Si të përdorni komandën scp në Linux


Komanda scp e bën kopjimin e skedarëve ndërmjet kompjuterëve Linux të lehtë dhe të sigurt. Përdor sigurinë SSH, por më e rëndësishmja, është e thjeshtë. Nëse mund të përdorni cp, mund të përdorni scp.

Protokolli i Kopjimit të Sigurt dhe scp

Le të përcaktojmë disa terma: ka SCP dhe ka scp. Shkronja e madhe SCP qëndron për Protokollin e Kopjes së Sigurt. Shkronja e vogël scp qëndron për cp të sigurt. Me fjalë të tjera, SCP është një protokoll dhe scp është një program.

scp u krijua për të qenë një mjet i sigurt dhe i sigurt për kopjimin e skedarëve midis kompjuterëve Linux të largët. Ai përdor SSH për të krijuar lidhje të sigurta. SSH, ose guaska e sigurt, është një protokoll rrjeti kriptografik që përdoret shpesh për të hyrë dhe hyrë në kompjuterët Linux të largët. Në shpërndarjet Linux, funksionaliteti SSH ofrohet nga OpenSSH.

SCP është disi e gjatë në dhëmb dhe shqetësimet janë transmetuar në lidhje me përdorimin e tij në ditët e sotme. Që nga versioni 8.8 i OpenSSH, SCP është konsideruar i vjetëruar. Implementimet moderne të scp si parazgjedhje përdorin Protokollin e Sigurt të Transferimit të Skedarit. SSH përdoret ende për lidhjen e sigurt, por transferimet e skedarëve trajtohen nga SFTP. E gjithë kjo është e padukshme dhe ndodh në mënyrë magjike nën kapuç, dhe sintaksa scp ka mbetur e njëjtë.

Programi rsync preferohet mbi scp , por mund të hasni një kompjuter që nuk ka të instaluar rsync dhe për të cilin nuk e keni keni privilegje rrënjësore që do të thotë se nuk mund të vazhdoni dhe ta instaloni atë. Për kopjimin e skedarëve nga kompjuteri në kompjuter në një rrjet të pavarur, scp është shumë mirë. Që scp të funksionojë, duhet të keni SSH që funksionon në të gjithë kompjuterët ku do të kopjoni dhe nga.

Për të parë versionin e OpenSSH të instaluar në kompjuterin tuaj, shkruani:

ssh -V

Kopjimi i një skedari të vetëm

Ashtu si komanda standarde cp, scp kopjon skedarët nga vendndodhja burimi në vendndodhjen objektiv. Për të kopjuar një skedar në një kompjuter të largët, duhet të dini adresën IP ose emrin e rrjetit të kompjuterit në distancë. Ju gjithashtu duhet të keni kredencialet për një llogari përdoruesi që ka privilegje shkrimi për vendndodhjen ku po dërgoni skedarin.

Për të dërguar një skedar të quajtur sample.txt në një kompjuter të quajtur fedora-34 në rrjetin lokal, sintaksa është:

scp ./sample.txt dave@fedora-34.local:/home/dave/Downloads/

Komanda përbëhet nga:

  • scp: Komanda scp
  • ./sample.txt: Skedari që do të dërgojmë. Kjo është në drejtorinë aktuale.
  • dave@: Llogaria e përdoruesit në kompjuterin e largët ku do të dërgojmë skedarin.
  • fedora-34.local: Emri i rrjetit të kompjuterit në distancë.
  • :/home/dave/Downloads/: Vendndodhja ku do të kopjoni skedarin në kompjuterin e largët. Vini re dy pika “:” që ndan emrin e kompjuterit dhe shtegun.

Do t'ju kërkohet të vendosni fjalëkalimin për llogarinë në kompjuterin e largët dhe më pas skedari kopjohet.

Nëse dëshironi që skedari të ketë një emër tjetër në kompjuterin në distancë, mund të shtoni një emër skedari në shtegun e synuar. Për të kopjuar të njëjtin skedar dhe për ta quajtur different-file.txt, përdorni këtë sintaksë:

scp ./sample.txt dave@fedora-34.local:/home/dave/Downloads/different-file.txt

Komanda scp do të mbishkruajë në heshtje skedarët ekzistues, prandaj kini kujdes kur jeni duke kopjuar skedarë. Nëse një skedar tashmë ekziston në kompjuterin e synuar me të njëjtin emër si skedari që po kopjoni, ai do të mbishkruhet dhe humbet.

Nëse kompjuteri i synuar nuk po përdor portën e paracaktuar SSH prej 22, mund të përdorni opsionin -P (numri i portit) për të dhënë numrin e duhur të portës.

Marrja e një skedari të vetëm

Për të kopjuar një skedar nga një server në distancë, thjesht vendosni serverin në distancë si burim dhe vendosni shtegun lokal ku dëshironi që skedari të kopjohet si objektiv. Ne do të kopjojmë një skedar të quajtur development-plan.md nga kompjuteri i largët në drejtorinë aktuale në kompjuterin lokal.

scp dave@fedora-34.local:/home/dave/Downloads/development-plan.md .

Nëse shtoni një emër skedari në shtegun lokal, skedari kopjohet dhe i jepet ai emër.

scp dave@fedora-34.local:/home/dave/Downloads/development-plan.md ./dp-1.md

Skedari kopjohet, por riemërtohet në emrin e skedarit tonë të specifikuar.

ls -hl *.md

Kopjimi i shumë skedarëve

Kopjimi i shumë skedarëve në secilin drejtim është i lehtë. Ju mund të listoni sa më shumë skedarë burimor që dëshironi. Këtu, ne po kopjojmë dy skedarë shënimi dhe një skedar CSV.

scp ./dp-1.md ./dp-2.md ./dp-3.csv dave@fedora-34.local:/home/dave/Downloads/

Të tre skedarët kopjohen në kompjuterin në distancë. Ju gjithashtu mund të përdorni shkronja të egra. Kjo komandë bën saktësisht të njëjtën gjë si komanda e fundit.

scp ./dp. dave@fedora-34.local:/home/dave/Downloads/

Kopjimi rekurziv i drejtorive

Opsioni -r (rekurziv) ju lejon të kopjoni të gjitha pemët e drejtorive me një komandë të vetme. Ne kemi vendosur dy skedarë në një direktori të quajtur të dhëna dhe kemi krijuar një direktori të quajtur CSV brenda drejtorisë të dhëna. Ne vendosëm një skedar CSV në drejtorinë data/CSV.

Kjo komandë kopjon skedarët dhe rikrijon strukturën e drejtorisë në kompjuterin e largët.

scp -r ./data dave@fedora-34.local:/home/dave/Downloads/

Kopjimi i skedarëve ndërmjet serverëve në distancë

Ju madje mund të udhëzoni scp të kopjojë skedarët nga një server në distancë në tjetrin. Sintaksa është mjaft e thjeshtë. Ju jepni emrin e llogarisë dhe adresën e rrjetit të serverit burim dhe emrin e llogarisë dhe adresën e rrjetit të serverit të synuar. Skedarët kopjohen nga serveri burim dhe kopjohen në vendndodhjen në serverin e synuar.

Megjithëse sintaksa është e thjeshtë, të sigurohet se gjithçka tjetër është në vend kërkon pak më shumë mendim. Natyrisht, vendndodhja ku po përpiqeni të kopjoni skedarët në serverin e largët duhet të jetë i aksesueshëm nga llogaria e përdoruesit që specifikoni në vijën e komandës. Dhe kjo llogari përdoruesi duhet të ketë leje shkrimi në atë vendndodhje.

Një parakusht më delikat është që qasja SSH duhet të vendoset midis kompjuterit tuaj lokal dhe kompjuterit burimor, si dhe midis serverëve burim dhe objektiv. Sigurohuni që mund të përdorni SSH për t'u identifikuar në serverin e synuar nga serveri burim. Nëse nuk mund ta bëni këtë, scp nuk do të mund të lidhet.

Vendosja e çelësave SSH në mënyrë që të mund të përdorni aksesin e vërtetuar, por pa fjalëkalim, është metoda e preferuar. Përdorimi i fjalëkalimeve bëhet i çrregullt shumë shpejt dhe - për shkak se ju kërkohet fjalëkalimi për çdo llogari përdoruesi - ju pengon të automatizoni plotësisht procesin me një skript.

Ne konfigurojmë çelësat SSH për llogaritë e përdoruesve që përdorim në çdo server të largët. Kjo siguroi qasje pa probleme SSH në serverin tjetër, për këta dy përdorues. Kjo na lejon të transferojmë skedarë në çdo drejtim, duke përdorur ato dy llogari përdoruesish.

Për të kopjuar skedarët nga llogaria e përdoruesit davem në një kompjuter Manjaro në llogarinë dave në një kompjuter Fedora, nëpërmjet një komande scp të lëshuar nga kompjuteri ynë lokal Ubuntu, sintaksa është:

scp davem@manjaro20-0-1.local:/home/davem/man. dave@fedora-34.local:/home/dave/

Ne jemi kthyer në heshtje në vijën e komandës. Nuk ka asnjë tregues që ka ndodhur diçka. Duke punuar me premisën se asnjë lajm nuk është lajm i mirë, scp raporton vetëm për gabime për këtë telekomandë në kopjimin në distancë. Duke kontrolluar kompjuterin Fedora, mund të shohim se skedarët nga kompjuteri Manjaro janë kopjuar dhe pranuar.

Si parazgjedhje, skedarët kopjohen drejtpërdrejt nga kompjuteri burim në kompjuterin e synuar. Mund ta anashkaloni këtë duke përdorur opsionin -3 (me tre drejtime).

Me këtë opsion, skedarët transferohen nga objektivi në burim, përmes kompjuterit tuaj lokal. Që kjo të ndodhë, duhet të ketë qasje pa probleme SSH nga kompjuteri juaj lokal në kompjuterin e synuar.

scp -3 davem@manjaro20-0-1.local:/home/davem/man. dave@fedora-34.local:/home/dave/

Ende nuk ka asnjë indikacion që ka ndodhur diçka, edhe kur i kanalizoni skedarët përmes kompjuterit tuaj lokal. Prova e pudingut, natyrisht, është të kontrolloni kompjuterin e synuar.

Opsione të tjera

-p (ruaj atributet e skedarit) do të mbajë flamujt e krijimit të skedarit origjinal, pronësinë dhe aksesin në skedarët e transferuar. Ata do të kenë të njëjtat meta të dhëna si skedarët origjinalë në kompjuterin burim.

Nëse shihni mesazhe gabimi, provoni të përsërisni komandën dhe përdorni flamurin -v (me fjalë) për të parë informacion të detajuar rreth përpjekjes së transferimit. Ju duhet të jeni në gjendje të dalloni pikën e dështimit në dalje.

Opsioni -C (kompres) i ngjesh skedarët ndërsa kopjohen dhe i dekompreson kur merren. Kjo është diçka që daton në epokën e komunikimit të ngadaltë të modemit ndërmjet kompjuterëve. Zvogëlimi i madhësisë së ngarkesës mund të zvogëlojë kohën e transmetimit.

Në ditët e sotme, koha e nevojshme për të kompresuar dhe dekompresuar skedarët ka të ngjarë të zgjasë më shumë se diferenca midis transmetimeve të ngjeshur dhe të pakompresuar. Por për shkak se scp përdoret më së miri për të kopjuar skedarë midis kompjuterëve në të njëjtin LAN, shpejtësia e transmetimit nuk duhet të jetë shumë shqetësuese.