Rsync (Sync ຫ່າງໄກສອກຫຼີກ): 10 ຕົວຢ່າງທີ່ໃຊ້ໄດ້ຂອງ Rsync Command ໃນ Linux
Rsync (ຫ່າງໄກສອກຫຼີກ Sync) ແມ່ນຄໍາສັ່ງທີ່ຖືກນໍາໃຊ້ຫຼາຍທີ່ສຸດສໍາລັບການຄັດລອກແລະ synchronizing ໄຟລ໌ແລະໄດເລກະທໍລີຫ່າງໄກສອກຫຼີກເຊັ່ນດຽວກັນກັບຢູ່ໃນທ້ອງຖິ່ນໃນລະບົບ Linux/Unix. ດ້ວຍຄວາມຊ່ວຍເຫຼືອຂອງ ຄຳ ສັ່ງ rsync ທ່ານສາມາດຄັດລອກແລະ synchronize ຂໍ້ມູນຂອງທ່ານຈາກໄລຍະໄກແລະໃນທ້ອງຖິ່ນທົ່ວໄດເລກະທໍລີ, ທົ່ວແຜ່ນແລະເຄືອຂ່າຍ, ເຮັດການ ສຳ ຮອງຂໍ້ມູນແລະການ ສຳ ຮອງລະຫວ່າງສອງເຄື່ອງ Linux.
ບົດຂຽນນີ້ອະທິບາຍ 10 ການ ນຳ ໃຊ້ພື້ນຖານແລະຂັ້ນສູງຂອງ ຄຳ ສັ່ງ rsync ເພື່ອໂອນໄຟລ໌ຂອງທ່ານຈາກໄລຍະໄກແລະຢູ່ໃນເຄື່ອງທີ່ໃຊ້ Linux. ທ່ານບໍ່ ຈຳ ເປັນຕ້ອງເປັນຜູ້ໃຊ້ root ເພື່ອເຮັດ ຄຳ ສັ່ງ rsync.
<
# rsync options source destination
<
ພວກເຮົາສາມາດຕິດຕັ້ງຊຸດ rsync ໂດຍການຊ່ວຍເຫຼືອຂອງ ຄຳ ສັ່ງຕໍ່ໄປນີ້.
# yum install rsync (On Red Hat based systems) # apt-get install rsync (On Debian based systems)
1. ສຳ ເນົາ/ຊິ້ງເອກະສານແລະໄດເລກະທໍລີຢູ່ໃນທ້ອງຖິ່ນ
ຄຳ ສັ່ງຕໍ່ໄປນີ້ຈະປະກອບເອກະສານດຽວຢູ່ໃນເຄື່ອງຂອງທ້ອງຖິ່ນຈາກບ່ອນ ໜຶ່ງ ຫາສະຖານທີ່ອື່ນ. ນີ້ຢູ່ໃນຕົວຢ່າງນີ້, ຊື່ file file backup.tar ຈຳ ເປັນຕ້ອງຖືກຄັດລອກຫລືຊິ້ງຂໍ້ມູນໃສ່/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
ໃນຕົວຢ່າງຂ້າງເທິງ, ທ່ານສາມາດເຫັນໄດ້ວ່າຖ້າປາຍທາງບໍ່ມີຢູ່ແລ້ວ rsync ຈະສ້າງໄດເລກະທໍລີໂດຍອັດຕະໂນມັດ ສຳ ລັບຈຸດ ໝາຍ ປາຍທາງ.
ຄຳ ສັ່ງຕໍ່ໄປນີ້ຈະໂອນຫລືຊິ້ງຂໍ້ມູນເອກະສານທັງ ໝົດ ຈາກໄດເລກະທໍລີ ໜຶ່ງ ໄປຫາໄດເລກະທໍລີທີ່ແຕກຕ່າງກັນໃນເຄື່ອງດຽວກັນ. ນີ້ຢູ່ໃນຕົວຢ່າງນີ້,/root/rpmpkgs ມີບາງເອກະສານຊຸດ rpm ແລະທ່ານຕ້ອງການໃຫ້ແຟ້ມເອກະສານນັ້ນເກັບໄວ້ໃນ/tmp/ສຳ ຮອງ/folder.
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. ສຳ ເນົາ/Sync Files ແລະ Directory ໄປຫາຫຼືຈາກ Server
ຄຳ ສັ່ງນີ້ຈະເຮັດການຮວບຮວມເອົາໄດເລກະທໍລີຈາກເຄື່ອງທ້ອງຖິ່ນໄປຫາເຄື່ອງຈັກທີ່ຢູ່ໄກ. ຕົວຢ່າງ: ມີໂຟນເດີຢູ່ໃນຄອມພິວເຕີ້ທ້ອງຖິ່ນຂອງທ່ານ "rpmpkgs" ເຊິ່ງມີບາງຊຸດ RPM ແລະທ່ານຕ້ອງການເນື້ອຫາຂອງໄດເລກະທໍລີໃນທ້ອງຖິ່ນສົ່ງໄປທີ່ server ຫ່າງໄກສອກຫຼີກ, ທ່ານສາມາດໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້.
[[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
ຄຳ ສັ່ງນີ້ຈະຊ່ວຍໃຫ້ທ່ານສາມາດເກັບຂໍ້ມູນໄດເລກະທໍລີຫ່າງໄກສອກຫຼີກໄປຍັງໄດເລກະທໍລີທ້ອງຖິ່ນ. ນີ້ຢູ່ໃນຕົວຢ່າງນີ້, ໄດເລກະທໍລີ/ເຮືອນ/tarunika/rpmpkgs ທີ່ຢູ່ໃນເຊີຟເວີຫ່າງໄກສອກຫຼີກ ກຳ ລັງຖືກຄັດລອກຢູ່ຄອມພິວເຕີ້ທ້ອງຖິ່ນຂອງທ່ານໃນ/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
ດ້ວຍ rsync, ພວກເຮົາສາມາດໃຊ້ SSH (Secure Shell) ສຳ ລັບການໂອນຂໍ້ມູນ, ໂດຍໃຊ້ໂປໂຕຄອນ SSH ໃນຂະນະທີ່ໂອນຂໍ້ມູນຂອງພວກເຮົາທ່ານສາມາດຮັບປະກັນວ່າຂໍ້ມູນຂອງທ່ານ ກຳ ລັງຖືກໂອນເຂົ້າໃນການເຊື່ອມຕໍ່ທີ່ປອດໄພກັບການເຂົ້າລະຫັດເພື່ອບໍ່ມີໃຜສາມາດອ່ານຂໍ້ມູນຂອງທ່ານໃນຂະນະທີ່ ກຳ ລັງຖືກໂອນຍ້າຍ ໃນໄລຍະສາຍໃນອິນເຕີເນັດ.
ເຊັ່ນດຽວກັນເມື່ອພວກເຮົາໃຊ້ rsync ພວກເຮົາ ຈຳ ເປັນຕ້ອງໃຫ້ລະຫັດຜູ້ໃຊ້/ລະຫັດຜ່ານເພື່ອເຮັດ ສຳ ເລັດວຽກງານສະເພາະນັ້ນ, ດັ່ງນັ້ນການໃຊ້ຕົວເລືອກ SSH ຈະສົ່ງການເຂົ້າສູ່ລະບົບຂອງທ່ານດ້ວຍລະຫັດເຂົ້າລະຫັດເພື່ອໃຫ້ລະຫັດລັບຂອງທ່ານປອດໄພ.
ເພື່ອລະບຸອະນຸສັນຍາກັບ rsync ທ່ານຕ້ອງການໃຫ້ຕົວເລືອກ "-e" ກັບຊື່ໂປໂຕຄອນທີ່ທ່ານຕ້ອງການໃຊ້. ນີ້ຢູ່ໃນຕົວຢ່າງນີ້, ພວກເຮົາຈະໃຊ້ "ssh" ກັບຕົວເລືອກ "-e" ແລະ ດຳ ເນີນການໂອນຂໍ້ມູນ.
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. ສະແດງຄວາມຄືບ ໜ້າ ໃນຂະນະທີ່ໂອນຂໍ້ມູນກັບ rsync
ເພື່ອສະແດງຄວາມຄືບ ໜ້າ ໃນຂະນະທີ່ໂອນຂໍ້ມູນຈາກເຄື່ອງ ໜຶ່ງ ໄປຫາເຄື່ອງອື່ນ, ພວກເຮົາສາມາດໃຊ້ຕົວເລືອກ 'rog ຜູ້ດູແລເວັບ' ສຳ ລັບມັນ. ມັນສະແດງເອກະສານແລະເວລາທີ່ຍັງເຫຼືອເພື່ອເຮັດ ສຳ ເລັດການໂອນຍ້າຍ.
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. ການໃຊ້ຕົວເລືອກ –include ແລະ cexclude
ສອງຕົວເລືອກເຫຼົ່ານີ້ຊ່ວຍໃຫ້ພວກເຮົາລວມເອົາແລະຍົກເວັ້ນເອກະສານໂດຍການ ກຳ ນົດຕົວ ກຳ ນົດຕ່າງໆກັບຕົວເລືອກເຫຼົ່ານີ້ຊ່ວຍໃຫ້ພວກເຮົາ ກຳ ນົດເອກະສານຫລືໄດເລກະທໍລີທີ່ທ່ານຕ້ອງການລວມເຂົ້າໃນການຊິ້ງຂໍ້ມູນຂອງທ່ານແລະຍົກເວັ້ນເອກະສານແລະແຟ້ມທີ່ທ່ານບໍ່ຕ້ອງການໂອນຍ້າຍ.
ນີ້ຢູ່ໃນຕົວຢ່າງນີ້, ຄຳ ສັ່ງ rsync ຈະປະກອບມີເອກະສານແລະໄດເລກະທໍລີເຫຼົ່ານັ້ນເທົ່ານັ້ນເຊິ່ງເລີ່ມຕົ້ນດ້ວຍ 'R' ແລະຍົກເວັ້ນເອກະສານແລະໄດເລກະທໍລີອື່ນໆທັງ ໝົດ.
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. ການໃຊ້ –delete Option
ຖ້າເອກະສານຫລືໄດເລກະທໍລີບໍ່ມີຢູ່ທີ່ແຫຼ່ງ, ແຕ່ມີຢູ່ໃນຈຸດ ໝາຍ ປາຍທາງແລ້ວ, ທ່ານອາດຈະຕ້ອງການລຶບໄຟລ໌/ໄດເລກະທໍລີທີ່ມີຢູ່ນັ້ນຢູ່ທີ່ເປົ້າ ໝາຍ ໃນຂະນະທີ່ ກຳ ລັງຊິ້ງຢູ່.
ພວກເຮົາສາມາດໃຊ້ຕົວເລືອກ“ ລຶບ” ເພື່ອລຶບໄຟລ໌ທີ່ບໍ່ມີຢູ່ໃນໄດເລກະທໍລີແຫຼ່ງ.
ແຫລ່ງທີ່ມາແລະເປົ້າ ໝາຍ ແມ່ນຢູ່ໃນການຊິ້ງຂໍ້ມູນ. ຕອນນີ້ສ້າງ 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
ເປົ້າ ໝາຍ ມີເອກະສານ ໃໝ່ ທີ່ເອີ້ນວ່າ test.txt, ເມື່ອປະສານກັບແຫລ່ງທີ່ມີຕົວເລືອກ 'el ຍົກເລີກ', ມັນໄດ້ລຶບ test.txt ຂອງເອກະສານອອກ.
7. ຕັ້ງຄ່າຂະ ໜາດ ສູງສຸດຂອງໄຟລ໌ທີ່ຈະໂອນ
ທ່ານສາມາດ ກຳ ນົດຂະ ໜາດ ໄຟລ໌ Max ທີ່ຈະໂອນຫລືຊິ້ງຂໍ້ມູນໄດ້. ທ່ານສາມາດເຮັດມັນດ້ວຍ "-max-size" ທາງເລືອກ. ນີ້ຢູ່ໃນຕົວຢ່າງນີ້, ຂະ ໜາດ ໄຟລ໌ສູງສຸດ 200k, ດັ່ງນັ້ນ ຄຳ ສັ່ງນີ້ຈະໂອນໃຫ້ພຽງແຕ່ໄຟລ໌ເຫຼົ່ານັ້ນເທົ່າກັບຫຼືນ້ອຍກວ່າ 200k.
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. ລຶບໄຟລ໌ແຫຼ່ງຂໍ້ມູນອັດຕະໂນມັດພາຍຫຼັງການໂອນຍ້າຍ ສຳ ເລັດ
ໃນປັດຈຸບັນ, ສົມມຸດວ່າທ່ານມີເຄື່ອງແມ່ຂ່າຍເວັບໄຊຕ໌ຕົ້ນຕໍແລະເຄື່ອງແມ່ຂ່າຍສໍາຮອງຂໍ້ມູນ, ທ່ານໄດ້ສ້າງການສໍາຮອງຂໍ້ມູນປະຈໍາວັນແລະຊິ້ງຂໍ້ມູນກັບເຄື່ອງແມ່ຂ່າຍສໍາຮອງຂອງທ່ານ, ຕອນນີ້ທ່ານບໍ່ຕ້ອງການເກັບສໍາເນົາສໍາຮອງຂໍ້ມູນທ້ອງຖິ່ນນັ້ນໄວ້ໃນ server ຂອງທ່ານ.
ດັ່ງນັ້ນ, ທ່ານຈະລໍຖ້າການໂອນຍ້າຍໃຫ້ ສຳ ເລັດແລະຫຼັງຈາກນັ້ນລຶບເອກະສານ ສຳ ຮອງທ້ອງຖິ່ນເຫລົ່ານັ້ນດ້ວຍຕົນເອງບໍ? ຂອງລາຍວິຊາ NO. ການລຶບແບບອັດຕະໂນມັດນີ້ສາມາດເຮັດໄດ້ໂດຍໃຊ້ຕົວເລືອກ 'overemove-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. ເຮັດການແລ່ນແຫ້ງດ້ວຍ rsync
ຖ້າທ່ານເປັນຄົນ ໃໝ່ ແລະໃຊ້ rsync ແລະບໍ່ຮູ້ວ່າ ຄຳ ສັ່ງຂອງທ່ານຈະເຮັດຫຍັງແນ່. Rsync ສາມາດເຮັດໃຫ້ສິ່ງທີ່ຢູ່ໃນໂຟນເດີຈຸດຫມາຍປາຍທາງຂອງທ່ານຖືກຕ້ອງແລະຫຼັງຈາກນັ້ນເຮັດວຽກທີ່ບໍ່ສາມາດເຮັດໄດ້ກໍ່ເປັນວຽກທີ່ ໜ້າ ເບື່ອ.
ການ ນຳ ໃຊ້ຕົວເລືອກນີ້ຈະບໍ່ມີການປ່ຽນແປງໃດໆພຽງແຕ່ ດຳ ເນີນການ ຄຳ ສັ່ງທີ່ແຫ້ງແລ້ງແລະສະແດງໃຫ້ເຫັນຜົນຜະລິດຂອງ ຄຳ ສັ່ງ, ຖ້າຜົນໄດ້ຮັບສະແດງໃຫ້ເຫັນຄືກັນກັບທີ່ທ່ານຕ້ອງການເຮັດ, ທ່ານສາມາດເອົາຕົວເລືອກ '–dry-run' ອອກຈາກ ຄຳ ສັ່ງຂອງທ່ານແລະ ດໍາເນີນການຢູ່ປາຍຍອດໄດ້.
[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. ຕັ້ງຂໍ້ ຈຳ ກັດ Bandwidth ແລະໂອນໄຟລ໌
ທ່ານສາມາດ ກຳ ນົດຂີດ ຈຳ ກັດຂອງແບນວິດໃນຂະນະທີ່ໂອນຂໍ້ມູນຈາກເຄື່ອງ ໜຶ່ງ ໄປຍັງເຄື່ອງອື່ນໂດຍການຊ່ວຍເຫຼືອຂອງຕົວເລືອກ 'wbwlimit'. ຕົວເລືອກນີ້ຊ່ວຍໃຫ້ພວກເຮົາ ຈຳ ກັດແບນວິດ 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
ນອກຈາກນີ້, ໂດຍຄ່າເລີ່ມຕົ້ນ rsync syncs ທີ່ປ່ຽນແປງແລະໄບຕ໌ເທົ່ານັ້ນ, ຖ້າທ່ານຕ້ອງການຢ່າງຊັດເຈນຕ້ອງການຊິ້ງເອກະສານທັງ ໝົດ ຫຼັງຈາກນັ້ນທ່ານຈະໃຊ້ຕົວເລືອກ '-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
ທັງ ໝົດ ນີ້ມີພ້ອມທີ່ຈະເບິ່ງ, ທ່ານສາມາດເບິ່ງ ໜ້າ man ສຳ ລັບຕົວເລືອກເພີ່ມເຕີມ. ຕິດຕໍ່ກັບ Tecmint ເພື່ອການສອນທີ່ ໜ້າ ຕື່ນເຕັ້ນແລະ ໜ້າ ສົນໃຈຫຼາຍຂຶ້ນໃນອະນາຄົດ. ຢ່າປ່ອຍໃຫ້ ຄຳ ເຫັນແລະ ຄຳ ແນະ ນຳ ຂອງທ່ານ.