Failide kopeerimine ja sünkroonimine
Vali tööriist allika ja eesmärgi järgi:
| Vajadus | Tööriist ja oluline erinevus |
|---|---|
| koopia samas masinas | cp; õnnestub tavaliselt vaikides |
| fail üle SSH | scp; näitab enamasti ülekande edenemist |
| korduv kataloogide sünkroonimine | rsync; saab enne näidata plaani |
| fail veebiaadressilt | curl 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:
| Kuju | Kuhu 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
- Lisa allikafaili üks rida. Mida näitab uus
rsync -avn? - Kuidas muudab allika lõpu kaldkriips tulemuse kataloogipuud?
- Miks
rsync -avpole sama mis kahe kataloogi täielik peegeldamine? - 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 koopiacp -R kaust kaust-koopiakopeeri kataloogscp fail.txt kasutaja@server:/tmp/saada serverissersync -avn kaust/ kasutaja@server:/tmp/kaust/kontrolli ennersync -av kaust/ kasutaja@server:/tmp/kaust/sünkrooni sisuwget https://artifical.eu/linux/data/generated-words.txtlaadi failcurl -fLO https://artifical.eu/linux/data/generated-words.txtjärgi suunamisi, HTTP-vea korral ebaõnnestu
Olulisemad lipud, märgid ja kiirnupud
cp -Rkopeeri kataloogscp -rsaada kataloogrsync -arekursiivselt, säilitades tavalised Unixi metaandmedrsync -nproovi ennecurl -Ljärgi suunamistcurl -Osalvesta URL-i lõpuosa nimega