私のソースサーバースクリプトは複数のサーバーでsshを試してアプリケーション固有のコマンドを実行しようとしていますが、cat、chmodなどのOSコマンドを除いてはわかります。 command: not Found などのエラーが発生します。以下はスクリプトです。
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"
--> コマンドを実行し、出力をソースサーバーに書き込みます。