Rsync (attālā sinhronizācija): 10 praktiski Rsync komandas piemēri Linux


Rsync (attālā sinhronizācija) ir visbiežāk izmantota komanda failu un direktoriju kopēšanai un sinhronizēšanai attālināti, kā arī lokāli Linux/Unix sistēmās. Ar komandas rsync palīdzību jūs varat attālināti un lokāli kopēt un sinhronizēt datus direktorijos, diskos un tīklos, veikt datu dublēšanu un spoguļošanu starp divām Linux mašīnām.

Šajā rakstā ir izskaidrots komandas rsync 10 pamata un uzlabots lietojums, lai failus attālināti un lokāli pārsūtītu uz Linux balstītās mašīnās. Lai palaistu komandu rsync, jums nav jābūt root lietotājam.

  1. Tas efektīvi kopē un sinhronizē failus uz attālo sistēmu vai no tās.
  2. Atbalsta saišu, ierīču, īpašnieku, grupu un atļauju kopēšanu.
  3. Tas ir ātrāks nekā scp (droša kopija), jo rsync izmanto attālās atjaunināšanas protokolu, kas ļauj pārsūtīt tikai atšķirības starp diviem failu komplektiem. Pirmo reizi tas kopē visu faila vai direktorija saturu no avota uz galamērķi, bet no nākamās reizes uz galamērķi kopē tikai mainītos blokus un baitus.
  4. Rsync patērē mazāku joslas platumu, jo tiek izmantota saspiešanas un dekompresijas metode, vienlaikus sūtot un saņemot datus.

