我的问题与这个非常相似:inotify 不够快
除非我在远程 shell 中运行 inotify。
我需要从机器B监控机器A上的文件变化。机器B可以通过ssh访问机器A,但是机器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 不够快我也需要处理多个文件的更改。
关于如何使其工作有什么建议吗?我需要在远程 shell 中对多个文件触发 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