10 Eżempji Prattiċi ta 'Kmand Rsync fil-Linux


Rsync (Remote Sync) huwa l-aktar kmand użat komunement għall-ikkupjar u s-sinkronizzazzjoni ta' fajls u direttorji mill-bogħod kif ukoll lokalment fis-sistemi Linux/Unix.

Bl-għajnuna tal-kmand rsync, tista 'tikkopja u tissinkronizza d-dejta tiegħek mill-bogħod u lokalment f'direttorji, diski u netwerks, twettaq backups tad-dejta, u tirrifletti bejn żewġ magni Linux.

Dan l-artikolu jispjega 10 użu bażiku u avvanzat tal-kmand rsync biex tittrasferixxi l-fajls tiegħek mill-bogħod u lokalment f'magni ibbażati fuq Linux. M'għandekx bżonn tkun utent root biex tħaddem il-kmand rsync.

  • Tikkopja u tissinkronizza b'mod effiċjenti fajls lejn jew minn sistema remota.
  • Jappoġġja l-ikkupjar ta' links, tagħmir, sidien, gruppi, u permessi.
  • Hu aktar mgħaġġel minn scp (Kopja Sikura) minħabba li rsync juża protokoll ta' aġġornament mill-bogħod li jippermetti t-trasferiment biss tad-differenzi bejn żewġ settijiet ta' fajls. L-ewwel darba, tikkopja l-kontenut kollu ta’ fajl jew direttorju mis-sors sad-destinazzjoni iżda mill-ħin li jmiss, tikkopja biss il-blokki u l-bytes mibdula lejn id-destinazzjoni.
  • Rsync jikkonsma inqas utilizzazzjoni tal-bandwidth peress li juża metodu ta' kompressjoni u dekompressjoni waqt li jibgħat u jirċievi data fuq iż-żewġt itruf.

# rsync options source destination

  • -v : verbose
  • -r : tikkopja d-dejta b'mod rikorsiv (iżda ma tippreservax it-timbru u l-permess waqt it-trasferiment tad-dejta.
  • -a : modalità ta' arkivju, li tippermetti li tikkopja fajls b'mod rikorsiv u tippreserva wkoll links simboliċi, permessi ta' fajls, sjieda ta' utenti u gruppi, u timestamps.
  • -z : tikkompressa data tal-fajl.
  • -h : numri li jinqraw mill-bniedem, output f'format li jinqara mill-bniedem.

[ Tista 'tħobb ukoll: Kif Tissinkronizza Fajls/Direttorji billi tuża Rsync b'Port SSH mhux standard]

Installa Rsync fis-Sistema Linux

Nistgħu ninstallaw il-pakkett rsync bl-għajnuna tal-kmand li ġej fid-distribuzzjoni Linux tiegħek.

$ sudo apt-get install rsync   [On Debian/Ubuntu & Mint] 
$ pacman -S rsync              [On Arch Linux]
$ emerge sys-apps/rsync        [On Gentoo]
$ sudo yum install rsync       [On Fedora/CentOS/RHEL and Rocky Linux/AlmaLinux]
$ sudo zypper install rsync    [On openSUSE]

1. Ikkopja/Ssinkronizza Fajls u Direttorju Lokalment

Il-kmand li ġej se jissinkronizza fajl wieħed fuq magna lokali minn post għal post ieħor. Hawnhekk f'dan l-eżempju, isem tal-fajl backup.tar jeħtieġ li jiġi kkupjat jew issinkronizzat mal-folder /tmp/backups/.

 rsync -zvh backup.tar.gz /tmp/backups/

created directory /tmp/backups
backup.tar.gz

sent 224.54K bytes  received 70 bytes  449.21K bytes/sec
total size is 224.40K  speedup is 1.00

Fl-eżempju ta 'hawn fuq, tista' tara li jekk id-destinazzjoni ma tkunx diġà teżisti rsync se toħloq direttorju awtomatikament għad-destinazzjoni.

Il-kmand li ġej se jittrasferixxi jew jissinkronizza l-fajls kollha minn direttorju wieħed għal direttorju differenti fl-istess magna. Hawnhekk f'dan l-eżempju, /root/rpmpkgs fih xi fajls tal-pakketti rpm u trid li dak id-direttorju jiġi kkupjat ġewwa /tmp/backups/ folder.

 rsync -avzh /root/rpmpkgs /tmp/backups/

