คำถามติดแท็ก synchronization

ใช้แท็กนี้เมื่อหัวข้อเกี่ยวข้องกับระบบการประสานงานเพื่อให้มีข้อมูลหรือสถานะหรือเวลาที่เหมือนกัน มันสามารถเป็นส่วนหนึ่งของความซ้ำซ้อน

8
scp โดยไม่ต้องแทนที่ไฟล์ที่มีอยู่ในปลายทาง
ฉันจะคัดลอกไดเรกทอรีทั้งหมดไปยังไดเรกทอรีที่มีชื่อเดียวกันโดยไม่ต้องแทนที่เนื้อหาในไดเรกทอรีปลายทางได้อย่างไร (ฉันต้องการเพิ่มเนื้อหาของโฟลเดอร์ปลายทางแทน)

6
วิธีการซิงค์สองโฟลเดอร์ด้วยเครื่องมือบรรทัดคำสั่ง?
เมื่อย้ายไปยัง Linux จาก Windows ฉันต้องการค้นหาซอฟต์แวร์ทางเลือกอื่นสำหรับ Winmerge หรือเรียนรู้เครื่องมือบรรทัดคำสั่งเพื่อเปรียบเทียบและซิงค์สองโฟลเดอร์บน Linux ฉันจะขอบคุณถ้าคุณสามารถบอกวิธีการทำงานต่อไปนี้ในบรรทัดคำสั่ง ... (ฉันได้ศึกษาต่างและ rsync แต่ฉันยังต้องการความช่วยเหลือบางอย่าง) เรามีสองโฟลเดอร์: "/ home / user / A" และ "/ home / user / B" โฟลเดอร์ A เป็นสถานที่ที่บันทึกไฟล์และโฟลเดอร์ปกติและโฟลเดอร์ B เป็นโฟลเดอร์สำรองที่ทำหน้าที่เป็นมิเรอร์ที่สมบูรณ์ของโฟลเดอร์ A (ไม่มีการบันทึกหรือแก้ไขโดยตรงจากผู้ใช้ในโฟลเดอร์ B) คำถามของฉันคือ: จะแสดงรายการไฟล์ที่มีเฉพาะในโฟลเดอร์ B ได้อย่างไร (เช่นสิ่งที่ถูกลบออกจากโฟลเดอร์ A ตั้งแต่การซิงโครไนซ์ครั้งล่าสุด) จะคัดลอกไฟล์ที่มีอยู่ในโฟลเดอร์ B เท่านั้นกลับไปยังโฟลเดอร์ A ได้อย่างไร? วิธีแสดงรายการไฟล์ที่มีอยู่ในทั้งสองโฟลเดอร์ แต่มีการประทับเวลาหรือขนาดต่างกัน (อันที่ถูกแก้ไขในโฟลเดอร์ …

6
ฉันจะดำเนินการ "คัดลอกหากมีการเปลี่ยนแปลง" ได้อย่างไร?
ฉันต้องการคัดลอกชุดไฟล์จากไดเรกทอรี A ไปยังไดเรกทอรี B โดยมีข้อแม้ว่าหากไฟล์ในไดเรกทอรี A เหมือนกับไฟล์ในไดเรกทอรี B ไฟล์นั้นไม่ควรคัดลอก (และเวลาในการปรับเปลี่ยนไม่ควรเป็น ปรับปรุง) มีวิธีที่จะทำเช่นนั้นกับเครื่องมือที่มีอยู่โดยไม่ต้องเขียนสคริปต์ของตัวเองเพื่อทำมันได้หรือไม่ หากต้องการอธิบายรายละเอียดเล็กน้อยเกี่ยวกับกรณีการใช้งานของฉัน: ฉันกำลังสร้าง.cไฟล์จำนวนมากในไดเรกทอรีชั่วคราว (โดยวิธีการที่จะสร้างไฟล์ทั้งหมดโดยไม่มีเงื่อนไข) และเมื่อฉันสร้างไฟล์ขึ้นมาใหม่ฉันต้องการคัดลอกเท่านั้น รายการที่เปลี่ยนไปเป็นไดเรกทอรีต้นทางจริงปล่อยให้รายการที่ไม่มีการเปลี่ยนแปลง (ด้วยเวลาการสร้างเก่า) เพื่อที่makeจะรู้ว่าไม่จำเป็นต้องคอมไพล์ใหม่ (ไม่ใช่ไฟล์ที่สร้างขึ้นทั้งหมดเป็น.cไฟล์ดังนั้นฉันต้องทำการเปรียบเทียบแบบไบนารีมากกว่าการเปรียบเทียบข้อความ) (ตามที่ทราบ: นี่เป็นคำถามที่เกิดขึ้นฉันถามบนhttps://stackoverflow.com/questions/8981552/speeding-up-file-comparions-with-cmp-on-cygwin/8981552/speeding-up-file-comparions-with-cmp-on-cygwin/8981762#8981762ซึ่งฉันพยายามอยู่ เพื่อเพิ่มความเร็วให้กับไฟล์สคริปต์ที่ฉันใช้ในการดำเนินการนี้ แต่มันเกิดขึ้นกับฉันว่าฉันควรถามว่ามีวิธีที่ดีกว่าในการทำสิ่งนี้มากกว่าการเขียนสคริปต์ของตัวเองโดยเฉพาะอย่างยิ่งตั้งแต่วิธีง่ายๆในการทำเชลล์ สคริปต์จะเรียกใช้บางอย่างเช่นcmpไฟล์ทุกคู่และการเริ่มต้นกระบวนการทั้งหมดใช้เวลานานเกินไป)

2
การย้ายไฟล์ที่ถูกผนวกเข้านั้นปลอดภัยหรือไม่?
ฉันมีกระบวนการ Node.js ที่ใช้ในการเพิ่มสายที่จะfs.appendFile file.logเฉพาะสายที่สมบูรณ์ประมาณ 40 ตัวอักษรต่อบรรทัดถูกผนวกสายเช่นเป็นเหมือนfs.appendFile("start-end")ไม่เหมือน 2 สายและfs.appendFile("start-") fs.appendFile("end")หากฉันย้ายไฟล์นี้ไปfile2.logฉันจะแน่ใจได้หรือไม่ว่าไม่มีเส้นใดที่สูญหายหรือคัดลอกบางส่วน?

3
มีความจริงกับปรัชญาที่คุณควรซิงค์; ซิงค์; ซิงค์; ซิงค์?
เมื่อฉันได้รับการแนะนำให้รู้จักกับ Linux เป็นครั้งแรกที่ทำงานกับ Cisco Systems ในปี 2000 ฉันได้รับการสอนถึงข้อดีของsyncคำสั่งที่ใช้ในการฟลัชบัฟเฟอร์ลงดิสก์เพื่อป้องกันความเสียหายของระบบไฟล์ / การสูญหายของข้อมูล ฉันได้รับการบอกเล่าจากเพื่อนร่วมงานที่นั่นไม่เพียง แต่จากเพื่อน ๆ ในวิทยาลัยที่มักจะเรียกใช้sync"ไม่กี่" หรือ "พวง" หลายครั้งนั่นอาจจะเป็น 5 - 10 ครั้งแทนที่จะเป็นเพียงครั้งเดียว ฉันยังคงนิสัยนี้มานับ แต่มีบุญใด ๆ นี้ มีใครเคยได้ยินเรื่องนี้บ้างไหม? และที่สำคัญที่สุดคือทุกคนสามารถให้เหตุผล / หลักฐานเชิงประจักษ์ที่ดีสำหรับ / กับความคิดที่คุณต้องใช้syncมากกว่าหนึ่งครั้งเพื่อให้มีประสิทธิภาพหรือไม่

5
ซิงค์ไดเรกทอรีทั้งสองทิศทางด้วย rsync
ฉันรู้เกี่ยวกับ rsyn และฉันใช้ rsync เพื่อซิงค์ระหว่าง mac และเซิร์ฟเวอร์ linux ดังนี้ rsync -r -t -v MAC LINUX rsync -r -t -v LINUX MAC ฉันคาดว่าจะเรียกใช้คำสั่งแรกเพื่อซิงค์ แต่ฉันต้องการคำสั่งที่สองเช่นกันเมื่อมีการเปลี่ยนแปลงใน LINUX ฉันพลาดอะไรไปรึเปล่า? rsync มีตัวเลือกในการซิงค์ระหว่างสองไดเรกทอรีหรือไม่

8
มีวิธีใดบ้างในการซิงค์โครงสร้างไดเรกทอรีเมื่อไฟล์ทั้งสองมีอยู่แล้ว?
ฉันมีสองไดรฟ์ที่มีไฟล์เดียวกัน แต่โครงสร้างไดเร็กตอรี่นั้นแตกต่างกันโดยสิ้นเชิง มีวิธีใดที่จะ 'ย้าย' ไฟล์ทั้งหมดในฝั่งปลายทางเพื่อให้ตรงกับโครงสร้างของด้านที่มา? ด้วยสคริปต์อาจ? ตัวอย่างเช่นไดรฟ์ A มี: /foo/bar/123.txt /foo/bar/234.txt /foo/bar/dir/567.txt ในขณะที่ไดรฟ์ B มี: /some/other/path/123.txt /bar/doo2/wow/234.txt /bar/doo/567.txt ไฟล์ที่สงสัยมีขนาดใหญ่มาก (800GB) ดังนั้นฉันไม่ต้องการคัดลอกอีกครั้ง ฉันต้องการซิงค์โครงสร้างโดยสร้างไดเรกทอรีที่จำเป็นและย้ายไฟล์ ฉันคิดว่าสคริปต์แบบเรียกซ้ำซึ่งจะค้นหาไฟล์ต้นฉบับแต่ละไฟล์บนปลายทางจากนั้นย้ายไปยังไดเรกทอรีที่ตรงกันและสร้างมันหากจำเป็น แต่ - มันเกินความสามารถของฉัน! โซลูชันที่สวยงามอีกชุดหนึ่งมอบให้ที่นี่: /superuser/237387/any-way-to-sync-directory-structure-when-the-files-are-already-on-both-soth-23-385/any

10
ฉันจะคัดลอกไฟล์และไดเรกทอรีทั้งหมดยกเว้นบางไฟล์ผ่าน ssh ได้อย่างไร
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Unix & Linux Stack Exchange อพยพ 8 ปีที่ผ่านมา ใช้บรรทัดคำสั่ง Linux ฉันใช้scpคำสั่งเพื่อคัดลอกไฟล์และโฟลเดอร์ทั้งหมดจากไดเรกทอรีที่แน่นอน อย่างไรก็ตามฉันไม่ชอบใช้แบนด์วิดท์สำหรับการคัดลอกสิ่งที่ฉันไม่ค่อยเปลี่ยนแปลงเหมือนtiny_mceโฟลเดอร์ของฉัน เคล็ดลับในการคัดลอกทุกอย่างคืออะไร แต่ข้ามรายการย่อของโฟลเดอร์

6
การซิงโครไนซ์ไฟล์แบบเรียลไทม์
มีเครื่องมือใดที่สามารถซิงค์ไฟล์ระหว่างเซิร์ฟเวอร์ลินุกซ์ตั้งแต่สองเครื่องขึ้นไปทันทีหลังจากเขียนไฟล์ในดิสก์หรือไม่ rsyncคำสั่งไม่เหมาะกับฉันเกี่ยวกับเรื่องนี้เพราะถ้าผมตั้งrsyncใน cron, เวลาต่ำสุดที่ฉันสามารถตั้งค่าเป็น 1 นาที แต่ฉันต้องการมันบนพื้นฐานแบบ real-time

2
ซิงค์โฟลเดอร์ระหว่างคอมพิวเตอร์ 2 เครื่องกับตัวเฝ้าดูระบบแฟ้มเพื่อให้ทุกครั้งที่มีการแก้ไขไฟล์จะถูกจำลองแบบทันที
ฉันมี: เซิร์ฟเวอร์ Linux ที่ฉันเชื่อมต่อผ่าน SSH บน IP 203.0.113.0 พอร์ต 1234 คอมพิวเตอร์ที่บ้าน (หลังเราเตอร์) IP สาธารณะ 198.51.100.17 ซึ่งเป็น Debian หรือ Windows + Cygwin อะไรคือวิธีที่ง่ายที่สุดในการ/home/inprogress/ ซิงโครไนซ์โฟลเดอร์(ทั้งสองทิศทาง), เล็กน้อยrsyncแต่ด้วยตัวเฝ้าดูระบบไฟล์ดังนั้นทุกครั้งที่มีการแก้ไขไฟล์มันจะถูกเรพลิเคตทันที (เช่นไม่จำเป็นต้องเรียกโปรแกรมซิงค์ด้วยตนเอง) ฉันกำลังมองหาโซลูชันบรรทัดคำสั่ง / no-GUI เนื่องจากเซิร์ฟเวอร์ไม่มีส่วนหัว มีวิธีแก้ปัญหาในตัว Linux / Debian หรือไม่?

1
วิธีที่ดีที่สุดในการซิงค์ไฟล์ - คัดลอกเฉพาะไฟล์ที่มีอยู่และเฉพาะในกรณีที่ใหม่กว่าเป้าหมาย
ฉันทำข้อมูลนี้ให้ตรงกับบน Ubuntu 12.04 ไฟล์โดยทั่วไปคือไฟล์ข้อความขนาดเล็ก (รหัส) ฉันต้องการที่จะคัดลอก (รักษาแสตมป์ mtime) จากsourceไดเรกทอรีไปtargetแต่ฉันเพียงต้องการที่จะคัดลอกไฟล์ถ้าในtarget ที่มีอยู่แล้วและเป็นที่เก่าsourceกว่าหนึ่งใน ดังนั้นฉันจึงคัดลอกไฟล์ที่ใหม่กว่าsourceเท่านั้น แต่ต้องมีอยู่targetไม่เช่นนั้นจะไม่ถูกคัดลอก ( sourceจะมีไฟล์มากกว่าtargetนั้น) ฉันจะคัดลอกจากจริงsourceไปยังหลายtargetไดเรกทอรี ฉันพูดถึงเรื่องนี้ในกรณีที่มีผลกระทบต่อการเลือกวิธี อย่างไรก็ตามฉันสามารถเรียกใช้คำสั่งของฉันได้อย่างง่ายดายหลายครั้งโดยระบุใหม่targetทุกครั้งหากเป็นสิ่งที่จำเป็น

3
ย้ายไฟล์และลบไดเรกทอรีด้วย rsync หรือไม่
เมื่อเร็ว ๆ นี้ฉันต้องการลบไฟล์จำนวนมาก (มากกว่า 1 ล้านไฟล์) และฉันได้อ่าน: rsync -av --delete `mktemp -d`/ ~/source && rmdir ~/source rm -rfเป็นหนึ่งในวิธีที่ดีที่สุดมากที่สุดที่จะทำเช่นนั้นและฉันสามารถรับรองว่ามันเร็วกว่า ฉันไม่ใช่ผู้เชี่ยวชาญในเรื่องนี้ แต่จากความเข้าใจของฉันแล้วเหตุผลที่ประสิทธิภาพของ rsync มีบางอย่างที่ต้องทำตามวิธีที่รายการไฟล์ (LIFO แทนที่จะเป็น FIFO ที่ฉันคิดว่า) ตอนนี้ปัญหาคือฉันต้องย้ายไฟล์จำนวนมากด้วยวิธีที่มีประสิทธิภาพ หลังจากค้นหาแล้วฉันก็พบสิ่งนี้: rsync -av --ignore-existing --remove-source-files ~/source ~/destination ขณะนี้ลบทั้งหมดย้ายไฟล์ใน~/sourceไดเรกทอรียังคงมี เนื่องจากฉันมีโครงสร้างไดเรกทอรีคล้ายกับ "round-robin" จำนวนfiles/directoriesใกล้เคียงกับ 1 ดังนั้นฉันจึงถูกบังคับให้เรียกใช้คำสั่งแรกอีกครั้งเพื่อกำจัดไดเรกทอรีทั้งหมด: rsync -av --ignore-existing --remove-source-files ~/source ~/destination && \ rsync -av …


4
ทำให้ไฟล์กำหนดค่าซิงค์กับพีซีหลาย ๆ เครื่อง
ฉันมีไม่กี่เครื่องที่แตกต่างกันและลินุกซ์จำนวนมากของการตั้งค่าไฟล์(และโฟลเดอร์)ในแต่ละ ตัวอย่างเช่น: ~/.ssh/config ~/.config/openbox/rc.xml ~/.config/openbox/autostart.sh ~/.scripts/ ( folder ) ~/.bashrc ...etc มีวิธีการที่ง่ายและสวยงามในการซิงค์ไฟล์เหล่านี้ระหว่างเครื่องของฉันหรือไม่(ไม่มีการเชื่อมต่ออินเทอร์เน็ต) ? นอกจากนี้บางไฟล์จะต้องใช้กระบวนการซิงค์ขั้นสูงเพิ่มเติมเนื่องจากจะต้องแตกต่างกันเล็กน้อย ... ตัวอย่างเช่น: แป้นพิมพ์เดสก์ท็อปของฉันมีฮ็อตคีย์ที่หลากหลายซึ่งแล็ปท็อปของฉันแทบไม่มีเลย ฉันใช้XF86Mailเปิดธันเดอร์เบิร์ดบนเดสก์ท็อป แต่Meta+ Mบนแล็ปท็อปของฉัน หน้าแรกเดสก์ท็อปและเดสก์ท็อปการทำงานของฉันมีทั้งแนว "ผู้ใช้หลายคน" ซึ่งแล็ปท็อปของฉันเหมาะสำหรับฉัน ดังนั้นในแล็ปท็อปของฉันฉันมักจะเก็บไฟล์ 'rc.xml' ไว้สำหรับ openbox ที่/etc/xdg/openbox/rc.xmlแต่บนเดสก์ท็อปที่~/.config/openbox/rc.xml

1
rsync แก้ไขข้อขัดแย้งได้อย่างไร
จะเกิดอะไรขึ้นถ้าเครื่อง A และเครื่อง B ที่ใช้ร่วมกันมีไดเรกทอรีที่ซิงค์อยู่ก่อนหน้านี้rsyncและ A เปลี่ยนไฟล์และ B จะเปลี่ยนไฟล์เดียวกันและคุณเปลี่ยนrsyncจาก A เป็น B บางทีมันอาจจะเป็นอะไรที่เหมือนกับความขัดแย้งที่ผสานกันgitหรือเปล่า? สามารถแก้ไขข้อขัดแย้งได้อย่างง่ายดาย?

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