วิธีใช้คำสั่ง rsync เพื่อคัดลอกไฟล์บน Ubuntu

How Use Rsync Command Copy Files Ubuntu



rsync เป็นเครื่องมือสำหรับการคัดลอกไฟล์ rsync ใช้เพื่อคัดลอกไฟล์จากคอมพิวเตอร์ของคุณไปยังเครื่องระยะไกล จากเครื่องระยะไกลไปยังคอมพิวเตอร์ของคุณจากไดเร็กทอรีไปยังไดเร็กทอรีอื่นบนคอมพิวเตอร์เครื่องเดียวกัน จากคอมพิวเตอร์ของคุณไปยังฮาร์ดไดรฟ์ภายนอกหรือเครือข่ายที่ใช้ร่วมกัน ฯลฯ rsync ยังสามารถเป็น ใช้ในการสำรองข้อมูลส่วนเพิ่ม

ในบทความนี้ ผมจะแสดงวิธีใช้คำสั่ง rsync เพื่อคัดลอกไฟล์และไดเรกทอรี และทำการสำรองข้อมูลส่วนเพิ่ม ฉันจะใช้ Ubuntu สำหรับการสาธิต แต่การแจกจ่าย Linux สมัยใหม่ควรทำงานได้ดี มาเริ่มกันเลยดีกว่า







กำลังติดตั้ง rsync:

ควรติดตั้ง rsync บน Ubuntu แล้ว แต่ถ้าไม่ได้ติดตั้งบนคอมพิวเตอร์ของคุณด้วยเหตุผลบางประการ คุณสามารถติดตั้งได้จากที่เก็บแพ็คเกจอย่างเป็นทางการของ Ubuntu ด้วยคำสั่งต่อไปนี้:



$sudoฉลาดติดตั้งrsync-และ



รูปแบบของคำสั่ง rsync:

รูปแบบพื้นฐานของคำสั่ง rsync คือ





$ตัวเลือก rsyncแหล่งที่มาปลายทาง
  • แหล่งที่มา สามารถเป็นไฟล์หรือไดเร็กทอรีหรือเส้นทางเครือข่าย
  • ปลายทาง สามารถเป็นไดเร็กทอรีหรือเส้นทางเครือข่าย
  • rsync มีตัวเลือกมากมาย คุณสามารถเปลี่ยนลักษณะการทำงานของ rsync ได้โดยใช้ตัวเลือกเหล่านี้ เราจะพิจารณาตัวเลือกทั่วไปบางส่วนระหว่างทาง

เมื่อคุณใช้ rsync คุณจำเป็นต้องรู้สิ่งต่อไปนี้:

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

การสำรองไฟล์และไดเรกทอรีในเครื่องด้วย rsync:

คุณสามารถคัดลอกไฟล์จากไดเร็กทอรีหนึ่งไปยังไดเร็กทอรีอื่นบนคอมพิวเตอร์ของคุณได้อย่างรวดเร็วด้วย rsync .



ตัวอย่างเช่น สมมติว่าคุณมีไฟล์สำคัญบางไฟล์ในไฟล์ ~/ดาวน์โหลด ไดเรกทอรี ตอนนี้ คุณต้องการสำรองข้อมูลไฟล์ทั้งหมดจากไฟล์ ~/ดาวน์โหลด ไดเร็กทอรีไปยัง USB thumb drive ของคุณ /dev/sdb1 ติดตั้งในไดเร็กทอรี / mnt / myusb .

มาสร้างไฟล์จำลองใน ~/ดาวน์โหลด ไดเรกทอรี

$สัมผัส~/ดาวน์โหลด/ทดสอบ{1..100}

ตอนนี้คัดลอกไฟล์ทั้งหมดจาก ~/ดาวน์โหลด ไดเรกทอรีถึง / mnt / myusb ไดเร็กทอรีด้วยคำสั่ง rsync ต่อไปนี้:

$rsync-avzh~/ดาวน์โหลด/ /mnt/myusb

ควรคัดลอกไฟล์

อย่างที่คุณเห็น ไฟล์ต่างๆ อยู่ใน / mnt / myusb ไดเรกทอรี

