ฉันมีเซิร์ฟเวอร์สองเครื่องที่ควรมีการตั้งค่าเดียวกันยกเว้นความแตกต่างที่ทราบ
โดยวิ่ง:
find / \( -path /proc -o -path /sys -o -path /dev \) -prune -o -print | sort > allfiles.txt
ฉันสามารถค้นหารายการไฟล์ทั้งหมดในเซิร์ฟเวอร์หนึ่งและเปรียบเทียบกับรายการไฟล์ในเซิร์ฟเวอร์อื่น นี่จะแสดงให้ฉันเห็นความแตกต่างในชื่อของไฟล์ที่อยู่บนเซิร์ฟเวอร์
สิ่งที่ฉันต้องการทำจริง ๆ ก็คือเรียกใช้ checksum ของไฟล์ทั้งหมดบนเซิร์ฟเวอร์ทั้งสองและเปรียบเทียบกับไฟล์เหล่านั้นเพื่อค้นหาว่าเนื้อหาต่างกันอย่างไร เช่น
find / \( -path /proc -o -path /sys -o -path /dev \) -prune -o -print | xargs /usr/bin/sha1sum
นี่เป็นวิธีที่สมเหตุสมผลที่จะทำสิ่งนี้หรือไม่? ฉันคิดว่า rysnc มีฟังก์ชั่นส่วนใหญ่อยู่แล้ว แต่สามารถใช้เพื่อแสดงรายการความแตกต่างได้หรือไม่?
-print0
แทน-print
และแทนxargs -0
xargs
คุณจะหลีกเลี่ยงปัญหาใด ๆ ที่เกิดจากชื่อไฟล์ "คี่"