Android

วิธีใช้ rsync สำหรับการถ่ายโอนและการซิงโครไนซ์ข้อมูลภายในและระยะไกล

Faith Evans feat. Stevie J – "A Minute" [Official Music Video]

Faith Evans feat. Stevie J – "A Minute" [Official Music Video]

สารบัญ:

Anonim

Rsync เป็นยูทิลิตี้บรรทัดคำสั่งที่รวดเร็วและหลากหลายที่ซิงโครไนซ์ไฟล์และโฟลเดอร์ระหว่างสองตำแหน่งผ่านเปลือกระยะไกลหรือจาก / ไปยัง Rsync ระยะไกล มันให้การถ่ายโอนไฟล์ที่เพิ่มขึ้นอย่างรวดเร็วโดยการโอนเฉพาะความแตกต่างระหว่างแหล่งที่มาและปลายทาง

Rsync สามารถใช้สำหรับการทำมิเรอร์ข้อมูลสำรองข้อมูลส่วนเพิ่มคัดลอกไฟล์ระหว่างระบบและใช้แทนคำสั่ง scp , sftp และ cp เพื่อใช้ในชีวิตประจำวัน

ในบทช่วยสอนนี้เราจะแสดงวิธีใช้ rsync ผ่านตัวอย่างที่ใช้งานจริงและคำอธิบายโดยละเอียดเกี่ยวกับตัวเลือก rsync พบบ่อยที่สุด

กำลังติดตั้ง Rsync

ยูทิลิตี้ rsync นั้นได้รับการติดตั้งไว้ล่วงหน้าในลีนุกซ์และ MacOS เป็นส่วนใหญ่ คุณสามารถตรวจสอบว่ามีการติดตั้งในระบบของคุณหรือไม่โดยพิมพ์:

rsync --version

rsync version 3.1.2 protocol version 31

ติดตั้ง Rsync บน Ubuntu และ Debian

sudo apt install rsync

ติดตั้ง Rsync บน CentOS และ Fedora

sudo yum install rsync

ไวยากรณ์คำสั่ง Rsync

ก่อนที่จะเข้าสู่วิธีการใช้คำสั่ง rsync เริ่มต้นด้วยการทบทวนไวยากรณ์พื้นฐาน

การแสดงออกของยูทิลิตี้ rsync ใช้แบบฟอร์มต่อไปนี้:

Local to Local: rsync…… DEST Local to Remote: rsync…… HOST:DEST Remote to Local: rsync… HOST:SRC…

  • OPTION - ตัวเลือก rsync SRC - ไดเร็กทอรีต้นทาง DEST - ไดเรกทอรีปลายทาง USER - ชื่อผู้ใช้ระยะไกล HOST - ชื่อโฮสต์ระยะไกลและที่อยู่ IP

rsync มีตัวเลือกมากมายที่ควบคุมพฤติกรรมทุกด้านของมัน ตัวเลือกที่ใช้กันอย่างแพร่หลายคือ:

  • -a , -a เก็บถาวร, โหมดเก็บถาวร, เทียบเท่ากับ -rlptgoD ตัวเลือกนี้จะบอก rsync ให้ซิงค์ไดเรกทอรีซ้ำโอนอุปกรณ์พิเศษและบล็อกรักษาลิงก์สัญลักษณ์เวลาแก้ไขกลุ่มความเป็นเจ้าของและสิทธิ์ -z , -z --compress ตัวเลือกนี้จะบังคับให้ rsync บีบอัดข้อมูลตามที่ถูกส่งไปยังเครื่องปลายทาง ใช้ตัวเลือกนี้เฉพาะเมื่อการเชื่อมต่อกับเครื่องระยะไกลทำงานช้า -P เทียบเท่ากับ - --partial --progress เมื่อใช้ตัวเลือกนี้ rsync จะแสดงแถบความคืบหน้าในระหว่างการถ่ายโอนและเพื่อเก็บไฟล์ที่ถ่ายโอนบางส่วน มีประโยชน์เมื่อถ่ายโอนไฟล์ขนาดใหญ่ผ่านการเชื่อมต่อเครือข่ายที่ช้าหรือไม่เสถียร --delete เมื่อใช้ตัวเลือกนี้ rsync จะลบไฟล์ที่ไม่เกี่ยวข้องออกจากตำแหน่งปลายทาง มันมีประโยชน์สำหรับการมิเรอร์ -q , --quiet ใช้ตัวเลือกนี้หากคุณต้องการระงับข้อความที่ไม่ใช่ข้อผิดพลาด -e ตัวเลือกนี้ช่วยให้คุณสามารถเลือกเปลือกระยะไกลที่แตกต่างกัน โดยค่าเริ่มต้น rsync มีการกำหนดค่าให้ใช้ ssh

การใช้ Rsync พื้นฐาน

ในการคัดลอกไฟล์เดียวจากหนึ่งไปยังอีกที่ตั้งโลคัลคุณจะต้องรันคำสั่งต่อไปนี้:

