【发布时间】:2020-04-22 07:14:01
【问题描述】:
我有多个主机(超过 20 个)并且需要执行命令,但它没有按预期工作。单个命令正在所有主机上运行
ps -ef |grep \`cat/z/y/x|tail -1| awk '{print$30}'\`
脚本:
for hsts in `cat /a/b/c/hsts.txt`
do
ssh ${id}@${hsts} "cat /z/y/x|tail -1" | awk '{print $30}'
done
上面的 sn-p 会给我所有主机上的进程 ID。我想知道哪个进程正在使用此进程 ID 运行,并且我正在尝试使用以下命令,但它没有成功。任何想法我错过了什么。
ssh ${id}@{hsts} ps -ef |grep "cat/z/y/x/tail -1" |awk '{print $30}'
# above command is not working when i use in the above do loop
【问题讨论】:
-
您的循环丢失了
ps -ef。您最后的命令缺少cat之后的空格。由于所有这些错别字,很难判断你到底做错了什么。 -
你的服务器上有
pgrep吗? -
您是否尝试过使用
ssh -t标志 -
这能回答你的问题吗? bash script execute commands after ssh
标签: linux