Моя проблема очень похожа на эту: inotify недостаточно быстро
За исключением того, что я запускаю inotify в удаленной оболочке.
Мне нужно следить за изменением файлов на машине A с машины B. machineB имеет SSH доступ к машине A, но не наоборот.
while true; do
FILEPATH=$(ssh -i key.pem A@machineA "inotifywait -m -e close_write $REMOTE_WATCH_DIR --format '%w%f'")
echo $FILEPATH
done
В приведенном выше коде $ FILEPATH всегда пуст.
Если я не помещу -m
, то это будет работать, но только для одного файла. Как уже упоминалось в этой задаче: недостаточно быстро отправлять уведомления Мне также нужно обрабатывать несколько файловых изменений.
Какие-нибудь предложения о том, как заставить это работать? Мне нужно вызвать inotify для нескольких файлов в удаленной оболочке и получить список файлов, которые были изменены на удаленном компьютере.
Разобрался:
while true; do
echo "inotifywait -m -e close_write $REMOTE_WATCH_DIR --format '%w%f:%f'" | ssh -i key.pem A@machineA /bin/bash |
while read file
do
process_data $file
done
done