ソース サーバーからのスクリプトが複数のサーバーに 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"
--> コマンドを実行し、出力をソース サーバーに書き込みます。