Descobri:
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
Meu problema é muito parecido com este: inotify não é rápido o suficiente
Exceto que estou executando o inotify em um shell remoto.
Eu preciso monitorar a alteração do arquivo no machineA a partir do machineB. machineB tem acesso ssh à máquinaA, mas não o contrário.
while true; do
FILEPATH=$(ssh -i key.pem A@machineA "inotifywait -m -e close_write $REMOTE_WATCH_DIR --format '%w%f'")
echo $FILEPATH
done
No código acima, $ FILEPATH está sempre vazio.
Se eu não colocar -m
, então funcionará, mas apenas para um arquivo. Como mencionado neste problema: inotify não rápido o suficiente Eu preciso lidar com várias alterações de arquivos também. / p>
Alguma sugestão sobre como fazer isso funcionar? Eu preciso acionar inotify sobre vários arquivos em um shell remoto e recuperar uma lista de arquivos que foram modificados na máquina remota.
Descobri:
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