Inotify: датчик изменения файлов

Отслеживать изменения файловой системы требуется довольно часто. Например, поставив «капканы» на важные файлы можрегистрировать действия злоумышленников. Но есть и более мирные задачи. Например, в каталог /tmp время от времени телефонным сервером asterisk сбрасываются факсы в формате tif. Нужно реагиновать на эти события, отправляя изображения на электронную почту. Планировщик cron для этой задачи слишком инертертен, сам asterisk тоже e-mail'ом пользоваться не обучен, так что на выручку приходит интерфейс Linux inotify, который хорошо реализован, например, в наборе утилит inotify-tools. Вот скрипт, выполняющий описанную задачу:

#!/bin/bash

while true 
do
	FN=`/usr/bin/inotifywait --format %f  -e close_write /tmp`
	IS_TIFF=`echo $FN | grep -o .tif`
	if [ $IS_TIFF == ".tif" ] ;  then
		IP_TEST=`echo $FN | egrep -o [0-9]{3}`
		echo -n "Fax for $IP_TEST..."
		echo "" | mutt "[email protected]" -a "/tmp/$FN" -s "New fax"
		echo ' done!'
		echo "$FN" >> /tmp/asttest.log
		rm -f "/tmp/$FN"
	fi
done


На пользователей заведены почтовые ящики, соответствующие их номерам телефонов. Т.е. если факс принимается для абонента телефонной станции с номером 209, файл имеет название /tmp/209.tif и отправляется на почтовый ящик [email protected]

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.