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.
- Tas efektīvi kopē un sinhronizē failus uz attālo sistēmu vai no tās.
- Atbalsta saišu, ierīču, īpašnieku, grupu un atļauju kopēšanu.
- 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.
- 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
- -v: izteiksmīga
- -r: datus kopē rekursīvi (taču datu pārsūtīšanas laikā nesaglabājiet laika zīmogus un atļaujas
- -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
- -z: saspiest faila datus
- -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.