複数のサーバーにログインし、コマンドを実行し、出力をファイルに追加するスクリプト

複数のサーバーにログインし、コマンドを実行し、出力をファイルに追加するスクリプト

私の使命は、約300台のデバイスにログインし、次のコマンドを実行して出力をファイルにコピーすることです。

SSHはログイン方法として使用でき、事前定義されたユーザー名とパスワードを提供できます。

デバイスを使用すると、エキスパートモードにログインし、事前定義されたパスワードを入力する必要があります。

$ expert
>>> provide password 
$ lspci | egrep -i --color 'network|ethernet'

出力をファイルにコピー

次のスクリプトを準備しました。

#!/bin/bash   
username=XXXX
passwd=XXX
cd /tmp

for host in `cat servers.txt`; 
do 
ssh $username@$host $passwd;

expert

echo "### $host ###" >> output.txt

lspci | egrep -i --color 'network|ethernet' >> output.txt

done

パスワードの入力を求められたら、次の情報が表示されます。

Running commands is not allowed
./fibertest.sh: line 9: expert: command not found 

コマンドをリモートで実行するのではなく、ローカルコンピュータで実行しているようです。

ベストアンサー1

あなたは与えることができますpssh(並列SSHとも呼ばれる)一度試してみてください。複数のコンピュータでコマンドを実行し、ローカルフォルダから結果/出力を取得します。

おすすめ記事