crontab -e :
이 명령어를 치고 수정모드로 들어간다.
분 시 일 월 요일 명령어 - 순으로 입력한다.
예)
0시 0분마다 재부팅
00 00 * * * reboot
매월 1일 4시 0분 마다 재부팅
00 04 01 * * reboot
0 8 * * * /sbin/shutdown -r now
0 8 * * * /usr/bin/reboot
# Crontab 형식
분 | 시간 | 날짜 | 달 | 요일 | 사용자 | 명령
1. 분: 10(10분)
2. 시간: 14(오후2시)
3. 날짜: 15(15일)
4. 달: *(매달)
5. 요일: 0~6 (일요일~금요일)
6. 명령: shell
# 최종적으로 service crond restart 를 하여 Cron 데몬을 반드시 재시작해야 하며
crontab -e 로 입력한 명령이 정상적으로 예약작업으로 등록되어 있는지 확인하고자 할경우에는,
crontab -l 를 입력하면 예약된 작업들이 Display된다.
======================================================================================================================
======================================================================================================================
cron파일을 실행시킬려면 디렉토리에 cron파일을 넣는것이 아니라(cp나 mv...)
crontab명령으로 디렉토리에 파일을 등록을 시켜줘야해요~
먼저 cron파일(파일이름 : test.cron)
* * * * * echo HI, one minute > /dev/tty1
여기서 > /dev/tty1이라는 건 메시지를 출력할 제어터미널입니다.
제어터미널확인은 터미널창에 tty라고 명령하면 출력됩니다.
그거적어주시면됩니다.
즉, 위 문장은 매 분마다 HI, one minute라는 메시지가 지정한 터미널창에 출력되는 명령이에요.
이제 작성한 cron파일을 cron디렉토리에 등록시켜줘야합니다.
crontab test.cron
이렇게 명령하면 이제 1분마다 메시지가 출력될겁니다.
crontab옵션에는 -l, -e, -r이 있는데요
-l은 명령스케줄링된 작업목록이 출력되고
-e는 작업을 편집하는거고
-r은 작업을 삭제하는거에요
sh는 BoruneShell의 스크립트파일인데
sh파일을 만드시려면 BoruneShell에서 사용되는 기본 명령어, 제어문, 지역변수, 환경변수 사용법등을 알아야해요.
예를 들어 1부터 9까지 구구단을 출력하는 스크립트를 만든다고 친다면
"vi gugu.sh"라고 명령하면 vi에디터가 열릴겁니다. 거기에 아래처럼 입력하세요.
---------------------스크립트 코드------------------------------
#!/bin/sh #이 스크립트가 실행될 환경을 BoruneShell이라고 명령
num1=1 #지역변수 num1을 1로 초기화
while ( $num1 <= 9 ) #num1변수가 9보다 작거나 같으면 반복
do
num2=1 #num2변수를 1로 초기화
while ( $num2 <= 9 ) #num2변수가 9보다 작거나 같으면 반복
do
mul=`expr $num1 \* $num2` //mul변수에 num1값과 num2값을 곱한 결과를 대입
#토큰설명 : 산술연산을 위한 명령어 expr
# 변수의 값을 의미하는 $
# 그리고 *는 대표문자로 인식되므로 대표문자 의미제거를 위한 \(역슬러쉬)
# 대입연산자 = 사이에는 공백이 있어서는 안됩니다.
# 연산식은 ~키를 Shift없이 그냥 누르시면 ` 가 입력되는데 이 기호로 싸주셔야되요.
echo "$num1 * $num2 = $mul" #터미널에 문자열 출력
num2=`expr $num2 + 1` #num2값 1증가
done
num1=`expr $num1 + 1` #num1값 1증가
done
----------------------------코드 끝---------------------------------------
이렇게 입력하신 후에 이 파일의 실행 허가권을 변경해주셔야되거든요.
"chmod +x gugu.sh"라고 입력해주신후에
./gugu.sh 명령으로 실행시켜주시면됩니다.( ./ : 현재디렉토리를 의미)
* cron에 등록된 작업 목록 확인
crontab -l
* cron 다시 시작
/etc/rc.d/init.d/crond restart
또는
service crond restart
* cron이 해당 시간에 정상적으로 작업이 수행되었는지 확인
tail -f /var/log/cron
또는
tail -n 100 /var/log/cron
(-n 뒤는 밑에서부터 읽어들이는 라인 숫자)
분 / 시간 / 날짜 / 월 / 요일 / 명령어
30 08 * * 7 /usr/bin/rm /usr/local/apache/logs/access_log
위와 같습니다.
만약 약간 수정한다면 이런 조건을 들어 보이겠습니다.
매월 1일날 08시 30분에 위에 명령을 실행하라.
30 08 1 * * /usr/bin/rm /usr/local/apache/logs/access_log
p.s
요일은 : 1 일요일 2 월요일 3 화요일 ~중간 생략~ 7 토요일
참고로 rm이 삭제 명령인데 리룩스에서 정확한 위치는 찾아 보세요.
null 카피 시키는 방법 또한 추가로 보내드립니다.
30 08 * * 7 cp /dev/null /usr/local/apache/logs/access_log
null 카피라는건 파일은 삭제 하지 않으면서 파일 안에 내용만 지워버리는거
출처 : 잊음..;;