我要求杀死特定模式的远程进程,推动启动路径并执行脚本。 我到目前为止尝试了
pid=$(ssh -q username@virt ps -ef|grep $APP|grep $PORT|awk '{print $2}')
ssh -q username@virt kill -9 $pid
ssh -q username@virt "find /shared/local/path1/app -name "start_app*" -exec grep -nl "9122" {} \;| xargs -0 -I '{}' bash -c 'pushd $(dirname {});bash {};'"
当我执行上面的命令时,kill处理工作正常。通过将文件夹推送到路径来查找脚本文件和执行脚本的最后一步是不起作用。
由于某种原因,pushd工作不正常。 本地服务器上的命令与
一起工作find /shared/local/path1/app -name "start_app*" -exec grep -nl "9122" {} \;| xarg -0 -I '{}' bash -c 'pushd $(dirname {});bash {};'
请帮助更有效的解决方案来完成此任务。
答案 0 :(得分:0)
此处引号中有错误:
ssh -q username@virt "find /shared/local/path1/app -name "start_app*" -exec grep -nl "9122" {} \;| xargs -0 -I '{}' bash -c 'pushd $(dirname {});bash {};'"
试试这个:
ssh -q username@virt "find /shared/local/path1/app -name 'start_app*' -exec grep -nl '9122' {} \;| xargs -0 -I '{}' bash -c 'pushd \$(dirname {});bash {};'"