2013-04-22 17 views
-1

我在創建一個帶有配置文件的小shell腳本,我可以在其中設置需要檢查的服務器的IP並執行一些簡單的命令比如who,date,uname等,並將輸出結果打印到文件中。使用config創建一個shell腳本來運行基本命令ssh connection with output

UPDATE

這是我目前有:

#!/bin/bash 
USERNAME=xxx 
HOSTS="localhost localhost" 
SCRIPT="uname -a; who; who -b; date; df -h; id" 

for HOSTNAME in ${HOSTS} ; do 
     echo "${HOSTS}" >> output.log 
     ssh -l ${USERNAME} ${HOSTNAME} "${SCRIPT}" >> output.log 
     echo "" >> output.log 
     echo "" >> output.log 
done 

什麼辦法可以提供對輸出此時,相應的主機IP ADDRES /主機名?目前它將打印所有行HOSTS,因此在每次輸出初始化時顯示localhost localhost。

+0

我也希望有人如果可能的話,可以幫助我瞭解如何自動輸入服務器的密碼。 – 2013-04-22 17:48:55

回答

0

創建所有的遠程服務器上的SSH密鑰 - 本地服務器上的用戶(您):

for node in server1 server2 server3 
do 
    ssh $node "uname -a && who" 
done 

或爲一串命令:

for node in server1 server2 server3 
do 
    echo "$node" 
    for cmd in 'who' 'ls *.pdf' 
    do 
     ssh $node "$cmd" 
    done 
done