π‘ ΠΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΡΠΊΠ»ΠΈΠΊ Π½Π° ΡΠΎΠ±ΡΡΠΈΡ Π² Linux Ρ ΠΏΠΎΠΌΠΎΡΡΡ inotify Π₯ΠΎΡΠΈΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»Π°Ρ
ΠΈ ΠΏΠ°ΠΏΠΊΠ°Ρ
? Π Linux Π΅ΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ! ΠΡΠΎ inotify β Π²Π°Ρ Π»ΡΡΡΠΈΠΉ Π΄ΡΡΠ³ Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ½Π°Π΅ΡΠ΅ Π»ΠΈ Π²Ρ, ΡΡΠΎ Π²ΡΠ΅Π³ΠΎ Π·Π° ΠΏΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°ΠΌΠ° ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΠ»Π° Π²Π°Ρ ΠΎ Π»ΡΠ±ΡΡ
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ
? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ! - ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠΈ: inotifywait -m /Π²Π°ΡΠ°/ΠΏΠ°ΠΏΠΊΠ° - ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π·Π°ΠΏΡΡΠΊ ΡΠΊΡΠΈΠΏΡΠ° ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ
: inotifywait -e create,modify,delete -m /Π²Π°ΡΠ°/ΠΏΠ°ΠΏΠΊΠ° --format '%w%f' | while read FILE; do Π²Π°Ρ_ΡΠΊΡΠΈΠΏΡ.sh "$FILE"; done ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎ ΠΊΡΡΡΠΎ: - ΠΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΎΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π²ΡΡΡΠ½ΡΡ - ΠΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² - ΠΠΎΠΆΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Π² Π»ΡΠ±ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΈ ΡΠΈΡΡΠ΅ΠΌΡ ΠΠ°ΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ β inotify ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΡ, Π²Π΅Π΄Ρ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΡΠ΅Π°Π»ΡΠ½ΡΡ
ΡΠΎΠ±ΡΡΠΈΡΡ
. ΠΡΠ΅Π²ΡΠ°ΡΠΈΡΠ΅ ΡΡΡΠΈΠ½Π½ΡΠ΅
π‘ ΠΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΡΠΊΠ»ΠΈΠΊ Π½Π° ΡΠΎΠ±ΡΡΠΈΡ Π² Linux Ρ ΠΏΠΎΠΌΠΎΡΡΡ inotify
19Β ΠΈΡΠ»ΡΒ 202519Β ΠΈΡΠ»Β 2025
1 ΠΌΠΈΠ½