inotify em um shell remoto e obtenha a saída de volta

2

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.

    
por zengr 19.07.2013 / 05:12

1 resposta

2

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
    
por zengr 19.07.2013 / 06:08