rsync -a /opt/filename.zip /tmp/

ผู้ใช้ที่รันคำสั่งต้องมีสิทธิ์อ่านบนตำแหน่งปลายทางและเขียนสิทธิ์บนปลายทาง

การข้ามชื่อไฟล์จากตำแหน่งปลายทางจะคัดลอกไฟล์ด้วยชื่อปัจจุบัน หากคุณต้องการบันทึกไฟล์ภายใต้ชื่ออื่นให้ระบุชื่อใหม่ในส่วนปลายทาง:

rsync -a /opt/filename.zip /tmp/newfilename.zip

ในตัวอย่างด้านล่างเรากำลังสร้างการสำรองข้อมูลท้องถิ่นของไฟล์เว็บไซต์ของเรา:

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

หากไม่มีไดเรกทอรีปลายทาง rsync จะสร้างขึ้นมา

เป็นมูลค่าการกล่าวขวัญว่า rsync ให้การรักษาที่แตกต่างกันไปยังไดเรกทอรีแหล่งที่มีเครื่องหมายทับ / หากคุณเพิ่มเครื่องหมายสแลชต่อท้ายบนไดเรกทอรีต้นทางมันจะคัดลอกเฉพาะเนื้อหาของไดเรกทอรีไปยังไดเรกทอรีปลายทาง เมื่อตัดเครื่องหมายสแลชต่อท้าย rsync จะคัดลอกไดเรกทอรีต้นทางภายในไดเรกทอรีปลายทาง

วิธีใช้ Rsync เพื่อซิงค์ข้อมูลจาก / ไปยังเครื่องระยะไกล

เมื่อใช้ rsync สำหรับการถ่ายโอนระยะไกลต้องทำการติดตั้งทั้งบนต้นทางและเครื่องปลายทาง rsync เวอร์ชันใหม่ถูกกำหนดค่าให้ใช้ SSH เป็นเชลล์ระยะไกลที่เป็นค่าเริ่มต้น

ในตัวอย่างต่อไปนี้เรากำลังถ่ายโอนไดเรกทอรีจากท้องถิ่นไปยังเครื่องระยะไกล:

rsync -a /opt/media/ remote_user@remote_host_or_ip:/opt/media/ หากคุณไม่ได้ตั้งค่าการเข้าสู่ระบบ SSH แบบไม่มีรหัสผ่านเป็นเครื่องระยะไกลคุณจะถูกขอให้ป้อนรหัสผ่านผู้ใช้

หากคุณต้องการถ่ายโอนข้อมูลจากระยะไกลไปยังเครื่องท้องถิ่นคุณต้องใช้ตำแหน่งระยะไกลเป็นแหล่งที่มา:

rsync -a remote_user@remote_host_or_ip:/opt/media/ /opt/media/

หาก SSH บนรีโมตโฮสต์กำลังรับฟังพอร์ตอื่นที่ไม่ใช่ 22 ดีฟอลต์คุณสามารถระบุพอร์ตโดยใช้อ็อพชัน -e :

rsync -a -e "ssh -p 2322" /opt/media/ remote_user@remote_host_or_ip:/opt/media/

เมื่อถ่ายโอนข้อมูลจำนวนมากขอแนะนำให้เรียกใช้คำสั่ง rsync ภายในเซสชันหน้าจอหรือใช้ตัวเลือก -P :

rsync -a -P remote_user@remote_host_or_ip:/opt/media/ /opt/media/

ไม่รวมไฟล์และไดเรกทอรี

เมื่อไม่รวมไฟล์หรือไดเรกทอรีคุณจะต้องใช้พา ธ สัมพัทธ์กับตำแหน่งต้นทาง

มีสองตัวเลือกในการยกเว้นไฟล์และไดเรกทอรี ตัวเลือกแรกคือการใช้อาร์กิวเมนต์ --exclude และระบุไฟล์และไดเรกทอรีที่คุณต้องการยกเว้นในบรรทัดคำสั่ง

ในตัวอย่างต่อไปนี้เรากำลัง node_modules และ tmp ซึ่งอยู่ภายใน src_directory :

rsync -a --exclude=node_modules --exclude=tmp /src_directory/ /dst_directory/

ตัวเลือกที่สองคือการใช้อาร์กิวเมนต์ --exclude-from และระบุไฟล์และไดเรกทอรีที่คุณต้องการยกเว้นในไฟล์

rsync -a --exclude-from='/exclude-file.txt' /src_directory/ /dst_directory/ /exclude-file.txt

node_modules tmp

ข้อสรุป

ในบทช่วยสอนนี้คุณเรียนรู้วิธีใช้ Rsync เพื่อคัดลอกและซิงโครไนซ์ไฟล์และไดเรกทอรี มีอีกมากมายที่จะเรียนรู้เกี่ยวกับ Rsync ได้ที่หน้าคู่มือผู้ใช้ของ Rsync

อย่าลังเลที่จะแสดงความคิดเห็นหากคุณมีคำถามใด ๆ

เทอร์มินัล rsync