2012-02-27 13 views
0

複数のサーバーが構築されている間に行う必要があるチェックを自動化しようとしています。私はサーバーにsshし、空き容量を確認し、p4接続があるかどうかを確認する必要があります。私は結果をログに出力し、後で解析します。下のコードはうまくいきますが、p4接続が失敗した場合、実際の出力は得られません。sshを殺して次のサーバーに移動します。 p4接続をチェックする部分にのみ時間制限を設定する方法はありますか?その限界に達した場合、「p4エラー」をログに出力できますか?私は、コマンドのこの部分にタイマーを持っているようなので、それは次のようになり、SSHで実行されていました:ここ複数のサーバー間でPERFORCE接続のテストをスクリプト化する方法

echo \\\"<CONN>\\\" export P4PORT=${p4port}; /usr/local/bin/p4 info | grep Server | grep address; \\\"</CONN>\\\";" 

は、私が現在持っているものの一例である:

servers="server1 server2 server3" 
dated=`date +%Y%m%d` 
log="p4connectivity_${dated}.txt" 

echo "Script starting at `date` > $log 
for server in $servers 
do 
     echo $server >> $log 
     ssh -o ConnectTimeout=60 ${user}@${server}.${fqdn} "echo \\\"<BEGIN>\\\"; date -u +%m%d%Y_%H%M%S_%Z; echo \\\"</BEGIN>\\\"; echo \\\"<FREE_SPACE>\\\"; df -k | grep app; echo \\\"</FREE_SPACE>\\\"; echo \\\"<CONN>\\\" export P4PORT=${p4port}; /usr/local/bin/p4 info | grep Server | grep address; \\\"</CONN>\\\";" >> $log 2>&1 
done 

echo "Script is finished" 

私は考えています私は次のようなことをすることができます:

答えて

0

p4 pingコマンドを試すことができます。私はわかりませんが、それはp4 infoとは異なるエラー特性を持っているかもしれません。

さらに、ローカルマシンからp4 infoを発行するのはどうでしょうか?

関連する問題