ตรวจสอบการเปลี่ยนแปลงเนื้อหาของโฟลเดอร์


18

ฉันสามารถตรวจสอบการเปลี่ยนแปลงเนื้อหาของไฟล์โดยใช้คำสั่ง tail -f

มีวิธีที่คล้ายกันในการตรวจสอบการเปลี่ยนแปลงของโครงสร้างไดเรกทอรีวิธี tail -f ไฟล์มอนิเตอร์?

ฉันมีกระบวนการทำงานที่ยาวนานซึ่งเพิ่มไฟล์ลงในพา ธ บางอันภายใต้ไดเรกทอรีและฉันต้องการติดตามไฟล์ที่เกิดขึ้นเนื่องจากมัน (หรือพวกเขา) เขียน (s) ไปยังไดเรกทอรีและไดเรกทอรีย่อย

คำตอบ:


27

inotifyระบบเคอร์เนลเป็นสิ่งที่คุณต้องการ

  1. ติดตั้งinotify-tools:

    sudo apt-get install inotify-tools
    
  2. ตั้งค่านาฬิกา:

    inotifywait /path/to/directory --recursive --monitor
    
  3. นั่งลงและดูผลลัพธ์


จากman inotifywait:

-m, --monitor
   Instead of exiting  after  receiving  a  single  event,  execute
   indefinitely.   The default behaviour is to exit after the first
   event occurs.
-r, --recursive
   Watch all subdirectories of any directories passed as arguments.
   Watches will be set up recursively to an unlimited depth.   Sym‐
   bolic  links  are  not  traversed.  Newly created subdirectories
   will also be watched.

คุณสามารถใช้--eventตัวเลือกเพื่อดูเหตุการณ์เฉพาะเช่นการสร้างการดัดแปลง ฯลฯ


1
ใส่คนที่มีปัญหานี้: ไม่สามารถดูได้; ขีด จำกัด สูงสุดของนาฬิกา inotify ถึงที่นี่แล้วblog.sorah.jp/2012/01/24/inotify-limitation
johan.i.zahri

1
ในหนึ่งในเซิร์ฟเวอร์ของฉันฉันค้นพบว่ามันไม่ได้เรียกinotify-waitเพียงแค่inotifywaitนั้น พวกเขาจะต้องเปลี่ยนชื่อเพื่อลบเครื่องหมายขีดกลาง
Jamesking56

@ Jamesking56 ฉันแก้ไขยัติภังค์ออก
muru

หมายเหตุความช่วยเหลือสำหรับ inotifywait กล่าวว่ามันต้องการตัวเลือกก่อนเส้นทางของไฟล์
เฟลิกซ์ Dombek

8

--events--eventไม่ได้เป็นตัวกรองที่คุณต้องใช้ ตัวอย่างเช่นต่อไปนี้เป็นบรรทัดคำสั่งสำหรับการตรวจสอบการสร้าง / แก้ไขเหตุการณ์:

# inotifywait . --recursive --monitor --event CREATE --event MODIFY

จากนั้นฉันเห็น:

Setting up watches.  Beware: since -r was given, this may take a while!

และนี่คือรูปแบบของฟีด:

[path] [event] [file]

เช่น

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