Содержание
Отслеживание создания/редактирования файлов
Копирование промежуточных файлов
Иногда бывает полезным отслеживать временные файлы, например файлы выгрузки Битрикса, которые в процессе обмена создаются и удаляются. Чтобы получить «копию» таких временных файлов, без погружения в дебри кода, возможно сделать сторожевую собаку watchdog, которая при появлении файла будет копировать его в отдельный каталог.
Использование:
./watchdog.sh watch_dir cp_dir
Если каталог watch_dir будет удален, а затем создан заново, watchdog это не отследит, и «проспит»
Для работы понадобится пакет inotify-tools:
yum install inotify-tools
Сам скрипт:
- watchdog.sh
#!/bin/bash if [ $# == 0 ]; then echo 'Usage: watchdog.sh watch_dir cp_dir' exit 1 fi WATCH_DIR=$1 CP_DIR=$2 inotifywait -mqr --timefmt '%T' --format '%f %T' -e modify --exclude '^\..*\.sw[px]*$' $WATCH_DIR | while read file date; do if [[ "$file" =~ \. ]]; then printf '\033[33m%*s\033[0m\n' `tput cols` ' ' | tr ' ' '-' echo -e "\033[32m$date\033[0m" echo $file cp $WATCH_DIR/$file $CP_DIR fi done
Отслеживание событий в каталоге
inotifywait -rm . -e create -e moved_to -e modify