2012-11-05 4 views
5

서버를 ping 할 수있는 Automator 워크 플로우가 있으며 자주 사용하는 스케줄의 최신 사본을 다운로드합니다. 이 일정은 내 보관함에 복사되므로 내 휴대 전화에서 볼 수 있습니다. 워크 플로우가 최신 스케줄을 다운로드하기 전에 dropbox에서 이전 스케줄을 삭제합니다.AppleScript/Automator와의 인터넷 연결 확인

인터넷에 연결되어 있지 않은 경우를 제외하고는 정상적으로 작동합니다. 인터넷에 연결되어 있지 않으면 워크 플로가 여전히 보관 용 계정을 열고 이전 일정을 삭제 한 다음 최신 항목을 다운로드하려고 시도합니다. 연결이 없으므로 아무 것도 다운로드하지 않습니다. 그런 다음 내 연결이 활성화되면 빈 보관 용 계정이 동기화되고 일정이 내 휴대 전화에서 삭제됩니다.

나는 활성 연결이 있는지 확인하기 위해 서버에 ping을 수행하는 데 몇 줄의 applescript 코드를 추가하려고합니다. 그렇지 않으면 약 5 초 정도 기다렸다가 다시 핑하십시오. 5 회의 핑 시도가 있고 그 시점에서 여전히 활성 연결이없는 경우 전적으로 종료하고 싶습니다.

저는 애플 스크립트에 새로운 것이므로 명령 (이 경우 ping)에서 오류를 처리하는 방법에 익숙해 져 있습니다. "ping -o www.apple.com"명령이 실패하면 5 초 후에 ping을 다시 시도하십시오. 5 번 시도가 실패하면 완전히 종료됩니다.

+0

아마도 다른 사람들이 볼 수있는 코드를 게시 할 수 있습니까? 또한 Markdown 형식을 사용하는 방법에 대해 알아보십시오. 이렇게하면 위의 ping 명령을 고정 폭 글꼴로 형식화 할 수 있습니다. 편집 상자의 오른쪽에있는 도움말 링크는 조언을위한 좋은 요약 – marko

+0

을 제공합니다. 나는 stackoverflow에 새로운 것이므로 미래를 염두에 둔다. 아래의 대답은 내가 필요로하는 것이므로 지금은 아무 것도 게시 할 필요가 없다. –

답변

4

어쩌면 이렇게 할 수 있을까요?

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

위 스크립트를 사용하면 도메인을 사용할 수없는 경우 자동화 프로그램의 응답이 중단됩니다. 그것은 AppleScript 편집기에서 잘 작동합니다. -t X를 추가합니다. 여기서 X는 ping이 시간 초과되어야하는 초 수입니다. 그렇지 않으면 무기한으로 정지합니다.

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"