คุณยังสามารถคัดลอกทั้งหมด ~/ดาวน์โหลด ไดเร็กทอรีไปยัง USB thumb drive ของคุณดังนี้:

$rsync-avzh~/ดาวน์โหลด/mnt/myusb

อย่างที่คุณเห็น ไดเร็กทอรีทั้งหมดจะถูกคัดลอกไปยังธัมบ์ไดรฟ์ USB

อีกครั้ง หากคุณต้องการคัดลอกไฟล์ทั้งหมดจากไฟล์ ~/ดาวน์โหลด ไดเร็กทอรีไปยังไดเร็กทอรีอื่น (สมมติว่า mydownloads/) บนธัมบ์ไดรฟ์ USB ของคุณ ให้รัน rsync ดังนี้:

$rsync-avzh~/ดาวน์โหลด/ /mnt/myusb/mydownloads

อย่างที่คุณเห็น ไฟล์ต่างๆ ถูกคัดลอกไปยังธัมบ์ไดรฟ์ USB อย่างถูกต้อง

การสำรองไฟล์และไดเรกทอรีระยะไกลด้วย rsync:

ด้วย rsync คุณสามารถคัดลอกไฟล์และไดเร็กทอรีจากเซิร์ฟเวอร์ระยะไกลไปยังระบบไฟล์ในเครื่องหรือธัมบ์ไดรฟ์ USB เพื่อการสำรองข้อมูล คุณยังสามารถคัดลอกไฟล์และไดเร็กทอรีจากระบบไฟล์ในเครื่องของคุณไปยังเซิร์ฟเวอร์สำรองระยะไกลได้อีกด้วย rsync ใช้ SSH สำหรับการคัดลอกไฟล์และไดเรกทอรีไปยัง/จากเซิร์ฟเวอร์ระยะไกล

คุณต้องมีแพ็คเกจเซิร์ฟเวอร์ SSH ( opensh-เซิร์ฟเวอร์ บน Ubuntu) และ rsync แพ็คเกจที่ติดตั้งบนเซิร์ฟเวอร์ระยะไกลหากคุณต้องการใช้ rsync เพื่อวัตถุประสงค์ในการสำรองไฟล์

ตัวอย่างเช่น สมมติว่าคุณต้องการคัดลอกเนื้อหาทั้งหมด (รวมถึงไดเรกทอรี) ของ /www ไดเร็กทอรีจากเซิร์ฟเวอร์ระยะไกลของคุณ www.example1.com กับธัมบ์ไดรฟ์ USB ของคุณที่ติดตั้งอยู่บนเส้นทาง / mnt / myusb บนระบบไฟล์ในเครื่องของคุณ

ในการทำเช่นนั้น คุณสามารถใช้คำสั่ง rsync ต่อไปนี้:

$rsync-avzhราก@www.example1.com:/www/mnt/myusb

บันทึก: ที่นี่, ราก เป็นชื่อผู้ใช้ระยะไกล www.example1.com เป็นชื่อ DNS ของเซิร์ฟเวอร์ระยะไกลและ /www เป็นเส้นทางไดเรกทอรีบนเซิร์ฟเวอร์ระยะไกล คุณยังสามารถใช้ที่อยู่ IP ของเซิร์ฟเวอร์ระยะไกลแทนชื่อ DNS ได้หากต้องการ

คุณอาจเห็นข้อความต่อไปนี้หากคุณกำลังเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลเป็นครั้งแรก เพียงพิมพ์ ใช่ แล้วกด .

ตอนนี้พิมพ์รหัสผ่านสำหรับผู้ใช้ระยะไกล (ในกรณีของฉันคือ ราก ) และกด .

ไฟล์และไดเร็กทอรีทั้งหมดภายใน /www ไดเร็กทอรีรวมทั้งไดเร็กทอรี /www ควรคัดลอกไปยังธัมบ์ไดรฟ์ USB ดังที่คุณเห็นในภาพหน้าจอด้านล่าง

คุณยังสามารถคัดลอกไฟล์จากระบบไฟล์ในเครื่องของคุณไปยังเซิร์ฟเวอร์ระยะไกลด้วย rsync

