約1000台のネットワークデバイスでコマンドを実行し、出力をファイルに保存する必要があります。ファイルには、SSHを使用して接続する必要があるすべてのネットワークデバイス名がリストされています。たとえば、コマンドを実行して出力をshow interface description
ファイルに保存する必要があります。これらのデバイスは、すべてのデバイスで同じ共通ユーザー名とパスワードに設定されます。したがって、デフォルトでは、リストファイル内のすべてのデバイスでこれらのコマンドを実行するにはスクリプトが必要です。
ssh user@device1
password: passwordhere
user@device1> show interface description
user@device1> exit
次に、すべての出力をファイルに保存します。私はRed Hat Enterprise Serverを使用しています。
ベストアンサー1
自動化する最も重要なのは、ssh
パスワードを入力することです。パスワードなしで設定ssh
またはインストールする2つの方法を試すことができますsshpass
。
パスワードを入力するために使用されます
sshpass
。お持ちの場合DAGリポジトリ設定が完了したら、yumを使用してインストールできます。yum install sshpass
そうでない場合でもできます。RPMを直接ダウンロードまたは、リポジトリーを追加したら、以下をインストールします。
rpmforge-release パッケージをダウンロードします。以下の2つのリンクのいずれかを選択し、ホスティングアーキテクチャに一致するリンクを選択してください。使用するものがわからない場合は、次のようにスキーマを確認できます。
uname -i
DAG用GPGキーのインストール
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
ダウンロードしたパッケージのインストール
rpm -i rpmforge-release-0.5.2-2.el6.rf.*.rpm
インストールする
sshpass
yum install sshpass
一度インストールすると、各行にデバイスの名前またはIPを含む
sshpass
ファイルが与えられたら、次のようにプロセスを自動化できます。ips.txt
while read ip; do echo -n "$ip: " >> local_file.log; sshpass -p 'your password' ssh user@$ip remote_command >> local_file.log done < ips.txt
ssh
または、各デバイスにパスワードを設定せずにインストールをスキップすることもできますsshpass
。パスワードなしで設定
ssh
ssh-keygen -t rsa while read ip; do ssh-copy-id -i ~/.ssh/id_rsa.pub user@$ip; done < ips.txt
あなたの仕事を実行
while read ip; do echo -n "$ip: " >> local_file.log; ssh user@$ip remote_command >>local_file.log done < ips.txt