sending incremental file list
rpmpkgs/
rpmpkgs/httpd-2.4.37-40.module_el8.5.0+852+0aafc63b.x86_64.rpm
rpmpkgs/mod_ssl-2.4.37-40.module_el8.5.0+852+0aafc63b.x86_64.rpm
rpmpkgs/nagios-4.4.6-4.el8.x86_64.rpm
rpmpkgs/nagios-plugins-2.3.3-5.el8.x86_64.rpm

sent 3.47M bytes  received 96 bytes  2.32M bytes/sec
total size is 3.74M  speedup is 1.08

2. Ikkopja/Ssinkronizza Fajls u Direttorju lejn jew Minn Server

Dan il-kmand se jissinkronizza direttorju minn magna lokali għal magna remota. Pereżempju, hemm folder fil-kompjuter lokali tiegħek \rpmpkgs li fih xi pakketti RPM u trid li l-kontenut tad-direttorju lokali jibgħat lil server remot, tista 'tuża l-kmand li ġej.

 rsync -avzh /root/rpmpkgs [email :/root/

The authenticity of host '192.168.0.141 (192.168.0.141)' can't be established.
ED25519 key fingerprint is SHA256:bH2tiWQn4S5o6qmZhmtXcBROV5TU5H4t2C42QDEMx1c.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.0.141' (ED25519) to the list of known hosts.
[email 's password: 
sending incremental file list
rpmpkgs/
rpmpkgs/httpd-2.4.37-40.module_el8.5.0+852+0aafc63b.x86_64.rpm
rpmpkgs/mod_ssl-2.4.37-40.module_el8.5.0+852+0aafc63b.x86_64.rpm
rpmpkgs/nagios-4.4.6-4.el8.x86_64.rpm
rpmpkgs/nagios-plugins-2.3.3-5.el8.x86_64.rpm

sent 3.74M bytes  received 96 bytes  439.88K bytes/sec
total size is 3.74M  speedup is 1.00

Dan il-kmand jgħinek tissinkronizza direttorju remot ma 'direttorju lokali. Hawnhekk f'dan l-eżempju, direttorju /root/rpmpkgs li jinsab fuq server remot qed jiġi kkupjat fil-kompjuter lokali tiegħek f'/tmp/myrpms.

 rsync -avzh [email :/root/rpmpkgs /tmp/myrpms

[email 's password: 
receiving incremental file list
created directory /tmp/myrpms
rpmpkgs/
rpmpkgs/httpd-2.4.37-40.module_el8.5.0+852+0aafc63b.x86_64.rpm
rpmpkgs/mod_ssl-2.4.37-40.module_el8.5.0+852+0aafc63b.x86_64.rpm
rpmpkgs/nagios-4.4.6-4.el8.x86_64.rpm
rpmpkgs/nagios-plugins-2.3.3-5.el8.x86_64.rpm

sent 104 bytes  received 3.49M bytes  997.68K bytes/sec
total size is 3.74M  speedup is 1.07

3. Rsync Fuq SSH

B'rsync, nistgħu nużaw SSH (Secure Shell) għat-trasferiment tad-dejta, billi nużaw il-protokoll SSH waqt li tittrasferixxi d-dejta tagħna tista' tkun żgurat li d-dejta tiegħek qed tiġi trasferita f'konnessjoni sigura b'encryption sabiex ħadd ma jkun jista' jaqra d-dejta tiegħek waqt li tkun qed tiġi trasferita fuq il-wajer fuq l-internet.

[ Tista 'tħobb ukoll: Kif Tiżgura u Tibbies OpenSSH Server ]

Ukoll meta nużaw rsync għandna bżonn nipprovdu l-password tal-utent/root biex inwettqu dak il-kompitu partikolari, għalhekk bl-użu tal-għażla SSH se tibgħat il-logins tiegħek b'mod kriptat sabiex il-password tiegħek tkun sigura.

Biex tispeċifika protokoll b'rsync trid tagħti l-għażla \-e bl-isem tal-protokoll li trid tuża. Hawnhekk f'dan l-eżempju, Aħna se nkunu qed nużaw il-\ssh bl-għażla \-e u wettaq trasferiment tad-data.

 rsync -avzhe ssh [email :/root/anaconda-ks.cfg /tmp

[email 's password: 
receiving incremental file list
anaconda-ks.cfg

sent 43 bytes  received 1.10K bytes  325.43 bytes/sec
total size is 1.90K  speedup is 1.67
 rsync -avzhe ssh backup.tar.gz [email :/backups/

[email 's password: 
sending incremental file list
created directory /backups
backup.tar.gz

sent 224.59K bytes  received 66 bytes  64.19K bytes/sec
total size is 224.40K  speedup is 1.00

[ Tista 'tħobb ukoll: Kif tuża Rsync biex Tissinkronizza Fajls Ġodda jew Mibdula/Modifikat fil-Linux ]

4. Uri l-Progress Waqt it-Trasferiment tad-Dejta b'rsync

Biex nuru l-progress waqt it-trasferiment tad-dejta minn magna waħda għal magna differenti, nistgħu nużaw l-għażla '-progress'. Hija turi l-fajls u l-ħin li jifdal biex jitlesta t-trasferiment.

 rsync -avzhe ssh --progress /root/rpmpkgs [email :/root/rpmpkgs

[email 's password: 
sending incremental file list
rpmpkgs/
rpmpkgs/httpd-2.4.37-40.module_el8.5.0+852+0aafc63b.x86_64.rpm
          1.47M 100%   31.80MB/s    0:00:00 (xfr#1, to-chk=3/5)
rpmpkgs/mod_ssl-2.4.37-40.module_el8.5.0+852+0aafc63b.x86_64.rpm
        138.01K 100%    2.69MB/s    0:00:00 (xfr#2, to-chk=2/5)
rpmpkgs/nagios-4.4.6-4.el8.x86_64.rpm
          2.01M 100%   18.45MB/s    0:00:00 (xfr#3, to-chk=1/5)
rpmpkgs/nagios-plugins-2.3.3-5.el8.x86_64.rpm
        120.48K 100%    1.04MB/s    0:00:00 (xfr#4, to-chk=0/5)

sent 3.74M bytes  received 96 bytes  1.50M bytes/sec
total size is 3.74M  speedup is 1.00

5. Użu tal-Għażliet –include and –exclude

Dawn iż-żewġ għażliet jippermettulna li ninkludu u neskludu fajls billi nispeċifikaw parametri b'din l-għażla tgħinna nispeċifikaw dawk il-fajls jew direttorji li trid tinkludi fis-sinkronizzazzjoni tiegħek u teskludi fajls u folders miegħek ma tridx tiġi trasferita.

Hawnhekk f'dan l-eżempju, il-kmand rsync se jinkludi dawk il-fajls u direttorju biss li jibda b''R' u jeskludi l-fajls u d-direttorju l-oħra kollha.

 rsync -avze ssh --include 'R*' --exclude '*' [email :/var/lib/rpm/ /root/rpm

[email 's password: 
receiving incremental file list
created directory /root/rpm
./
Requirename

sent 61 bytes  received 273,074 bytes  60,696.67 bytes/sec
total size is 761,856  speedup is 2.79

6. Użu tal-Għażla – delete

Jekk fajl jew direttorju ma jeżistix fis-sors, iżda diġà jeżisti fid-destinazzjoni, tista' tkun trid tħassar dak il-fajl/direttorju eżistenti fil-mira waqt is-sinkronizzazzjoni.

Nistgħu nużaw l-għażla '-ħassar' biex inħassru fajls li mhumiex hemm fid-direttorju tas-sors.

Is-sors u l-mira huma sinkronizzati. Issa oħloq fajl ġdid test.txt fil-mira.

 cd /root/rpm/
 touch test.txt
 rsync -avz --delete [email :/var/lib/rpm/ /root/rpm/

[email 's password: 
receiving incremental file list
deleting test.txt
./
.dbenv.lock
.rpm.lock
Basenames
Conflictname
Dirnames
Enhancename
Filetriggername
Group
Installtid
Name
Obsoletename
Packages
Providename
Sha1header
Sigmd5
Suggestname
Supplementname
Transfiletriggername
Triggername
__db.001
__db.002
__db.003

sent 445 bytes  received 18,543,954 bytes  2,472,586.53 bytes/sec
total size is 71,151,616  speedup is 3.84

Target għandha l-fajl il-ġdid imsejjaħ test.txt, meta s-sinkronizzazzjoni mas-sors bl-għażla '-ħassar', neħħiet il-fajl test.txt.

7. Issettja d-Daqs Max tal-Fajls li għandhom jiġu Trasferiti

Tista 'tispeċifika d-daqs tal-fajl Max li għandu jiġi trasferit jew sinkronizzat. Tista 'tagħmel dan bl-għażla \–max-size. Hawnhekk f'dan l-eżempju, id-daqs tal-fajl Max huwa 200k, għalhekk dan il-kmand jittrasferixxi biss dawk il-fajls li huma ugwali għal jew iżgħar minn 200k.

 rsync -avzhe ssh --max-size='200k' /var/lib/rpm/ [email :/root/tmprpm

[email 's password: 
sending incremental file list
created directory /root/tmprpm
./
.dbenv.lock
.rpm.lock
Conflictname
Enhancename
Filetriggername
Group
Installtid
Name
Obsoletename
Recommendname
Requirename
Sha1header
Sigmd5
Suggestname
Supplementname
Transfiletriggername
Triggername
__db.002

sent 129.52K bytes  received 396 bytes  28.87K bytes/sec
total size is 71.15M  speedup is 547.66

8. Ħassar Awtomatikament Fajls tas-sors Wara Trasferiment b'suċċess

Issa, ejja ngħidu li għandek is-server tal-web prinċipali u server tal-backup tad-dejta, ħloqt backup ta 'kuljum u ssinkronizzat mas-server tal-backup tiegħek, issa ma tridx iżżomm dik il-kopja lokali tal-backup fis-server tal-web tiegħek.

Allura, se tistenna li t-trasferiment jitlesta u mbagħad tħassar dak il-fajl tal-backup lokali manwalment? Ovvjament LE. Dan it-tħassir awtomatiku jista 'jsir billi tuża l-għażla '–remove-source-files'.

 rsync --remove-source-files -zvh backup.tar.gz [email :/tmp/backups/

[email 's password: 
backup.tar.gz

sent 795 bytes  received 2.33K bytes  894.29 bytes/sec
total size is 267.30K  speedup is 85.40

 ls -l backup.tar.gz

ls: cannot access 'backup.tar.gz': No such file or directory

9. Agħmel Dry Run b'rsync

Jekk int newbie tuża rsync u ma tafx x'se tagħmel eżattament il-kmand tiegħek. Rsync jista 'verament iħawwad l-affarijiet fil-folder tad-destinazzjoni tiegħek u mbagħad tagħmel tneħħija tista' tkun biċċa xogħol tedjanti.

[ Tista' wkoll tixtieq: Kif Issinkronizza Żewġ Web Servers/Siti Web Apache billi tuża Rsync ]

L-użu ta' din l-għażla ma jagħmel ebda tibdil fil-fajls u juri l-output tal-kmand, jekk l-output juri eżattament l-istess li trid tagħmel allura tista' tneħħi l-għażla '–dry-run' mill-kmand tiegħek u tħaddem fuq il- terminali.

 rsync --dry-run --remove-source-files -zvh backup.tar.gz [email :/tmp/backups/

[email 's password: 
backup.tar.gz

sent 50 bytes  received 19 bytes  19.71 bytes/sec
total size is 267.30K  speedup is 3,873.97 (DRY RUN)

10. Rsync Set Bandwidth Limit u Trasferiment File

Tista 'tissettja l-limitu tal-bandwidth waqt li tittrasferixxi d-dejta minn magna għal magna oħra bl-għajnuna tal-għażla '–bwlimit'. Din l-għażla tgħinna nillimitaw bandwidth I/O.

 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

Ukoll, b'mod awtomatiku rsync tissinkronizza blokki u bytes mibdula biss, jekk trid espliċitament trid tissinkronizza l-fajl kollu allura tuża l-għażla '-W' magħha.

 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

Dak kollu b'rsync issa, tista 'tara man pages għal aktar għażliet. Ibqa' konness ma' Tecmint għal aktar tutorials eċċitanti u interessanti fil-futur. Ħalli l-kummenti u s-suġġerimenti tiegħek.