ในตัวอย่างก่อนหน้านี้ คุณได้สำรองข้อมูลของ /www ไดเร็กทอรีบนเซิร์ฟเวอร์ระยะไกล สมมติว่า ไฟล์บางไฟล์ในเซิร์ฟเวอร์ระยะไกลเสียหาย และคุณต้องการกู้คืนจากข้อมูลสำรอง

ในการทำเช่นนั้น ให้รันคำสั่ง rsync ดังนี้:

$rsync-avzh /mnt/myusb/www/ราก@www.example1.com:/www

ตอนนี้พิมพ์รหัสผ่านของเซิร์ฟเวอร์ระยะไกลของคุณแล้วกด .

ควรคัดลอกไฟล์จากระบบไฟล์ในเครื่องของคุณไปยังเซิร์ฟเวอร์ระยะไกล

การสำรองข้อมูลส่วนเพิ่มด้วย rsync:

ในการสำรองข้อมูลประเภทนี้ แหล่งที่มา และ ปลายทาง ไดเร็กทอรีจะถูกซิงค์ หากมีการเพิ่มไฟล์ใด ๆ ลงใน แหล่งที่มา ไดเร็กทอรีมันถูกเพิ่มลงใน ปลายทาง ไดเร็กทอรีเช่นกัน ในทำนองเดียวกัน หากไฟล์หรือไดเร็กทอรีใด ๆ จากไฟล์ แหล่งที่มา ไดเร็กทอรีจะถูกลบออก จะถูกลบออกจาก ปลายทาง ไดเร็กทอรีเช่นกัน

rsync เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการสำรองข้อมูลส่วนเพิ่ม

สมมติว่าคุณมีไดเรกทอรี ~/คลาวด์ ในผู้ใช้ของคุณ บ้าน ไดเรกทอรี ตอนนี้ คุณต้องการสำรองข้อมูลส่วนเพิ่มของไดเร็กทอรีไปยังธัมบ์ไดรฟ์ USB ที่ติดตั้งบนเส้นทาง / mnt / usb1 บนเซิร์ฟเวอร์ระยะไกล backup.example.com .

บันทึก: คุณต้องมี opensh-เซิร์ฟเวอร์ และ rsync แพ็คเกจที่ติดตั้งบนเซิร์ฟเวอร์ระยะไกลของคุณเพื่อให้ใช้งานได้

ในการสำรองข้อมูลส่วนเพิ่มของ ~/คลาวด์ ให้รันคำสั่งต่อไปนี้:

$rsync-avzh --ลบ --ความคืบหน้า~/คลาวด์/โชวอน@backup.example.com:/mnt/usb1/สำรอง

ตอนนี้พิมพ์รหัสผ่านสำหรับผู้ใช้ระยะไกลแล้วกด .

เนื้อหาของ ~/คลาวด์ ควรคัดลอกไดเร็กทอรีไปยังธัมบ์ไดรฟ์ USB บนเซิร์ฟเวอร์ระยะไกล

อย่างที่คุณเห็น ไฟล์ทั้งหมดจะถูกคัดลอกไปยังธัมบ์ไดรฟ์ USB ที่ติดตั้งบนเซิร์ฟเวอร์สำรองระยะไกล

ตอนนี้ มาลบไฟล์ออกจากระบบไฟล์ในเครื่องแล้วดูว่าเกิดอะไรขึ้น

$rm~/คลาวด์/package.txt

ตอนนี้ ใช้ rsync เพื่อซิงค์ไดเร็กทอรีอีกครั้งด้วยคำสั่งเดิม

$rsync-avzh --ลบ --ความคืบหน้า~/คลาวด์/โชวอน@backup.example.com:/mnt/usb1/สำรอง

อย่างที่คุณเห็นไฟล์ package.txt จะถูกลบออกจากธัมบ์ไดรฟ์ USB ที่ติดตั้งบนเซิร์ฟเวอร์สำรองระยะไกลด้วย

จะไปที่ไหนต่อไป:

คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับ rsync ได้ใน man page ของ rsync man page ของ rsync มีคำอธิบายโดยละเอียดเกี่ยวกับตัวเลือกทั้งหมดของ rsync ฉันขอแนะนำให้คุณลองดู

คุณสามารถเข้าถึงหน้า man ของ rsync ด้วยคำสั่งต่อไปนี้:

$ชายrsync

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