ฉันมีสคริปต์ทุบตีที่ rsync สองไดเรกทอรี บางครั้งมีการเปลี่ยนแปลงโอกาสก็ไม่มีอะไร
ฉันต้องการรันคำสั่งเฉพาะในกรณีที่ rsync ทำการเปลี่ยนแปลงจริง (เพิ่ม / อัปเดตไฟล์) มิฉะนั้นฉันต้องการข้าม มีการตอบกลับที่ฉันควรจะดูหรือไม่?
ฉันมีสคริปต์ทุบตีที่ rsync สองไดเรกทอรี บางครั้งมีการเปลี่ยนแปลงโอกาสก็ไม่มีอะไร
ฉันต้องการรันคำสั่งเฉพาะในกรณีที่ rsync ทำการเปลี่ยนแปลงจริง (เพิ่ม / อัปเดตไฟล์) มิฉะนั้นฉันต้องการข้าม มีการตอบกลับที่ฉันควรจะดูหรือไม่?
คำตอบ:
หากคุณใช้ตัวเลือก -i (และไม่ใช้ตัวเลือก -v) rsync จะพิมพ์บรรทัดไปที่ STDOUT สำหรับการเปลี่ยนแปลงที่ทำไว้เท่านั้น ขึ้นอยู่กับสคริปต์ของคุณซึ่งอาจมีลักษณะเช่นนี้
if [ -n "$(rsync -i /dir1 /dir2)" ]; then
run_command;
fi
==
!=
-i
แฟล็ก - เวอร์ชัน rsync จะ3.1.1
เอาต์พุตsending incremental file list
เมื่อไม่มีการเปลี่ยนแปลง