특정 시간에 셸 스크립트 실행하기
셸 스크립트를 특정 시간에 실행하려면 launchd
또는 cron
을 사용하십시오.
launchd로 작업 예약하기
작업을 예약하려면
cron
대신launchd
를 사용하십시오.launchd
를 사용하는 상태에서 컴퓨터가 종료되거나 잠자기 상태로 전환되어 작업을 건너뛴 경우 컴퓨터를 다시 시동하면 해당 작업이 대기열에 추가됩니다.launchd
를 사용하여 타이머 기반 작업을 예약하려면StartCalendarInterval
또는StartInterval
키를 사용하십시오.launchd
에 대한 추가 정보를 보려면 해당 man 페이지를 참조하십시오.
cron을 사용하여 작업 예약하기
cron
데몬은 crontab 파일에 정의되어 있는 예정된 명령어를 실행합니다. cron
데몬은 /usr/lib/cron/tabs/ 폴더에서 /etc/passwd에 있는 계정 이름을 딴 crontab 파일을 검색하고 해당 파일을 메모리로 로드합니다. 또한 cron
데몬은 /etc/crontab/ 폴더에서 포맷이 다른 crontab 파일을 검색합니다. cron
은 1분마다 순환하며 저장된 crontab 파일을 검사하고 각각의 명령어가 현재 실행 가능한지 확인합니다.
명령어가 실행 가능한 경우 출력이 crontab 파일의 소유자 또는 crontab 파일의 MAILTO 환경 변수에 지정된 사용자에게 메일로 전송됩니다.
crontab
도구를 사용하여 cron
데몬을 설치 또는 제거하거나 데몬 실행에 사용되는 표를 확인할 수 있습니다. 사용자는 자신의 crontab 파일을 가질 수 있습니다.
crontab 파일을 구성하려면
crontab -e
명령어를 사용하십시오. 이 명령어를 사용하면 비어있는 crontab 파일을 편집 모드로 엽니다.다음은 crontab 파일 예제입니다.
SHELL=/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log
#min hour mday month wday command
30 18 * * 1-5 diskutil repairPermissions /Volumes/MacHD
50 23 * * 0 diskutil repairVolume /Volumes/MacHD
이 예제에서 첫 번째 엔트리는 월요일부터 금요일까지 매일 오후 6시 30분에 MacHD 볼륨에 대한 디스크 권한을 복구합니다.
30 18 * * 1-5 diskutil repairPermissions /Volumes/MacHD
두 번째 엔트리는 매주 일요일 오후 11시 50분에 볼륨 복구 작업이 실행되도록 예약합니다.
50 23 * * 0 diskutil repairVolume /Volumes/MacHD