จะเก็บไดเรกทอรีโดยอัตโนมัติได้อย่างไร?


47

ฉันต้องการซิงโครไนซ์ทางเดียว

ฉันมีFolder Aคอมพิวเตอร์ของฉันซึ่งได้รับการอัพเดทเนื้อหาอยู่ตลอดเวลา
ส่วนอื่นFolder Bใช้สำหรับการสำรองข้อมูลซึ่งอยู่บน HDD ภายนอก

ตอนนี้สิ่งที่ฉันคาดหวังคือสิ่งที่พิเศษที่มีอยู่ในโฟลเดอร์ A ควรไปที่โฟลเดอร์ B อย่างไรก็ตามสิ่งที่มีอยู่ใน B และไม่อยู่ใน A "" จะไม่ถูกคัดลอกไปยัง A ""

โดยสรุปโฟลเดอร์สำรองอาจคัดลอกทุกอย่างจากโฟลเดอร์ต้นทาง แต่ไม่ควรคัดลอกโฟลเดอร์สำรองฟอร์มไปยังต้นทาง


นั่นไม่ใช่การซิงก์ ....
Braiam

@Braiam มันเรียกว่าอะไร? ฉันไม่สามารถพูดออกมาเหมือนคำว่า OP ถ้าคุณรู้โปรดบอก
Jo Smo

@JoSmo คัดลอก? เอกสารเก่า? การสำรองข้อมูล?
Braiam

@Braiam ขอบคุณตอนนี้ฉันรู้สึกโง่ที่ถาม : D
Jo Smo

คำตอบ:


63

เสียงเหมือนเป็นงานที่สมบูรณ์แบบสำหรับ rsync

sudo rsync -az /path_to/A /path_to/B

- โหมดเก็บถาวร (หมายถึงเรียกซ้ำคัดลอก symlink เป็น symlink รักษาเจ้าของเวลาแก้ไขกลุ่มเจ้าของไฟล์พิเศษและอุปกรณ์)

-z บีบอัดข้อมูล

หากคุณต้องการลบไฟล์ที่ลบใน A จากไฟล์ใน B ให้ใช้--deleteตัวเลือก

สำหรับข้อมูลเพิ่มเติมดู:

https://help.ubuntu.com/community/rsync

คุณสามารถเรียกใช้ rsync จาก cron

sudo crontab -e

เพิ่มในงานรายชั่วโมง

@hourly rsync /path_to/A /path_to/B

https://help.ubuntu.com/community/CronHowto


7
หากมีโฟลเดอร์อยู่ในโฟลเดอร์คุณจะต้องใช้ตัวเลือก -r
John S Gruber

2
ฉันมาช้าไปงานปาร์ตี้ แต่เมื่อต้องการเรียกใช้สคริปต์การซิงโครไนซ์เมื่อฮาร์ดไดรฟ์เชื่อมต่อคุณควรใช้ udev ลองดูคำถามนี้สักครู่แล้ว askubuntu.com/questions/25071/…
jackweirdy

1
@JohnSGruber ตัวเลือก -a หมายถึงการเรียกซ้ำฉันจะแก้ไขคำตอบเพื่อชี้ประเด็นนี้
Tomas

1
หากไฟล์อยู่ในเครื่องเดียวกัน-zเพียงแค่ทำให้กระบวนการช้าลง
Postadelmaga

1
@JoSmo - askubuntu.com/questions/476041/…และaskubuntu.com/questions/609968/…และ rsync ของมนุษย์และถามคำถามใหม่ถ้าจำเป็นแล้วถามในความคิดเห็น
Panther

15

ฉันขอแนะนำให้ใช้ rsync เพื่อจุดประสงค์นี้ Rsync นั้นเร็วมากเสถียรและใช้งานได้หลากหลาย มีการแนะนำที่ดีที่http://help.ubuntu.com/community/rsync

หากคุณต้องการมีส่วนเสริมกราฟิกด้านหน้า: grsync

 sudo rsync -azv --exclude 'dir1' /home/path/folderA/ /home/path/folderB

