2012-11-05 12 views
5

Mam przepływ pracy Automatora do pingowania serwera i pobrać najnowszą kopię harmonogramu, z którego często korzystam. Harmonogram ten jest następnie kopiowany do mojego Dropbox, dzięki czemu mogę wyświetlić go na moim telefonie. Zanim przepływ pracy pobierze najnowszy harmonogram, usuwa stary harmonogram z dropboxa.Sprawdź, czy aktywne połączenie z Internetem za pomocą Applescript/Automator

Działa to dobrze, z wyjątkiem sytuacji, gdy nie mam aktywnego połączenia z Internetem. Gdy nie mam aktywnego połączenia z Internetem, przepływ pracy nadal będzie się rozwijał, usuwał stary harmonogram i próbował pobrać najnowszy. Ponieważ nie ma połączenia, nie pobiera niczego. Jeśli moje połączenie stanie się aktywne, puste pole zostanie zsynchronizowane, a harmonogram zostanie usunięty z mojego telefonu.

Próbuję dodać kilka linii kodu AppleScript do pingowania serwera, aby sprawdzić, czy mam aktywne połączenie. Jeśli nie, odczekaj około 5 sekund i ponów polecenie. Chcę mieć 5 prób pingowania iw tym momencie, jeśli nadal nie mam aktywnego połączenia, chcę całkowicie zakończyć.

Jestem nowicjuszem w dziedzinie applescript, więc czekam na to, jak poradzić sobie z błędem z polecenia, w tym przypadku z ping. Jeśli polecenie "ping -o www.apple.com" nie powiedzie się, poczekaj 5 sekund i ponów próbę ping. Jeśli 5 nieudanych prób zakończy się całkowicie.

+0

Być może mógłbyś opublikować kod dla innych osób do obejrzenia? Proszę również sprawdzić, jak używać formatowania Markdown. Umożliwi to sformatowanie polecenia ping powyżej w czcionce o stałej szerokości - link pomocy po prawej stronie pola edycji zapewnia dobre podsumowanie – marko

+0

dzięki za poradę. Jestem nowy na stackoverflow, więc będę o tym pamiętać na przyszłość. Odpowiedź poniżej jest dokładnie tym, czego potrzebowałem, więc nie ma potrzeby, aby cokolwiek wysłać teraz. –

Odpowiedz

4

Może coś takiego?

repeat with i from 1 to 5 
    try 
     do shell script "ping -o www.apple.com" 
     exit repeat 
    on error 
     delay 5 
     beep 
     if i = 5 then error number -128 
    end try 
end repeat 
say "Connected" 
3

Powyższy skrypt powoduje zawieszenie się skryptu jabłkowego automatora, jeśli domena nie jest dostępna. Działa to dobrze w edytorze AppleScript, jeśli dodasz-t X, gdzie X jest liczbą sekund pingów, które powinny upłynąć, w przeciwnym razie również będzie zawieszony na czas nieokreślony.

repeat with i from 1 to 2 
    try 
     do shell script "ping -o -t 2 www.googleasda.com" 
     exit repeat 
    on error 
     say "Couldn't connect" 
     delay 2 
     say "Error after delay 5" 
     beep 
     if i = 2 then error number -128 
    end try 
end repeat 
say "Connected" 
Powiązane problemy