inotify ทำงานอย่างไร?


14

ตามที่วิกิพีเดีย ,

inotify เป็นระบบย่อยเคอร์เนล Linux ซึ่งสังเกตเห็นการเปลี่ยนแปลงในระบบไฟล์ มันแทนที่ dnotify ก่อนหน้า

โปรแกรมที่ซิงค์ไฟล์ (เช่น crashplan, dropbox, git) แนะนำในคู่มือผู้ใช้ที่ผู้ใช้เพิ่มmax_user_watches( 1 , 2 , 3 )

จากสิ่งที่ฉันเข้าใจเกี่ยวกับ inotify ระบบปฏิบัติการคือ "บอก" ว่ามีการเปลี่ยนแปลงไฟล์แทนที่จะต้องการให้ระบบปฏิบัติการ "ไปดู" สำหรับการเปลี่ยนแปลง

ฉันคิดว่ามีไฟล์ "inotify" ที่สร้างในทุกไดเรกทอรี ถูกต้องหรือไม่ มีวิธีโต้ตอบกับ inotify จากบรรทัดคำสั่งหรือไม่

ทรัพยากร
เหตุใดจึงไม่จำแนกเหตุการณ์ที่เกิดขึ้นบนเมาท์ NFS
Inotifywait สำหรับไฟล์จำนวนมากในไดเรกทอรี


คุณอาจจะไม่พบคำตอบสำหรับคำถามของคุณด้วยวิธีนี้ (อย่างน้อยไม่ง่าย) แต่คุณควรรันgrep --exclude=arch -r inotifyในเคอร์เนลลินุกซ์

คำตอบ:


21

Inotify เป็นสิ่งอำนวยความสะดวกเคอร์เนลภายใน ไม่มี "inotify file" มีเฉพาะสายระบบinotify_init, inotify_add_watchและinotify_rm_watchที่ช่วยให้กระบวนการในการลงทะเบียนตัวเองรับการแจ้งเตือนเมื่อมีเหตุการณ์บางอย่างเกิดขึ้นระบบแฟ้ม inotify_initเมื่อมีเหตุการณ์เกิดขึ้นในกระบวนการที่ได้รับรายละเอียดของเหตุการณ์ที่ผ่านอธิบายไฟล์ที่ส่งกลับโดย

ระบบปฏิบัติการไม่ได้“ บอก” ว่ามีการเปลี่ยนแปลงไฟล์: รู้เพราะมันทำการเปลี่ยนแปลง เป็นแอปพลิเคชันที่บอกว่ามีการเปลี่ยนแปลงไฟล์แทนที่จะต้องไปดู

โปรแกรมinotifywaitจัดให้มีวิธีที่ง่ายต่อการใช้ inotify จากบรรทัดคำสั่ง

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