Shell-Script

uptime 腳本幫助

  • August 10, 2018

我正在尋找建構一個腳本,該腳本將使用主機文件登錄到多個伺服器並執行正常執行時間、主機名 -I 和主機名

到目前為止的腳本

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

實現我的目標的最佳方式是什麼?

假設您只想要終端中的所有輸出:

#!/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"

這將遍歷 hosts_file 的每一行,將整行分配給host. 然後它會將hostname, ip_addr, 和設置uptime為遠端機器上的相應結果。然後它將以列格式回顯這些結果。

引用自:https://unix.stackexchange.com/questions/461896