我的來源伺服器腳本嘗試 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"
--> 執行指令並將輸出寫入來源伺服器。