inotify в удаленной оболочке и получить вывод обратно

Моя проблема очень похожа на эту: 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 для нескольких файлов в удаленной оболочке и получить список файлов, которые были изменены на удаленном компьютере.

2
задан 13 April 2017 в 15:23

1 ответ

Разобрался:

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
0
ответ дан 13 April 2017 в 15:23

Другие вопросы по тегам:

Похожие вопросы: