'at'에 해당되는 글 1건
- 2007/05/18 작업 스케줄러에 작업목록 등록
■ at
→ 지정한 시간에 원하는 명령을 실행될수 있도록 해준다.
지정한 작업은 queue(큐)에 저장되며 저장된 작업들은 /var/spool/at 디렉토리 아래
파일로 저장된다. 보통 한번 실행되는 경우에 사용된다.
기본적으로 결과는 사용자의 메일로 전송된다.
♠ option
-q queue : 작업의 대기큐를 지정한다. 사용할수 있는 큐는 a-z, A-Z까지이다.
지정하지않으면 기본큐로 a를 사용한다.
-c job : 작업리스트를 출력한다.
-d : 작업을 삭제한다.(=atrm)
-l : 큐에 있는 작업들을 보여준다. root 인경우에는 모든 작업들의 목록을 보여준다.(=atq)
-m : 실행한 결과를 메일로 통보해준다.
♠ 시간 표기법
시간지정은 HHMM, HH:MM형태로 가능하고 am,pm 으로 구분가능하다.
am,pm 등의 표기가 없을 경우에는 24시 표현으로 한다.
날짜의 경우는 MMDDYY, MM/DD/YY, MM.DD.YY 형태로 나타낸다.
now (현재시간), tomorrow(내일), today(오늘), teatime(16:00),noon(12:00)
midnight(00:00)과 같은 문자열도 가능하다.
특히 now 는 + 증가시간설정에 많이 사용되는데
+10minute , +1hour , +3hours 등으로 표기가능하다.
♠ 예
1.[root@linux root]#at 1:40am tomorrow //다음날 오전 1:40분에 실행하게한다.
at>ls -al > list.txt // ls -al 의결과를 list.txt 화일에 저장
at> //중단할때 CTRL + D 를 누른다.
job 3 at 2005-09-02 01:40
2.[root@linux root]#at -l //atq 와 같다.
3 2005-09-02 01:40 a root //예약된 작업리스트 출력
3,[root@linux root]#at now + 3hours //3시간후에 작업예약한다.
4.[root@linux root]#at midnight + 10minutes
// 자정 + 10분 즉 00 : 10 분에 작업을 예약한다.
5.[root@linux root]#at 6 am Thursday
// 돌아오는 목요일 오전 6시에 작업을 예약한다.
♠ 관련 명령어
1.atq
:큐에 저장된 작업들을 보여주는 명령, at -l 실행결과와 같다.
작업번호와 작업예정시간, 작업이 저장되어있는 큐를 보여준다.
2.atrm
:예약된 작업을 취소할때 사용하는 명령으로 큐에서 해당작업을 삭제한다.
at -d 를 사용하는것과 같다.
♠ at 의 사용자 제한
※ /etc/at.allow (허가목록) 과 /etc/at.deny(거부목록) 을 참조하게된다.
1./etc/at.deny 만 존재하는경우
→ 기본적으로 모든사용자가 사용가능하고 at.deny 에 등록된 사용자만
사용불가능하다.
2./etc/at.allow 만 존재하는 경우
→ at.allow 파일에 등록된 사용자만 사용가능하다.
3. 두 파일 모두 없을경우
→ 일반사용자는 불가능하고 root 만 사용가능하다.
4. 두 파일 모두 있을경우
→ at.deny 내용을 무시하고 at.allow 명기된 사용자만 사용가능하다.
■ CRON
→ 같은 작업을 주기적으로 반복할수 있도록 해준다.
보통 /etc/rc.d/init.d/crond 데몬에 의해 실행된다.
설정은 /usr/bin/crontab 명령어를 사용한다.
♠ 관련명령어 및 파일
1.crontab
▶ cron작업을 설정하는 명령이다. 실행시키면 기본vi편집기가 실행된다.
▶ option
-l : 현재 crontab 에 의해 설정된 내용을 출력한다.
-e : crontab 의 내용을 작성하거나 수정한다.
-r : crontab 의 내용을 삭제한다.
-u : root권한자가 해당사용자의 crontab 파일을 다룰때 사용한다.
▶ 예제
[root@linux root]#crontab -l
→ 작업목록을 보여준다.
[root@linux root]#crontab -e -u bluetree
→ bluetree 사용자의 crontab 을 작성하거나 수정한다.
[root@linux root]#crontab aaa
→ aaa 란 파일을 crontab 으로 사용한다.
aaa 에는 이미 crontab 형식에 맞에 입력되어 있어야한다.
▶ crontab 의 작업형식
→ 5개의 날짜필드와 1개의 명령필드로 구성되어있다.
MM HH DD mm d command
MM : 분을 의미한다 ( 0 ~ 59까지 사용)
HH : 시를 의미한다. ( 0 ~ 23 까지 사용)
DD : 날짜를 의미한다 ( 1 ~ 31까지 사용)
mm : 달을 의미한다.( 1 ~ 12까지 사용)
d : 요일을 의미한다.( 0 ~ 7 까지 사용, 0 과 7은 일요일을 나타낸다)
command : 실행할 명령을 입력한다.
※ 참고
위 형식에서 시간을 나타내는 각 필드에서 와일드 카드 '*'를 사용할수 있고
각각의 요일을 구분할 때 ',' 를 사용하고 연일을 나타낼때는 '-'를 사용한다.
즉 월요일과 수요일은 '1,3' 월요일부터 금요일까지는 '1-5' 로 표시할수있다
2./etc/crontab
→ 시스템이 정기적인 작업이 수행될수 있도록 기본적으로 설정되어있는 파일이다.
3./var/spool/cron 디렉토리
→ 각각의 사용자가 등록한 crontab은 이 디렉토리아래에 각 사용자이름으로 저장된다.
♠ crontab 내용 설정예
0 12 * * 1-5 /home/bluetree/start
→ 월요일부터 금요일까지 /home/bluetree/start 란 스크립트를 실행시킨다.
0 12 1 1-12/2 * /home/bluetree/babo
→ 1월부터 12월까지 2개월마다 /home/blutree/babo 란 화일을 실행시킨다.
0 4 * * 1,3,5 cat /root/notice | mail -s "notice" bluetree75@naver.com
→ 월,수,금 오전 4시에 notice 라는 문서의 내용을 메일로 발송한다.
♠ cron 사용자 제한
※ /etc/cron.allow (허가목록) 과 /etc/cron.deny(거부목록) 을 참조하게된다.
1./etc/cron.deny 만 존재하는경우
→ 기본적으로 모든사용자가 사용가능하고 cron.deny 에 등록된 사용자만
사용불가능하다.
2./etc/cron.allow 만 존재하는 경우
→ cron.allow 파일에 등록된 사용자만 사용가능하다.
3. 두 파일 모두 없을경우
→ 모든 사용자가가능하다
4. 두 파일 모두 있을경우
→ cron.deny 내용을 무시하고 cron.allow 명기된 사용자만 사용가능하다
* 등록된 리스트 확인
ex);
crontab -l
#매일 6시 proframe/pfm/classes의 클래스 파일을 jar로 묶음
0 6 * * * /FRW/package/wraplib/wrapjar.sh

이올린에 북마크하기
Prev
Rss Feed