Ihe atụ 10 bara uru nke iwu Rsync na Linux


Rsync (Mmekọrịta Remote) bụ iwu a na-ejikarị maka idetu na imekọrịta faịlụ na akwụkwọ ndekọ aha na mpaghara na sistemụ Linux/Unix.

Site n'enyemaka nke iwu rsync, ị nwere ike idetuo na mekọrịta data gị n'ime ime na mpaghara n'ofe akwụkwọ ndekọ aha, diski na netwọkụ, mee nkwado ndabere data na enyo n'etiti igwe Linux abụọ.

Edemede a na-akọwa 10 isi na elu ojiji nke iwu rsync iji bufee faịlụ gị n'ime ime na mpaghara na igwe Linux dabere. Ịkwesighi ịbụ onye ọrụ mgbọrọgwụ iji mee iwu rsync.

  • Ọ na-eṅomi nke ọma na mekọrịta faịlụ gaa na ma ọ bụ site na sistemụ dịpụrụ adịpụ.
  • Na-akwado nnomi njikọ, ngwaọrụ, ndị nwe, otu na ikike.
  • Ọ dị ngwa karịa scp (Ntụgharị echekwara) n'ihi na rsync na-eji usoro mmelite imelite nke na-enye ohere ịnyefe naanị ọdịiche dị n'etiti ụdị faịlụ abụọ. Oge mbụ, ọ na-eṅomi ọdịnaya niile nke faịlụ ma ọ bụ akwụkwọ ndekọ aha site na isi iyi ruo ebe mana site na oge ọzọ, ọ na-eṅomi naanị blọk na bytes gbanwere gaa ebe a na-aga.
  • Rsync na-eri obere bandwidth ojiji ka ọ na-eji usoro mkpakọ na decompression mgbe ọ na-eziga ma na-anata data na nsọtụ abụọ ahụ.

