我正在运行类似于以下命令
getHosts | xargs -I{} -P3 -n1 ssh {} 'startServer; sleep 5; grep -m 1 "server up" <(tail -f log)'
问题是,在服务器启动后,ssh有时甚至会挂起一段时间。该命令是否存在任何问题,可能导致它不终止,以便并行执行可以继续?当我在远程 shell 程序中运行命令时,服务器启动检查似乎是可靠的,并且在将“服务器启动”写入日志时会准时关闭。
最佳答案
而不是远程命令
startServer; sleep 5; grep -m 1 "server up" <(tail -f log)
我会用
grep -m 1 "server up" <(tail -F log -n 0) & startServer ; wait
差异:
tail
的-F
选项代替-f
,这样,如果旋转日志文件,我们将跟踪新文件,而不是继续无用地跟踪旧文件。 关于bash - 获取ssh remote命令以终止,以便带有并行选项的xargs可以继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11270503/