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.

  1. See kopeerib ja sünkroonib faile tõhusalt kaugsüsteemi või kaugsüsteemist.
  2. toetab linkide, seadmete, omanike, rühmade ja lubade kopeerimist.
  3. 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.
  4. Rsync kulutab vähem ribalaiust, kuna see kasutab andmete saatmise ja vastuvõtmise ajal pakkimis- ja dekompressioonimeetodeid.

# rsync options source destination

  1. -v: paljusõnaline
  2. -r: kopeerib andmeid rekursiivselt (kuid andmete edastamise ajal ärge säilitage ajatemplit ja luba
  3. -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
  4. -z: faili andmete tihendamine
  5. -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.