답변:
참고로 세 가지 옵션이 모두 작동합니다. 그러나 iCal 옵션은 다른 옵션보다 더 많은 제한이 있습니다.
(크론 편집을위한 GUI가 있으며 다른 답변에서 언급 한 것처럼 시작됩니다)
Cron은 가장 간단하고 잘 알려져 있으며 사용 가능한 많은 자습서가 있습니다. Coles Notes는 명령 줄에서 편집 /etc/crontab
하거나 사용하여 아래에서 마지막 줄을 crontab에 추가하는 것입니다 crontab
.
MM HH DD MM WKD -- Minutes, Hour, Day, Month, Weekday (eg. Sun, Mon)
MM HH * * * USERNAME /PATH/TO/SCRIPT
00 3 * * * chealion /myscript.sh "Runs at 03:00 every day"
Mac OS X에서는 cron
실제로 대체 launchd
되었지만 launchd
이전 버전과 호환되므로 cron
여전히 사용할 수 cron
있지만 실제로 launchd
모든 작업을 수행하고 있습니다.
사용 launchd
하려면 수퍼 유저의 다른 질문들도 확인하고 싶을 것입니다 : 구성 파일 (plist 파일)을 저장할 위치에 대한 (예 : 루트로 실행 된 명령을 어떻게 실행합니까? ) 그것이 실행될 때 cron과 유사하게 그것이 저장된 디렉토리와로드 방법에 달려 있습니다 (예 : sudo 사용 여부).
매일 실행 된 plist 샘플 실행 (파일과 레이블이 동일한 지 확인하십시오 (레이블의 plist 빼기)) –이 스크립트는 매일 자정 3 분에 실행됩니다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>local.IDENTIFIER_HERE.SOMETHING</string>
<key>KeepAlive</key>
<false/>
<key>RunAtLoad</key>
<false/>
<key>UserName</key>
<string>USERNAME HERE</string>
<key>Program</key>
<string>/PATH/TO/SCRIPT</string>
<key>ProgramArguments</key>
<array>
<string>Argument_1</string>
<string>Argument_2</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>00</integer>
<key>Minute</key>
<integer>03</integer>
</dict>
</dict>
</plist>
컴퓨터가 잠들거나 꺼질 때 예약 된 경우 시작된 작업은 컴퓨터를 다시 사용할 수있게되면 (켜거나 깨우는 경우) 실행되지만 며칠이 있더라도 한 번만 실행됩니다. 되었습니다. 편집 : 방금 컴퓨터가 꺼져 있으면 해당 시간 동안 (이벤트 시작시 스크립트가 시작되지 않음) (자기 시작시 스크립트가 시작되지 않음) 시작 이벤트가 손실된다는 Apple 문서를 보았습니다.
또 다른 옵션은 " at " 를 사용하는 것 입니다 ( "man at"으로 매뉴얼 페이지 확인). 스크립트는 다음과 같이 스스로 일정을 조정할 수 있습니다.
echo "sh $0 $@" | at `date +%H:%M` tomorrow
( "내일"대신 "+ 10 분"을 사용하여 10 분마다 실행하십시오. 스케줄링을 중지하려면 "at -l"을 수행하여 스케줄 된 작업 ID를 나열한 다음 "at -r id "를 사용하여 작업을 제거하십시오)
먼저 다음과 같이 해당 데몬 (atrun)을 시작해야 할 수도 있습니다 ( https://superuser.com/a/43680 참조 ).
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
장점 : 빠른 수정, sudo / root 액세스 불필요, 복잡한 스케줄 패턴 수행 용이 단점 : OS X의 표준 스케줄링 방법이 아님 (시작됨)
launchd
는 OS X하에가는 길입니다.
crontab -e
파일을 저장할 때 개인 crontab이 될 파일의 터미널 기반 텍스트 편집기로 이동합니다.
LaunchControl 은 실행 / 시작을위한 또 다른 GUI입니다. 다른 사람들이 언급 한 대안은 매일 스크립트를 완벽하게 실행할 수 있지만 LaunchControl을 사용하면 복잡한 스케줄을 구성 할 수 있습니다 (예 : "매주 1 회, 주말마다 2PM에서 8PM 사이"). 또한 실제로 작업을 확인하는 유일한 도구는 (AFAIK)입니다. 작업이 예상대로 작동하지 않으면 이유가 표시됩니다.
원하는 기간 동안 무료로 시도 할 수 있습니다.
업데이트 : Mac OS X App Store에서 다음을 수행하는 일부 응용 프로그램을 확인할 수 있습니다.
Lingon도 실행중인 OS에 따라 사용 가능한 것으로 보입니다.
plist XML을 생성하는 간단한 무료 유틸리티는 다음과 같습니다.
http://www.gieson.com/Library/projects/utilities/launcha/
이 유틸리티를 사용하면 프로그램을 설치할 필요가 없으며 결과를 Library / LaunchAgents 폴더에 저장하면됩니다.
RunAtStart
가 true로 설정되어 있지 않은 경우 false로 설정되어 있는지 확인하십시오 . 파인더가 정지되어 부팅 할 때 데스크탑로드가 중지되는 이유를 알아내는 데 한 시간을 보냈습니다. 비활성화 RunAtStart
해도 고정 일정을 방해하지 않습니다.
나는 항상 이것을 위해 Lingon 을 사용 하지만 개발이 끝난 것처럼 보입니다. Crontooie 시도해 볼 수 는 있지만 개인적으로 사용한 적이 없습니다. 또는 터미널에서 crontab 파일을 편집하십시오.