# rsync options source destination

  1. -v: izteiksmīga
  2. -r: datus kopē rekursīvi (taču datu pārsūtīšanas laikā nesaglabājiet laika zīmogus un atļaujas
  3. -a: arhīva režīms, arhīva režīms ļauj rekursīvi kopēt failus, kā arī saglabā simboliskas saites, failu atļaujas, lietotāju un grupu īpašumtiesības un laika zīmogus
  4. -z: saspiest faila datus
  5. -h: cilvēkiem lasāms, izejas numuri cilvēkiem lasāmā formātā

Mēs varam instalēt rsync pakotni ar šādas komandas palīdzību.

# yum install rsync (On Red Hat based systems)
# apt-get install rsync (On Debian based systems)

1. Kopējiet/sinhronizējiet failus un direktoriju lokāli

Šī nākamā komanda sinhronizēs atsevišķu vietējās mašīnas failu no vienas vietas uz citu. Šajā piemērā faila nosaukums backup.tar ir jākopē vai jāsinhronizē mapē/tmp/backups/folder.

 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

Iepriekš minētajā piemērā varat redzēt, ka, ja galamērķis vēl nav, rsync automātiski izveidos direktoriju galamērķim.

Šī komanda pārsūtīs vai sinhronizēs visus failus no viena direktorija uz citu direktoriju tajā pašā mašīnā. Šajā piemērā/root/rpmpkgs satur dažus rpm pakotnes failus un vēlaties, lai šo direktoriju kopētu mapē/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. Kopējiet/sinhronizējiet failus un direktoriju uz serveri vai no tā

Šī komanda sinhronizēs direktoriju no vietējās mašīnas ar attālo mašīnu. Piemēram: vietējā datorā ir mape “rpmpkgs”, kurā ir dažas RPM paketes, un jūs vēlaties, lai vietējā direktorija saturs tiktu nosūtīts uz attālo serveri, varat izmantot šādu komandu.

[[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

Šī komanda palīdzēs sinhronizēt attālo direktoriju ar vietējo direktoriju. Šajā piemērā direktorija/home/tarunika/rpmpkgs, kas atrodas attālā serverī, tiek kopēts jūsu vietējā datorā mapē/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 Over SSH

Izmantojot rsync, datu pārsūtīšanai mēs varam izmantot SSH (Secure Shell), izmantojot SSH protokolu, vienlaikus pārsūtot mūsu datus, jūs varat būt drošs, ka jūsu dati tiek pārsūtīti drošā savienojumā ar šifrēšanu, lai neviens nevarētu lasīt jūsu datus, kamēr tie tiek pārsūtīti. pa vadu internetā.

Arī tad, kad mēs izmantojam rsync, mums jānorāda lietotāja/root parole, lai veiktu šo konkrēto uzdevumu, tāpēc, izmantojot opciju SSH, jūsu pieteikumvārdi tiks nosūtīti šifrētā veidā, lai jūsu parole būtu droša.

Lai norādītu protokolu ar rsync, jums jāpiešķir opcija “-e” ar protokola nosaukumu, kuru vēlaties izmantot. Šajā piemērā mēs izmantosim opciju “ssh” ar opciju “-e” un veiksim datu pārsūtīšanu.

 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. Parādiet progresu, pārsūtot datus ar rsync

Lai parādītu progresu, pārsūtot datus no vienas mašīnas uz citu, mēs tam varam izmantot opciju ‘progress’. Tas parāda failus un atlikušo laiku, lai pabeigtu pārsūtīšanu.

 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. Opciju –iekļaut un – izslēgt izmantošana

Šīs divas iespējas ļauj mums iekļaut un izslēgt failus, norādot parametrus ar šo opciju, kas palīdz mums norādīt tos failus vai direktorijus, kurus vēlaties iekļaut sinhronizācijā, un izslēgt failus un mapes, kurus nevēlaties pārsūtīt.

Šajā piemērā rsync komanda ietvers tikai tos failus un direktoriju, kas sākas ar “R”, un izslēgs visus pārējos failus un direktoriju.

 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. Opcijas –dzēst izmantošana

Ja avotā nav faila vai direktorija, bet tas jau pastāv galamērķī, iespējams, vēlēsities dzēst šo esošo failu/direktoriju mērķī sinhronizācijas laikā.

Varam izmantot opciju ‘-delete’, lai izdzēstu failus, kas nav avota direktorijā.

Avots un mērķis ir sinhronizēti. Tagad mērķī izveidojat jaunu failu 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

Target ir jauns fails ar nosaukumu test.txt. Sinhronizējot ar avotu ar opciju ‘–dzēst’, tas noņēma failu test.txt.

7. Iestatiet pārsūtāmo failu maksimālo lielumu

Varat norādīt pārsūtāmā vai sinhronizējamā faila lielumu. To var izdarīt, izmantojot opciju “–max-size”. Šajā piemērā faila maksimālais lielums ir 200 000, tāpēc šī komanda pārsūtīs tikai tos failus, kas ir vienādi vai mazāki par 200 000 failiem.

 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ēc veiksmīgas pārsūtīšanas automātiski izdzēsiet avota failus

Pieņemsim, ka jums ir galvenais tīmekļa serveris un datu dublējuma serveris, jūs izveidojāt ikdienas dublējumu un sinhronizējāt to ar savu dublējuma serveri, tagad nevēlaties saglabāt šo vietējo dublējuma kopiju savā tīmekļa serverī.

Tātad, vai jūs gaidīsit, kamēr pārsūtīšana būs pabeigta, un pēc tam manuāli izdzēsīsit šos vietējos dublējuma failus? Protams ka nē. Šo automātisko dzēšanu var izdarīt, izmantojot opciju ‘–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. Veiciet sauso skrējienu ar rsync

Ja esat iesācējs un izmantojat rsync un nezināt, ko tieši veic jūsu komanda. Rsync patiešām varētu sajaukt lietas jūsu mērķa mapē, un pēc tam atsaukšana var būt garlaicīgs darbs.

Izmantojot šo opciju, izmaiņas netiks veiktas, tikai veicot komandu sausu palaišanu un parādot komandas izvadi, ja izvade parāda tieši to pašu, ko vēlaties darīt, tad no komandas varat noņemt opciju “-dry-run” un palaist uz termināļa.

[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. Iestatiet joslas platuma ierobežojumu un pārsūtiet failu

Izmantojot opciju ‘–bwlimit’, varat iestatīt joslas platuma ierobežojumu, vienlaikus pārsūtot datus no vienas mašīnas uz otru. Šī opcija palīdz mums ierobežot I/O joslas platumu.

 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

Turklāt pēc noklusējuma rsync sinhronizē tikai mainītos blokus un baitus. Ja vēlaties skaidri sinhronizēt visu failu, izmantojiet opciju ‘-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

Tas viss ir ar rsync tagad, lai skatītu citas iespējas, varat skatīt rokasgrāmatu lapas. Uzturiet savienojumu ar Tecmint, lai nākotnē iegūtu aizraujošākas un interesantākas apmācības. Atstājiet savus komentārus un ieteikumus.