# rsync options source destination

  • -v : okwu ọnụ
  • -r : detuo data ugboro ugboro (mana echekwala akara oge na ikike mgbe ị na-ebufe data.
  • -a : ọnọdụ ebe nchekwa, nke na-enye ohere ịdegharị faịlụ ugboro ugboro yana ọ na-echekwa njikọ ihe atụ, ikike faịlụ, nwe onye ọrụ na otu, yana akara oge.
  • -z : mpikota onu faịlụ.
  • -h : mmadụ-nwere ike ịgụ, nọmba mmepụta n'ụdị mmadụ nwere ike ịgụ.

[Ị nwekwara ike ịmasị: Otu esi emekọrịta faịlụ/akwụkwọ ndekọ site na iji Rsync na ọdụ ụgbọ mmiri SSH na-abụghị ọkọlọtọ]

Wụnye Rsync na sistemụ Linux

Anyị nwere ike iwunye ngwugwu rsync site n'enyemaka nke iwu a na nkesa Linux gị.

$ 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. Detuo/mekọrịta faịlụ na ndekọ mpaghara

Iwu na-esonụ ga-ejikọta otu faịlụ na igwe mpaghara site n'otu ebe gaa na ebe ọzọ. N'ebe a n'ihe atụ a, ọ dị mkpa ka edepụtaghachi ma ọ bụ mekọrịta aha faịlụ backup.tar na /tmp/backups/ folder.

 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

N'ihe atụ dị n'elu, ị nwere ike ịhụ na ọ bụrụ na ebe a na-aga adịghị adị, rsync ga-emepụta ndekọ na-akpaghị aka maka ebe ị ga-aga.

Iwu na-esote ga-ebufe ma ọ bụ mekọrịta faịlụ niile site na otu ndekọ aha gaa na ndekọ dị iche n'otu igwe. N'ebe a na ihe atụ a,/mgbọrọgwụ/rpmpkgs nwere ụfọdụ faịlụ ngwugwu rpm ma ịchọrọ ka e depụtaghachi ndekọ ahụ n'ime /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. Detuo/mmekọrịta faịlụ na ndekọ na ma ọ bụ Site na nkesa

Iwu a ga-emekọrịta ndekọ aha site na igwe mpaghara gaa na igwe dịpụrụ adịpụ. Dịka ọmụmaatụ, enwere folda dị na kọmpụta mpaghara gị \rpmpkgs nke nwere ụfọdụ ngwugwu RPM ma ịchọrọ ka ọdịnaya ndekọ mpaghara na-eziga na sava dịpụrụ adịpụ, ị nwere ike iji iwu a.

 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

Iwu a ga-enyere gị aka ịmekọrịta ndekọ dịpụrụ adịpụ na ndekọ ndekọ mpaghara. N'ebe a n'ihe atụ a, a na-eṅomi ndekọ ndekọ/mgbọrọgwụ/rpmpkgs nke dị na sava dịpụrụ adịpụ na kọmputa gị na /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 karịrị SSH

Site na rsync, anyị nwere ike iji SSH (Secure Shell) maka ịnyefe data, site na iji SSH protocol mgbe ị na-ebufe data anyị, ị nwere ike hụ na a na-ebufe data gị na njikọ echekwara na nzuzo ka onye ọ bụla ghara ịgụ data gị mgbe a na-ebufe ya. n'elu waya na ịntanetị.

[Ị nwekwara ike ịmasị: Otu esi echekwa ma sie ike OpenSSH Server]

Ọzọkwa mgbe anyị na-eji rsync anyị kwesịrị ịnye onye ọrụ/mgbọrọgwụ paswọọdụ iji rụzuo ọrụ ahụ, yabụ iji nhọrọ SSH ga-eziga nbanye gị n'ụzọ ezoro ezo ka paswọọdụ gị wee dị mma.

Iji kọwapụta protocol na rsync ịkwesịrị ịnye nhọrọ \-e na aha protocol ịchọrọ iji. N'ebe a, anyị ga-eji ssh na nhọrọ \-e wee rụọ ọrụ. nyefe 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

[Ị nwekwara ike ịmasị: Otu esi eji Rsync ka ịmekọrịta faịlụ ọhụrụ ma ọ bụ gbanwee/gbanwee na Linux]

4. Gosi ọganihu ka ị na-ebufe data na rsync

Iji gosi ọganihu mgbe ị na-ebufe data site na otu igwe gaa na igwe dị iche, anyị nwere ike iji nhọrọ '-ọganihu'. Ọ na-egosiputa faịlụ na oge fọdụrụ iji wuchaa nyefe.

 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. Iji -gụnyere na -wepu Nhọrọ

Nhọrọ abụọ a na-enye anyị ohere ịgụnye na wepu faịlụ site na ịkọwapụta paramita na nhọrọ ndị a na-enyere anyị aka ịkọwa faịlụ ma ọ bụ akwụkwọ ndekọ aha ndị ịchọrọ itinye na mmekọrịta gị wee wepụ faịlụ na nchekwa na ị chọghị ka ebufe gị.

N'ebe a n'ihe atụ a, iwu rsync ga-agụnye faịlụ na ndekọ naanị nke na-amalite na 'R' ma wepụ faịlụ na ndekọ ndị ọzọ niile.

 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. Iji --ehichapụ Nhọrọ

Ọ bụrụ na faịlụ ma ọ bụ akwụkwọ ndekọ aha adịghị na isi mmalite, mana ọ dịlarị na ebe a na-aga, ịnwere ike ihichapụ faịlụ/akwụkwọ ndekọ aha dị na ebumnuche mgbe ị na-emekọrịta.

Anyị nwere ike iji nhọrọ '-ehichapụ' ka ihichapụ faịlụ ndị na-anọghị na akwụkwọ ndekọ aha.

Isi mmalite na ebumnuche na-ejikọta. Ugbu a mepụta faịlụ ọhụrụ test.txt na ebumnuche.

 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 nwere faịlụ ọhụrụ a na-akpọ test.txt, mgbe ị na-emekọrịta ya na isi iyi ya na nhọrọ '-ehichapụ', ọ wepụrụ ule faịlụ.txt.

7. Tọọ Max Size nke faịlụ na-ebufe

Ị nwere ike ezipụta nha faịlụ Max ka ebufe ma ọ bụ mekọrịta. Ị nwere ike ime ya na nhọrọ \–max-size N'ebe a ọmụmaatụ, nha faịlụ Max bụ 200k, yabụ iwu a ga-ebufe naanị faịlụ ndị ha nhata ma ọ bụ obere karịa 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. Akpaaka Hichapụ isi iyi Files Mgbe Ịga nke Ọma Nyefee

Ugbu a, ọ bụrụ na ị nwere isi ihe nkesa weebụ na ihe nkesa ndabere data, ị mepụtara nkwado ndabere kwa ụbọchị ma mekọrịta ya na ihe nkesa ndabere gị, ugbu a ị chọghị idobe nkwado ndabere nke mpaghara ahụ na sava weebụ gị.

Yabụ, ị ga-echere ka mbufe ahụ mezue wee hichapụ faịlụ ndabere mpaghara ahụ na aka gị? N'ezie NO. Enwere ike ime nhichapụ akpaaka a site na iji nhọrọ '-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. Mee a Dry Run na rsync

Ọ bụrụ na ị bụ onye ọhụrụ na-eji rsync ma ị maghị ihe iwu gị ga-eme. Rsync nwere ike mebie ihe ndị dị na ebe nchekwa ebe ị na-aga ma emezigharị nwere ike bụrụ ọrụ na-agwụ ike.

[Ị nwekwara ike ịmasị: Otu esi emekọrịta sava weebụ/saịtị abụọ Apache site na iji Rsync]

Iji nhọrọ a agaghị eme mgbanwe ọ bụla na faịlụ ma gosipụta mmepụta nke iwu ahụ, ma ọ bụrụ na mmepụta ahụ gosipụtara otu ihe ahụ ịchọrọ ime mgbe ahụ ị nwere ike wepu nhọrọ '-dry-run' na iwu gị wee na-agba ọsọ na . Ọnụ.

 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 Tọọ oke bandwit na nyefee faịlụ

Ị nwere ike ịtọ oke bandwit ka ị na-ebufe data site n'otu igwe gaa na igwe ọzọ site na enyemaka nke '-bwlimit'nhọrọ. Nhọrọ a na-enyere anyị aka ịmachi bandwit 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

Ọzọkwa, site na ndabara rsync syncs gbanwere blocks na bytes naanị, ọ bụrụ na ịchọrọ n'ụzọ doro anya ịchọrọ ịmekọrịta faịlụ niile, ị ga-eji ya '-W' nhọrọ.

 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

Nke ahụ bụ ihe niile na rsync ugbu a, ị nwere ike ịhụ ibe mmadụ maka nhọrọ ndị ọzọ. Jikọọ na Tecment maka nkuzi na-atọ ụtọ karịa n'ọdịniihu. Hapụ okwu gị na aro gị.