2012-01-29 4 views
1

私たちは一度にシャットダウンしたい9個のMacのネットワークを持っています。 今私はこのAppleScriptを使用していますが、わかるようにSSHを使用してコンピュータを1つずつシャットダウンします。そのうちの1人が既にダウンしている場合は、スクリプトがフリーズします。 一度にすべてのMacをシャットダウンする方法はありますか?複数のMacを一度に遠隔からリブートする

あなたは、単に接続のsshにタイムアウトを設定することができ
set finalIP to 100 
repeat until finalIP is 109 
tell application "Terminal" 
    activate 
    set success to 0 
    do script "echo Rebooting.." 
    do script "ssh -l username 192.168.1." & finalIP in front window 
    delay 1 
    repeat until success = 1 
     if last word of (contents of front window as text) = "no" then 
      do script "yes" in front window 
      delay 1 
     else if last word of (contents of front window as text) = "password" then 
      do script "password" in front window 
      set success to 1 
      do script "echo About to reboot.." in front window 
     else 
      delay 1 
     end if 
    end repeat 
    do script "sudo reboot" in front window 
    repeat until last word of (contents of front window as text) = "password" 
     delay 1 
    end repeat 
    do script "password" in front window 
    close front window 
end tell 
set finalIP to finalIP + 1 
delay 1 
end repeat 
tell application "Terminal" to quit 

答えて

1

ssh -o ConnectTimeout=10 -l ... 

(これは10秒のタイムアウトで、あなたのニーズに合うように調整する)

また、実際にキーを使用して考えますあなたの接続のために。実際にSSHパスワードをスクリプトに入れる理由はまったくありません。 (あなたがそうした場合は、-o BatchMode=yesオプションも追加してください。鍵でログインできないホストはスキップされます)。

0

-oフラグを指定すると、タイムアウトが指定されます。指定した秒数後に接続すると、中止されます。

imac$ ssh -o ConnectTimeout=5 123.45.6.7 
ssh: connect to host 123.45.6.7 port 22: Operation timed out 
関連する問題