稼働時間スクリプトヘルプ[閉じる]

稼働時間スクリプトヘルプ[閉じる]

ホストファイルを使用して複数のサーバーにログインし、稼働時間、ホスト名-I、およびホスト名を実行するスクリプトを作成しようとしています。

これまでのスクリプト

echo"" ; 
echo "hostname:" $(ssh $HOST hostname) ;
echo "IP:" $(ssh $HOST hostname -I) ;
echo "uptime" $(ssh $HOST uptime) ;
echo"" ;

私の目標を達成するための最良の方法は何ですか?

ベストアンサー1

端末からすべての出力が欲しいとしましょう。

#!/bin/bash

hosts_file=/path/to/file
username=youruser

while read -r host; do
    hostname=$(ssh "${username}@${host}" hostname)
    ip_addr=$(ssh "${username}@${host}" hostname -I)
    uptime=$(ssh "${username}@${host}" uptime)
    echo
    {
        echo "Hostname:?$hostname"
        echo "IP:?$ip_addr"
        echo "uptime:?$uptime"
    } | column -s\? -t
    echo
done <"$hosts_file"

これは、ホスト_ファイルの各行を繰り返すことで、行全体をに割り当てますhost。次に、、、およびhostnameをリモートシステムの対応する結果にip_addr設定します。uptimeその後、これらの結果を列形式で再表示します。

おすすめ記事