rsync เพื่อคัดลอกไฟล์ที่มีการเปลี่ยนแปลง


42

ฉันต้องการคัดลอกไฟล์บางไฟล์จากไดเรกทอรีหนึ่งไปยังตำแหน่งอื่นทุกวัน rsyncฉันต้องการที่จะคัดลอกการเปลี่ยนแปลงเท่านั้นจึงวางแผนที่จะใช้ ไฟล์เหล่านี้เป็นไปตามหลักการตั้งชื่อต่อไปนี้mysql-bin.*

คำสั่งของฉันมีลักษณะดังนี้

# rsync --update -raz --progress /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

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

คำตอบ:


51

มันดูโอเค แม้ว่าคุณจะใช้-zตัวเลือกในการบีบอัดการถ่ายโอนทำไม? ตัวเลือกนี้ใช้ตามปกติเมื่อคุณคัดลอกไปยังเซิร์ฟเวอร์ rsync ระยะไกลผ่านเครือข่ายที่ช้า ในกรณีนี้มันจะบีบอัดและแตกไฟล์ทันทีซึ่งจะเพิ่มซีพียู uage ของคุณโดยไม่มีประโยชน์

-a(ถาวร) ตัวเลือกนัย-r(recursive) ตัวเลือกดังนั้นจึงไม่มีความจำเป็นที่จะต้องระบุอย่างชัดเจนว่าในบรรทัดคำสั่ง

คุณสามารถใช้-nตัวเลือก (หรือ--dry-run) เพื่อตรวจสอบคำสั่งของคุณ มันจะแสดงสิ่งที่มันจะทำโดยไม่ต้องคัดลอกไฟล์ใด ๆ หากต้องการดูสิ่งที่เกิดขึ้นจริงคุณควรใช้-vตัวเลือก (หรือ--verbose)

ดังนั้น:

rsync -uanv /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

และเมื่อคุณมีความสุขที่ไฟล์มีรายชื่อถูกต้องในระยะแห้งให้ลบnv:

rsync -ua --progress /var/lib/mysql/mysql-bin.*  /dbdata/binarylog/

3
ตามที่ระบุไว้ใน--dry-runธงman page โดยทั่วไปมักใช้ร่วมกับ--verboseธง
Benjamin Leinweber
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.