at 명령어 : 지정한 시간에 원하는 명령을 실행할 수 있다. at 명령과 시간을 지정해 실행하면 at 명령어 전용 프롬프트가 나타나고, 이곳에 명령어나 스크립트 등을 입력해 지정한 시간에 실행되게 할 수 있다.
기본적으로 at 명령어는 root사용자만 사용할 수 있으며, 단 1회만 예약 시간에 작업을 실행할 수 있다.
atq (at queue) : 현재 예약된 작업 목록을 확인
atrm (at remove) : 예약된 작업을 삭제
cron 명령어 : 미리 정한 시간에 명령어, 프로그램, 작업 등을 실행할 수 있는 서비스. at 명령어는 단 1회만 실행하지만 cron명령어는 매일, 매주, 매달, 요일마다 반복할 수 있는 것이 특징.
01 23 * 1 Monday /home/yeonjkim/test.sh
분 시간 일 월 요일 명령어 순. *은 범위 내 모든 경우를 말한다.
01분, 23시, 일은 상관 없음, 1월, 월요일이 지정되어 있으니
home/yeonjkim 디렉토리 내의 test.sh 스크립트를 매년 1월 일에는 상관없이 월요일마다 23시 1분에 실행한다.
00 09-18 * * * /home/yeonjkim/daily.sh
00분, 09시부터 18시, 일은 상관 없음, 월도 상관 없음, 요일도 상관 없이 지정되어 있으니
home/yeonjkim 디렉토리 내의 daily.sh 스크립트를 매일 09시부터 18시 00분에 실행한다.
<풀이>
(1) 1, 3, 5, 0 * * 0 /etc/work.sh 에서는 분 시간 일 월 요일 순으로 기재되니 1, 3, 5분 0시 일은 상관 없음 월도 상관 없음 일요일을 뜻한다.
따라서 매주 일요일 0시 1분, 3분, 5분에 etc 디렉토리의 work.sh를 실행하라는 의미.
(2) 0 1,3,5 * * 0 /etc/work.sh에서도 0분 1,3,5시 일은 상관 없음 월도 상관 없음 일요일을 뜻한다.
따라서 매주 일요일 1시, 3시, 5시 0분에 etc 디렉토리의 work.sh를 실행.
(3) 0 * * 1,3,5 0 /etc/work.sh는 0분 시간은 상관 없음 일도 상관 없음 1,3,5월 일요일을 뜻한다.
따라서 1,3,5월 매 일요일의 매 시간 0분에 etc/work.sh를 실행.
(4) 0 0 * * 1,3,5 /etc/work.sh는 0분 0시 일은 상관 없음 월도 상관 없음 월요일, 수요일, 금요일을 뜻한다.
따라서 매주 월,수,금의 0시 0분에 etc/work.sh를 실행하라는 의미이기 때문에 4번이 답이다. 1,2번도 일주일에 3번씩 실행되지 않나?