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.