คำสั่งด้านบนจะคัดลอกจาก folderA ไปยัง folderB ยกเว้น dir1 ธงนั้น

-a preserves time stamps
-z is to enable compression
-v verbose

มีตัวเลือกเพิ่มเติมมากมาย


8

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

คุณอาจพบปัญหาเกี่ยวกับการอนุญาตที่ได้รับการสนับสนุนในรูปแบบไฟล์ ubuntu แต่อาจจะไม่ได้อยู่ในฮาร์ดไดรฟ์ภายนอก (ขึ้นอยู่กับว่าฮาร์ดไดรฟ์ภายนอกจะถูกใช้ในเครื่อง windows นี่อาจเป็นสิ่งที่ดี) คุณจะต้องการซิงค์โดยไม่ได้รับอนุญาต

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

นี่คือข้อมูลบางส่วนเกี่ยวกับมัน: http://www.ubuntugeek.com/unison-file-synchronization-tool.html

และนี่คือบทแนะนำ: http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#tutorial


4
rsync -avPr --ignore-existing /home/username/Research/ /path/to/other/folder/on/hdd/

การทำเช่นนี้จะซิงค์และคัดลอกเฉพาะข้อมูลที่ไม่มีใน /other/folder/on/hdd/


2

ผมเห็นด้วยกับคำตอบอื่น ๆ คุณสามารถใช้ในrsyncในเทอร์มิหรืออินเตอร์เฟซGrsync , luckyBackup , ท่อหรือที่มีชื่อเสียงพร้อมเพรียงกัน

อีกแอปที่ยอดเยี่ยมคือKrusader (ตัวจัดการไฟล์คู่สำหรับ KDE) ในเมนูเครื่องมือคุณสามารถค้นหา "Syncronize Directories" ซึ่งมีประโยชน์มาก

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

อย่างไรก็ตามคุณมีตัวเลือกมากมายและทั้งหมดนั้นมีอยู่ใน Ubuntu Software Center


1

ฉันจะแนะนำ Conduit สำหรับการซิงโครไนซ์อย่างง่าย มันมีระบบซอฟต์แวร์ มันทำสิ่งที่คุณกำลังมองหา


0

มีเครื่องมือเชลล์ที่มีประโยชน์มากที่เรียกว่าrsnapshot - http://www.rsnapshot.org/ - ยูทิลิตี้สแนปชอตของระบบไฟล์สำหรับการสำรองข้อมูลของระบบภายในและระยะไกล ที่ใช้ rsync และฮาร์ดลิงก์ซึ่งทำให้สามารถทำการสำรองข้อมูลระบบไฟล์หลายระบบได้ทันที เพียงทำsudo apt-get install rsnapshotและตรวจสอบinfo rsnapshot


0

คุณสามารถซิงค์ไฟล์ภายในสอง direcotries โดย:

rsync -rv /path/to/directory1/ /path/to/directory2

การทำrsync -rv /path/to/directory1 /path/to/directory2จะสร้างdirectory1ภายในdirectory2เช่นนี้/path/to/directory2/directory1/[files]

คุณสามารถวิ่งได้โดยใช้-nสวิตช์แบบแห้งrsync -rnv /path/to/directory1/ /path/to/directory2

การอ้างอิง: https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories-on-a-vps


0

หากคุณต้องการอินเทอร์เฟซแบบกราฟิกบนระบบที่สามารถกำหนดค่าได้อย่างสูงลอง FreeFileSync ดูตัวอย่าง: http://linuxnorth.wordpress.com/2011/11/29/file-and-folder-synchronization/ โดยเฉพาะอย่างยิ่งคุณต้องการตัวเลือก "อัพเดท" สำหรับการซิงโครไนซ์ที่จะ "คัดลอกไฟล์ใหม่หรือไฟล์ที่อัปเดตไปยัง" โฟลเดอร์ขวา "คือคัดลอกจากโฟลเดอร์ซ้ายไปยังโฟลเดอร์ขวาในจอแสดงผลสองหน้าต่าง

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