Beetaversioon: sisu on enamasti terviklik ja avalikuks katsetamiseks valmis, kuid vajab veel tehnilist, keelelist ja kasutatavuse kontrolli.

Peatüki vaade

Linux/Unix/macOS käsurea kiirõpik

Praegu loed peatükki Failide kopeerimine ja sünkroonimine, mis kuulub osasse Osa III: Failid, võrk ja süsteemitöö.

Failide kopeerimine ja sünkroonimine

Vali tööriist allika ja eesmärgi järgi:

VajadusTööriist ja oluline erinevus
koopia samas masinascp; õnnestub tavaliselt vaikides
fail üle SSHscp; näitab enamasti ülekande edenemist
korduv kataloogide sünkrooniminersync; saab enne näidata plaani
fail veebiaadressiltcurl või wget; kumbki ei vaja SSH-kontot

Koopia võib sihtfaili üle kirjutada. Enne suurt ülekannet kontrolli suunda ja seda, kas sihtkohas on säilitamist vajavaid faile.

Kohalik katse

Loo uus katsekoht. cp -R kopeerib rekursiivselt, s.t ka alamkataloogid koos sisuga.


mkdir -p ~/tmp/kopeeri-naide/allikas/alam
cd ~/tmp/kopeeri-naide
printf 'tere\n' > allikas/alam/fail.txt
cp allikas/alam/fail.txt koopia.txt
cp -R allikas allikas-koopia
cat koopia.txt
ls allikas-koopia/alam

Näed teksti tere ja koopiapuus nime fail.txt. Kui katsekataloog oli juba olemas, vali enne alustamist uus nimi: eriti cp -R tulemus sõltub sihtkataloogi olemasolust.

rsync: enne plaan, siis ülekanne

rsync -a kopeerib puu koos tavapäraste õiguste ja ajatemplitega. -v näitab tehtavat, -n teeb kuivkäivituse ilma sihti muutmata.


mkdir siht
rsync -avn allikas/ siht/
rsync -av allikas/ siht/

Esimene käsk näitab plaani, teine teeb koopia. Vaata cat siht/alam/fail.txt abil sisu. Korda sama päris ülekannet: muutumatu faili sisu ei pea uuesti saatma.

Vaikimisi otsustab rsync ülekande vajaduse peamiselt faili suuruse ja muutmisaja järgi, mitte kõiki sisusid läbi lugedes. Valik -c võrdleb kontrollsummasid, kuid nõuab failide lugemist ja võib olla aeglasem. -a ei säilita automaatselt kõiki võimalikke metaandmeid, näiteks ACL-e, laiendatud atribuute ega kõvalinkide seoseid.

Allika lõpu kaldkriips muudab tulemust

Võrdle olemasoleva sihtkataloogi puhul:

KujuKuhu näitefail jõuab
rsync -av allikas/ siht/siht/alam/fail.txt
rsync -av allikas siht/siht/allikas/alam/fail.txt

Esimeses kantakse üle sisu, teises kataloog koos nimega. Võrdle neid enne -n-iga. Ära eelda, et cp ja scp kasutavad lõpu kaldkriipsu kõigis süsteemides täpselt sama reegli järgi.

Vaikimisi ei eemalda rsync sihtkoha lisafaile. --delete eemaldab sihist ülekantava puu ulatuses failid, mida allikas pole; see ei ole tavalise varukoopia jaoks automaatselt vajalik. Kontrolli sellist plaani eriti hoolikalt.

Üle SSH teise masinasse

Asenda kasutaja@server oma kontoga. Järgmised on käsukujud, mitte toimiva näidiskonto aadressid:


scp koopia.txt kasutaja@server:~/
rsync -avn allikas/ kasutaja@server:~/allikas/

scp -r kopeerib kataloogi; scp -p säilitab õigused ning ajad. rsync peab olema mõlemas masinas olemas. Pärast kuivkäivituse kontrolli eemalda -n, kui soovid päris ülekannet. Sisselogimise ja võtmete juhis tuleb SSH peatükis.

Tavakasutaja ei saa üldjuhul määrata failile suvalist omanikku. Metaandmete säilimine sõltub ka sihtfailisüsteemist ja kasutaja õigustest.

Veebist faili toomine

curl -f märgib HTTP veavastuse ebaeduks, -L järgib ümbersuunamisi ning -O võtab kohaliku nime URL-i viimasest teeosast, mitte serveri suvalisest pakutud nimest.

Vali üks allalaadija:


curl -fL -O https://artifical.eu/linux/data/generated-words.txt

Või, kui wget on olemas:


wget https://artifical.eu/linux/data/generated-words.txt

Kontrolli head generated-words.txt abil, et said teksti, mitte sisselogimis- või vealehe. Rohkem valikuid leiad veebist sisu toomise peatükist.

Minitest

  1. Lisa allikafaili üks rida. Mida näitab uus rsync -avn?
  2. Kuidas muudab allika lõpu kaldkriips tulemuse kataloogipuud?
  3. Miks rsync -av pole sama mis kahe kataloogi täielik peegeldamine?
  4. Mida pead üle kontrollima enne faili teise masinasse kopeerimist?

Peatüki täisspikker

Praktiline kasutus

Eesmärk

vali tööriist allika järgi: cp samas masinas, scp üle SSH, rsync korduvaks sünkroonimiseks ja curl/wget veebist toomiseks

Põhikujud

  • cp fail.txt koopia.txttee koopia
  • cp -R kaust kaust-koopiakopeeri kataloog
  • scp fail.txt kasutaja@server:/tmp/saada serverisse
  • rsync -avn kaust/ kasutaja@server:/tmp/kaust/kontrolli enne
  • rsync -av kaust/ kasutaja@server:/tmp/kaust/sünkrooni sisu
  • wget https://artifical.eu/linux/data/generated-words.txtlaadi fail
  • curl -fLO https://artifical.eu/linux/data/generated-words.txtjärgi suunamisi, HTTP-vea korral ebaõnnestu

Olulisemad lipud, märgid ja kiirnupud

  • cp -Rkopeeri kataloog
  • scp -rsaada kataloog
  • rsync -arekursiivselt, säilitades tavalised Unixi metaandmed
  • rsync -nproovi enne
  • curl -Ljärgi suunamist
  • curl -Osalvesta URL-i lõpuosa nimega