리눅스 cron: Difference between revisions
From CS Wiki
(새 문서: 특정 파일을 주기적으로 실행시킬 수 있다. == 사용법 == 아래 명령어를 통해 에디터를 열고 원하는 규칙을 입력한다. <pre class='shell'> $ cron...) |
(매일 오후 12시 정각에 실행) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
== 사용법 == | == 사용법 == | ||
아래 명령어를 통해 에디터를 열고 원하는 규칙을 | === 규칙 열람 및 수정 === | ||
* 아래 명령을 통해 현재 입력된 배치를 확인 | |||
<pre class='shell'> | |||
$ cron -l | |||
</pre> | |||
* 아래 명령어를 통해 에디터를 열고 원하는 규칙을 입력 및 수정 | |||
** vi 에디터 등을 통해 열리며, 에디터에서 저장하고 종료하면 자동 적용됨 | |||
<pre class='shell'> | <pre class='shell'> | ||
$ cron -e | $ cron -e | ||
</pre> | </pre> | ||
=== 기본 문법 === | |||
<pre> | <pre> | ||
분 시 일 월 요 실행할작업 | # 분 시 일 월 요 [실행할작업] | ||
# ┌───────────── 분 (0 - 59) | |||
# │ ┌────────────── 시 (0 - 23) | |||
# ┌───────────── | # │ │ ┌─────────────── 일 (1 - 31) | ||
# │ ┌────────────── | # │ │ │ ┌──────────────── 월 (1 - 12) | ||
# │ │ ┌─────────────── | # │ │ │ │ ┌───────────────── 요일 (0 - 6) (0이 일요일, 6이 토요일이다.) | ||
# │ │ │ ┌──────────────── | |||
# │ │ │ │ ┌───────────────── | |||
# │ │ │ │ │ | # │ │ │ │ │ | ||
# │ │ │ │ │ | # │ │ │ │ │ | ||
# * * * * * [실행할작업] | # * * * * * [실행할작업] | ||
</pre> | </pre> | ||
* 해당사항이 있는 자리에만 숫자를 적고 나머지는 * 그대로 표기 | |||
* 요일의 경우 일요일이 0이고 토요일이 6인 점 주의 | |||
* 아무것도 입력하지 않고 *****로 두면 매분 마다 실행 | |||
* 주기를 입력할 땐 / 를 사용 | |||
** /4 라는 표현으로 4분마다, 4시간마다 등을 설정 가능 | |||
* 구간을 입력할 땐 - 사용 | |||
** 4-5는 4부터 5까지라는 의미 | |||
* 따옴표를 입력하여 여러 시간을 동시에 입력 가능 | |||
* 문법이 틀릴 경우 아래와 같이 경고 메시지 출력됨 | |||
** 아래의 경우 시간(hour)부분이 잘못되었단 것으로, 시간이 입력된 부분 위주로 디버깅 | |||
<pre> | |||
crontab: installing new crontab | |||
"/tmp/crontab.0doyEF":1: bad hour | |||
errors in crontab file, can't install. | |||
Do you want to retry the same edit? | |||
</pre> | |||
=== 로깅 === | |||
* 기본 로그파일 확인 | |||
<pre class='shell'> | |||
$ cat /var/log/cron | |||
</pre> | |||
* 각 작업마다 로그파일 지정 | |||
<pre class='shell'> | |||
$ crontab -e | |||
# 예시: 0 2 * * * /home/test/script.sh >> /home/test/cron.log 2>&1 | |||
[실행할 스크립트] >> [로그 위치] 2>&1 | |||
</pre> | |||
* 2>&1의 의미에 대해선 [[리눅스 출력]] 참고 | |||
== 사용 예제 == | == 사용 예제 == | ||
<pre class= | <pre class="shell"> | ||
# 매 분마다 실행 | # 매 분마다 실행 | ||
/1 * * * * 실행할작업 | /1 * * * * 실행할작업 | ||
Line 31: | Line 66: | ||
# 매일 오후 12시 정각에 실행 | # 매일 오후 12시 정각에 실행 | ||
0 12 * * * 실행할작업 | |||
# 매주 월요일 자정에 실행 | # 매주 월요일 자정에 실행 | ||
Line 60: | Line 95: | ||
0 8 * * 0,6 실행할작업 | 0 8 * * 0,6 실행할작업 | ||
</pre> | </pre> | ||
[[분류:리눅스]] | [[분류:리눅스]] | ||
[[분류:리눅스 프로그램]] | [[분류:리눅스 프로그램]] |
Latest revision as of 23:20, 12 March 2023
특정 파일을 주기적으로 실행시킬 수 있다.
사용법[edit | edit source]
규칙 열람 및 수정[edit | edit source]
- 아래 명령을 통해 현재 입력된 배치를 확인
$ cron -l
- 아래 명령어를 통해 에디터를 열고 원하는 규칙을 입력 및 수정
- vi 에디터 등을 통해 열리며, 에디터에서 저장하고 종료하면 자동 적용됨
$ cron -e
기본 문법[edit | edit source]
# 분 시 일 월 요 [실행할작업] # ┌───────────── 분 (0 - 59) # │ ┌────────────── 시 (0 - 23) # │ │ ┌─────────────── 일 (1 - 31) # │ │ │ ┌──────────────── 월 (1 - 12) # │ │ │ │ ┌───────────────── 요일 (0 - 6) (0이 일요일, 6이 토요일이다.) # │ │ │ │ │ # │ │ │ │ │ # * * * * * [실행할작업]
- 해당사항이 있는 자리에만 숫자를 적고 나머지는 * 그대로 표기
- 요일의 경우 일요일이 0이고 토요일이 6인 점 주의
- 아무것도 입력하지 않고 *****로 두면 매분 마다 실행
- 주기를 입력할 땐 / 를 사용
- /4 라는 표현으로 4분마다, 4시간마다 등을 설정 가능
- 구간을 입력할 땐 - 사용
- 4-5는 4부터 5까지라는 의미
- 따옴표를 입력하여 여러 시간을 동시에 입력 가능
- 문법이 틀릴 경우 아래와 같이 경고 메시지 출력됨
- 아래의 경우 시간(hour)부분이 잘못되었단 것으로, 시간이 입력된 부분 위주로 디버깅
crontab: installing new crontab "/tmp/crontab.0doyEF":1: bad hour errors in crontab file, can't install. Do you want to retry the same edit?
로깅[edit | edit source]
- 기본 로그파일 확인
$ cat /var/log/cron
- 각 작업마다 로그파일 지정
$ crontab -e # 예시: 0 2 * * * /home/test/script.sh >> /home/test/cron.log 2>&1 [실행할 스크립트] >> [로그 위치] 2>&1
- 2>&1의 의미에 대해선 리눅스 출력 참고
사용 예제[edit | edit source]
# 매 분마다 실행 /1 * * * * 실행할작업 # 매 시 정각에 실행 0 * * * * 실행할작업 # 매일 오후 12시 정각에 실행 0 12 * * * 실행할작업 # 매주 월요일 자정에 실행 0 0 * * 1 실행할작업 # 매달 1일 자정에 실행 0 0 1 * * 실행할작업 # 매시 15분, 45분에 실행 15,45 * * * * 실행할작업 # 10분마다 실행 */10 * * * * 실행할작업 # 매일 02:00에 실행 0 2 * * * 실행할작업 # 매 6시간마다(00:30, 06:30, 12:30, 18:30) 실행 30 */6 * * * 실행할작업 # 1시부터 매 6시간마다(01:30, 07:30, 13:30, 19:30) 실행 30 1-23/6 * * * 실행할작업 # 평일(월요일~금요일) 08:00에 실행 0 8 * * 1-5 실행할작업 #주말(일요일, 토요일) 08:00에 실행 0 8 * * 0,6 실행할작업