Rsync (kaugsünkroonimine): 10 praktilist näidet Rsynci käsust Linuxis
Rsync (kaugsünkroonimine) on kõige sagedamini kasutatav käsk failide ja kataloogide kopeerimiseks ja sünkroonimiseks nii kaug- kui ka lokaalselt Linuxi/Unixi süsteemides. Rsynci käsu abil saate kopeerida ja sünkroonida oma andmeid kaugelt ja lokaalselt kataloogide, ketaste ja võrkude kaudu, teha varukoopiaid ja peegeldada kahe Linuxi masina vahel.
Selles artiklis selgitatakse käsu rsync 10 põhi- ja täpsemat kasutamist failide kaug- ja lokaalseks edastamiseks Linuxipõhistes masinates. Rsynci käsu käivitamiseks ei pea olema juurkasutaja.
- See kopeerib ja sünkroonib faile tõhusalt kaugsüsteemi või kaugsüsteemist.
- toetab linkide, seadmete, omanike, rühmade ja lubade kopeerimist.
- See on kiirem kui scp (Secure Copy), kuna rsync kasutab kauguuendamisprotokolli, mis võimaldab edastada vaid kahe failikomplekti erinevusi. Esimest korda kopeerib see kogu faili või kataloogi sisu allikast sihtkohta, kuid järgmisest korrast kopeerib sihtkohta ainult muudetud plokid ja baidid.
- Rsync kulutab vähem ribalaiust, kuna see kasutab andmete saatmise ja vastuvõtmise ajal pakkimis- ja dekompressioonimeetodeid.
# rsync options source destination
- -v: paljusõnaline
- -r: kopeerib andmeid rekursiivselt (kuid andmete edastamise ajal ärge säilitage ajatemplit ja luba
- -a: arhiivirežiim, arhiivirežiim võimaldab faile rekursiivselt kopeerida ning see säilitab ka sümboolsed lingid, failiload, kasutajate ja gruppide omandiõigused ning ajatemplid
- -z: faili andmete tihendamine
- -h: inimesele loetav, inimesele loetavas vormingus väljundnumbrid
Saame rsynci paketi installida järgmise käsu abil.
# yum install rsync (On Red Hat based systems) # apt-get install rsync (On Debian based systems)
1. Kopeerige/sünkroonige failid ja kataloog kohalikult
See järgmine käsk sünkroonib ühe kohaliku masina ühe faili ühest kohast teise. Selles näites tuleb failinimi backup.tar kopeerida või sünkroonida kausta/tmp/backups /.
rsync -zvh backup.tar /tmp/backups/ created directory /tmp/backups backup.tar sent 14.71M bytes received 31 bytes 3.27M bytes/sec total size is 16.18M speedup is 1.10
Ülaltoodud näites näete, et kui sihtkohta pole veel olemas, loob rsync sihtkoha jaoks kataloogi automaatselt.
Järgmine käsk teisaldab või sünkroonib kõik failid ühest kataloogist teise sama masina kataloogi. Selles näites sisaldab/root/rpmpkgs mõnda rpm paketifaili ja soovite, et see kataloog kopeeritakse kausta/tmp/backups /.
rsync -avzh /root/rpmpkgs /tmp/backups/ sending incremental file list rpmpkgs/ rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm rpmpkgs/nagios-3.5.0.tar.gz rpmpkgs/nagios-plugins-1.4.16.tar.gz sent 4.99M bytes received 92 bytes 3.33M bytes/sec total size is 4.99M speedup is 1.00
2. Kopeerige/sünkroonige failid ja kataloog serverisse või serverist
See käsk sünkroonib kataloogi kohalikust masinast kaugmasinaks. Näiteks: teie kohalikus arvutis on kaust rpmpkgs, mis sisaldab mõnda RPM-i paketti ja soovite, et kohaliku kataloogi sisu saadetaks kaugserverisse, võite kasutada järgmist käsku.
[[email ]$ rsync -avz rpmpkgs/ [email :/home/ [email 's password: sending incremental file list ./ httpd-2.2.3-82.el5.centos.i386.rpm mod_ssl-2.2.3-82.el5.centos.i386.rpm nagios-3.5.0.tar.gz nagios-plugins-1.4.16.tar.gz sent 4993369 bytes received 91 bytes 399476.80 bytes/sec total size is 4991313 speedup is 1.00
See käsk aitab teil kaugkataloogi sünkroonida kohaliku kataloogiga. Siin näites kopeeritakse serveris asuvat kataloogi/home/tarunika/rpmpkgs teie kohalikku arvutisse kataloogis/tmp/myrpms.
rsync -avzh [email :/home/tarunika/rpmpkgs /tmp/myrpms [email 's password: receiving incremental file list created directory /tmp/myrpms rpmpkgs/ rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm rpmpkgs/nagios-3.5.0.tar.gz rpmpkgs/nagios-plugins-1.4.16.tar.gz sent 91 bytes received 4.99M bytes 322.16K bytes/sec total size is 4.99M speedup is 1.00
3. Rsync üle SSH
Rsynci abil saame andmete edastamiseks kasutada SSH-i (Secure Shell), kasutades SSH-protokolli, samal ajal kui meie andmeid edastate, võite olla kindel, et teie andmeid edastatakse krüpteeritud turvalises ühenduses, nii et keegi ei saaks teie andmeid nende edastamise ajal lugeda üle traadi Internetis.
Ka rsynci kasutamisel peame selle konkreetse ülesande täitmiseks andma kasutaja/juurparooli, nii et SSH-valiku kasutamine saadab teie sisselogimised krüptitud viisil, nii et teie parool on ohutu.
Rsync-ga protokolli määramiseks peate andma võimaluse "-e" koos protokolli nimega, mida soovite kasutada. Siin näites kasutame valikut „ssh” koos valikuga „-e” ja teostame andmeedastust.
rsync -avzhe ssh [email :/root/install.log /tmp/ [email 's password: receiving incremental file list install.log sent 30 bytes received 8.12K bytes 1.48K bytes/sec total size is 30.74K speedup is 3.77
rsync -avzhe ssh backup.tar [email :/backups/ [email 's password: sending incremental file list backup.tar sent 14.71M bytes received 31 bytes 1.28M bytes/sec total size is 16.18M speedup is 1.10
4. Näita edusamme andmete edastamisel rsynciga
Et näidata edusamme andmete teisaldamisel ühest masinast teise, võime selle jaoks kasutada valikut ‘–progress’. See kuvab failid ja ülekande lõpuleviimiseks jäänud aja.
rsync -avzhe ssh --progress /home/rpmpkgs [email :/root/rpmpkgs [email 's password: sending incremental file list created directory /root/rpmpkgs rpmpkgs/ rpmpkgs/httpd-2.2.3-82.el5.centos.i386.rpm 1.02M 100% 2.72MB/s 0:00:00 (xfer#1, to-check=3/5) rpmpkgs/mod_ssl-2.2.3-82.el5.centos.i386.rpm 99.04K 100% 241.19kB/s 0:00:00 (xfer#2, to-check=2/5) rpmpkgs/nagios-3.5.0.tar.gz 1.79M 100% 1.56MB/s 0:00:01 (xfer#3, to-check=1/5) rpmpkgs/nagios-plugins-1.4.16.tar.gz 2.09M 100% 1.47MB/s 0:00:01 (xfer#4, to-check=0/5) sent 4.99M bytes received 92 bytes 475.56K bytes/sec total size is 4.99M speedup is 1.00
5. Funktsioonide –include ja –clude kasutamine
Need kaks võimalust võimaldavad meil faile kaasata ja välja jätta, määrates parameetrid selle suvandiga. See aitab meil määrata need failid või kataloogid, mille soovite oma sünkroonimisse kaasata, ja välistada failid ja kaustad, mida te ei soovi teisaldada.
Selles näites sisaldab käsk rsync ainult neid faile ja katalooge, mis algavad tähega „R”, ja välistab kõik muud failid ja kataloogid.
rsync -avze ssh --include 'R*' --exclude '*' [email :/var/lib/rpm/ /root/rpm [email 's password: receiving incremental file list created directory /root/rpm ./ Requirename Requireversion sent 67 bytes received 167289 bytes 7438.04 bytes/sec total size is 434176 speedup is 2.59
6. Kustutusvaliku kasutamine
Kui faili või kataloogi pole allikas olemas, kuid see on sihtkohas juba olemas, võiksite sünkroonimise ajal selle olemasoleva faili/kataloogi kustutada.
Failide kustutamiseks, mida lähtekataloogis pole, saame kasutada valikut ‘–delete’.
Allikas ja sihtmärk on sünkroonis. Nüüd loote sihtmärgile uue faili test.txt.
touch test.txt rsync -avz --delete [email :/var/lib/rpm/ . Password: receiving file list ... done deleting test.txt ./ sent 26 bytes received 390 bytes 48.94 bytes/sec total size is 45305958 speedup is 108908.55
Targetil on uus fail nimega test.txt. Kui sünkroonite allikaga suvandiga ‘–delete’, eemaldas ta faili test.txt.
7. Määrake ülekantavate failide maksimaalne suurus
Saate määrata ülekantava või sünkroonitava faili suuruse. Saate seda teha valikuga “–max-size”. Selles näites on faili maksimaalne suurus 200 k, nii et see käsk kannab üle ainult need failid, mis on võrdsed või väiksemad kui 200 k.
rsync -avzhe ssh --max-size='200k' /var/lib/rpm/ [email :/root/tmprpm [email 's password: sending incremental file list created directory /root/tmprpm ./ Conflictname Group Installtid Name Provideversion Pubkeys Requireversion Sha1header Sigmd5 Triggername __db.001 sent 189.79K bytes received 224 bytes 13.10K bytes/sec total size is 38.08M speedup is 200.43
8. Pärast edukat edastamist kustutage lähtefailid automaatselt
Oletame, et teil on peamine veebiserver ja andmete varundusserver, lõite igapäevase varukoopia ja sünkroonisite selle oma varundusserveriga. Nüüd ei soovi te seda varukoopia kohalikku koopiat oma veebiserveris hoida.
Niisiis, kas ootate ülekande lõpuleviimist ja seejärel kustutate need kohaliku varukoopiafailid käsitsi? Muidugi EI. Selle automaatse kustutamise saab teha, kasutades suvandit –remove-source-files.
rsync --remove-source-files -zvh backup.tar /tmp/backups/ backup.tar sent 14.71M bytes received 31 bytes 4.20M bytes/sec total size is 16.18M speedup is 1.10 ll backup.tar ls: backup.tar: No such file or directory
9. Tehke kuivsõit rsync-iga
Kui olete algaja ja kasutate rsynci ega tea, mida teie käsk täpselt teeb. Rsync võib tõesti teie sihtkaustas olevad asjad sassi ajada ja siis võib tagasivõtmine olla tüütu töö.
Selle suvandi kasutamine ei muuda muudatusi ainult käsuga kuivkäivitamisel ja näitab käsu väljundit. Kui väljund näitab täpselt sama, mida soovite teha, võite oma käsu eemaldada '-dry-run' ja jooksma terminalis.
[email ]# rsync --dry-run --remove-source-files -zvh backup.tar /tmp/backups/ backup.tar sent 35 bytes received 15 bytes 100.00 bytes/sec total size is 16.18M speedup is 323584.00 (DRY RUN)
10. Määra ribalaiuse piir ja faili edastamine
Valiku ‘–bwlimit’ abil saate ribalaiuse piirangu seada, edastades andmeid ühest masinast teise. See valik aitab meil piirata I/O ribalaiust.
rsync --bwlimit=100 -avzhe ssh /var/lib/rpm/ [email :/root/tmprpm/ [email 's password: sending incremental file list sent 324 bytes received 12 bytes 61.09 bytes/sec total size is 38.08M speedup is 113347.05
Samuti sünkroonib rsync vaikimisi ainult muudetud plokid ja baidid. Kui soovite sõnaselgelt kogu faili sünkroonida, kasutate sellega valikut ‘-W’.
rsync -zvhW backup.tar /tmp/backups/backup.tar backup.tar sent 14.71M bytes received 31 bytes 3.27M bytes/sec total size is 16.18M speedup is 1.10
See kõik on nüüd rsynciga. Lisavalikute vaatamiseks näete manuaalseid lehti. Tulevikus saate põnevamate ja huvitavamate õpetuste jaoks ühendust Tecmintiga. Jätke oma kommentaarid ja ettepanekud.