Inode notify (inotify) β ΡΡΠΎ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Linux kenel, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ API Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΡΠΎΠ±ΡΡΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠΎΠΌΠΈΠΌΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ API ΠΈΠ· ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ ΠΎΡΠΊΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ inotifywait, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π²ΠΎ Π²ΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Linux.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
Π£ΡΠΈΠ»ΠΈΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ inotifywait ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ° inotify-tools, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ Π²ΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² Linux.
ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° Π² Fedora ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Π½Π° Π±Π°Π·Π΅ Fedora Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Π§ΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ Π½Π° Debian ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠ΅, Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠ°ΠΊΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ βExtraβ Archilinux.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² pacman Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ:
ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΡΠΎΠ±ΡΡΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ
Π£ΡΠΈΠ»ΠΈΡΠ° inotifywait ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΈ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΠΎΠ±ΡΡΠΈΡ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
Π ΡΠ°ΠΌΠΎΠΌ ΠΏΡΠΎΡΡΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΡΠΈΠ»ΠΈΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ°ΠΉΠ» ~/.bash_profile Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°:
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠ±ΡΡΠΈΠΈ βOPENβ ΠΈ inotify Π²ΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
/home/doc/.bash_profile OPEN
ΠΡΠ»ΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΏΡΡΡ ΠΊ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Ρ, ΡΠΎ Π±ΡΠ΄ΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π²Π½ΡΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, Π½ΠΎ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ.
Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π²ΡΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ², Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ -r (βrecursive).
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΡΠΈΠ»ΠΈΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Π½ΡΡ ΡΠ°ΡΠΎΠ², ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π·Π°ΠΏΠΈΡΠ°Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ°ΠΉΠ» /proc/sys/fs/inotify/max_user_watches.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ΅.
ΠΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Ρ ΠΎΡΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π½Π°ΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ Π² ΡΠ°ΠΉΠ»Π΅.
Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ -e (ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ βevent) ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ EVENTS.
ΠΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ±ΡΡΠΈΡ βΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈβ Π² ΡΠ°ΠΉΠ»Π΅ ~/.bash_profile, ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΡΠ»ΡΡΠ°Π΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ βmodifyβ,ΡΠΎ Π΅ΡΡΡ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ ΡΠΈΡΠ°Π΅ΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ°ΠΉΠ»Π°, Π½ΠΎ ΡΠ²Π΅Π΄ΠΎΠΌΠΈΡ Π½Π°Ρ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π² Π½Π΅Π³ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅:
Π‘ΠΎΠ±ΡΡΠΈΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΠ΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ:
/home/doc/.bash_profile MODIFY
Π‘ΠΎΠ±ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΠΎ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ:
| Π‘ΠΎΠ±ΡΡΠΈΠ΅ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
| access | ΠΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΡΡΠ΅Π½ΠΈΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Π° Π² Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. |
| modify | Π Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» Π² Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π±ΡΠ»Π° ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° Π·Π°ΠΏΠΈΡΡ. |
| attrib | ΠΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ»Π° Π² Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π±ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ. Π‘ΡΠ΄Π° Π²Ρ ΠΎΠ΄ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΊΠΈ, ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°, ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΠΈ Ρ.Π΄. |
| close_write | ΠΠ°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» Π² Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π±ΡΠ» Π·Π°ΠΊΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΊΡΡΡΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π·Π°ΠΏΠΈΡΠΈ. ΠΡΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π² ΡΠ°ΠΉΠ» Π±ΡΠ»Π° ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° Π·Π°ΠΏΠΈΡΡ. |
| close_nowrite | ΠΠ°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» Π² Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π±ΡΠ» Π·Π°ΠΊΡΡΡ, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π±ΡΠ» ΠΎΡΠΊΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. |
| close | ΠΠ°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» Π² Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π±ΡΠ» Π·Π°ΠΊΡΡΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ Π±ΡΠ» ΠΎΡΠΊΡΡΡ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ close_write ΠΈ close_nowrite, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ Π·Π°ΠΊΡΡΡΠΈΡ Π±ΡΠ΄ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎ ΠΈΠ· ΡΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ. |
| open | ΠΡΠ» ΠΎΡΠΊΡΡΡ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΡΠ°ΠΉΠ» Π² Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. |
| moved_to | Π€Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ Π² Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. ΠΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΈΠ· ΠΈ Π² ΡΠΎΡ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. |
| moved_from | Π€Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ ΠΈΠ· Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°. ΠΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ°ΠΉΠ» ΠΏΡΠΎΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΈΠ· ΠΈ Π² ΡΠΎΡ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. |
| move | Π€Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ ΠΈΠ· ΠΈΠ»ΠΈ Π² ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ moved_to ΠΈ moved_from, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ Π·Π°ΠΊΡΡΡΠΈΡ Π±ΡΠ΄ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΠ±Π°, Π° Π½Π΅ MOVE. |
| move_self | ΠΠ°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ Π·Π° ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ»Π΅Π΄ΡΡ. |
| create | Π€Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Π²Π½ΡΡΡΠΈ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°. |
| delete | ΠΡΠ» ΡΠ΄Π°Π»Π΅Π½ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π² Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. |
| delete_self | ΠΠ°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π±ΡΠ» ΡΠ΄Π°Π»Π΅Π½. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ Π·Π° ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ»Π΅Π΄ΡΡ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ ΡΠ²Π½ΠΎ Π½Π΅ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π΅ΡΡΡ. |
| unmount | Π€Π°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, Π±ΡΠ»Π° ΡΠ°Π·ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Π°. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ Π·Π° ΡΠ°ΠΉΠ»ΠΎΠΌ ΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠ»Π΅Π΄ΡΡ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ ΡΠ²Π½ΠΎ Π½Π΅ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΡ. |
ΠΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ βmonitorβ
ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π»Π° ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΡ -m, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΡ βmonitor.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π·Π° ΡΠ΅Π»Π΅Π²ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, Π·Π°ΡΠ΅ΠΌ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΈΡΠ°Π΅ΠΌ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅, Π·Π°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊ Π½Π΅ΠΌΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅.
ΠΠ°ΠΆΠ΄Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠΈ ΡΠΎΠ±ΡΡΠΈΡ, Π²ΡΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΡΡΡΡ:
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ· ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°
ΠΠ°ΠΊ ΠΌΡ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ, ΡΡΠΈΠ»ΠΈΡΡ inotifywait ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ Π²Π½ΡΡΡΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° ΠΈΠ»ΠΈ Π²ΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ².
Π ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Ρ ΠΎΡΠ΅ΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈΠ»ΠΈ ΡΠ²Π½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ .
ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ Π·Π°Π΄Π°Ρ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΡΠΈΠΈ βexclude ΠΈ βinclude ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
ΠΠ±Π΅ ΠΎΠ½ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ POSIX.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ~/.config, ΠΊΡΠΎΠΌΠ΅ ΡΠ΅Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ β.xmlβ:
ΠΠΏΡΠΈΠΈ βinclude ΠΈ βexclude ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ; ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ ΠΎΠ±Π΅ΠΈΡ Π΅ΡΡΡ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π½Π΅ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ: βincludei ΠΈ βexcludei, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΌΡ ΡΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ°ΠΊΠ΅Ρ inotify-tools Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² Linux, ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ inotifywait Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌΠΈ.