我的源服务器脚本尝试 ssh 到多个服务器并运行应用程序特定的命令,我可以说,除了操作系统命令(如 cat、chmod ..)之外,我收到类似命令的错误:找不到。下面是脚本。
for host in $(cat hosts_list.txt)
do
ssh $host chk_auto_up > "cmd_output.txt"
done
任何人都可以帮忙,我必须在脚本中包含什么来识别命令并运行并写入文件的输出?
我出错说找不到命令
答案1
你只需编辑该行:
ssh $host /path/of/chk_auto_up > "cmd_output.txt"
定义命令的绝对路径。
答案2
我找到了如何通过 ssh 远程运行外部命令的答案。
for host in $(cat /***/thishost/**/username/hosts_list.txt)
do
ssh "$host"
. /**/***/*****/*****/******.${HOST}
chk_auto_up >> "/****/thishost/***/*****/cmd_output.txt"
exit
done
细节:
hosts_list.txt
--> 我有通过 ssh 登录的服务器列表ssh "$host"
--> ssh 登录发生在第一台服务器上。. /**/***/*****/*****/******.${HOST}
--> 外部命令二进制路径可在此处获得chk_auto_up >> "/****/thishost/***/*****/cmd_output.txt"
--> 运行命令并将输出写入源服务器。