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 мне нужно обрабатывать несколько файловых изменений тоже.

Любые предложения о том, как заставить это работать? Мне нужно вызвать inotify для нескольких файлов в удаленной оболочке и получить список файлов, которые были изменены на удаленной машине.

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
Другие вопросы по тегам