有效使用inotifywait来检测是否没有创建文件

时间:2017-10-03 07:32:41

标签: bash logging inotifywait

我正在编写一个脚本来查看某个设备是否在磁盘上写入。 我最终得到了这个:

    cd
mkdir -p /var/logfiles

CAMERANAME="tvcc16"
DIR='/share/HDA_DATA/video4/' #tvcc16
ALERTPATH="/var/logfiles/$CAMERANAME.alert"

while true; do

FILE_IS_WRITTEN=0
    echo "$FILE_IS_WRITTEN" > /var/f_is_w

    inotifywait -r -t 30 $DIR -e create | 
    while read path action file; do 
    echo "Written '$file' in '$path' via '$action'." | grep jpg | grep -v "INFO"
    FILE_IS_WRITTEN=1
    echo "$FILE_IS_WRITTEN" > /var/f_is_w
    done 
    FILE_IS_WRITTEN=$(cat /var/f_is_w)
    rm -rf /var/f_is_w

    if [ $FILE_IS_WRITTEN -eq 0 ]
    then
        echo "NOREC (Status: $FILE_IS_WRITTEN)"
        echo "recerror: camera is not recording!" > $ALERTPATH
    else
        echo "REC (Status: $FILE_IS_WRITTEN)"
        echo "ok: camera is recording!" > $ALERTPATH
    fi

done

问题是每次循环重启时,inotifywait必须再次设置监视。 它的资源和时间都很昂贵...... 有没有办法避免这种情况?

0 个答案:

没有答案