리눅스:cron(자동작업 등록)
리눅스를 위한 문서틀 틀:리눅스
- 리눅스:명령어
- 리눅스:권한관련
- 리눅스:편의기능
- 리눅스 기반 OS
- 리눅스:패키지 관리
- 다양한 패키지
- 리눅스:쉘 스크립트
cron
관련 디렉터리
/etc/crontab에서 daily, weekly 등의 실행시간을 변경할 수 있다.
/etc/ | |
---|---|
cron.d | |
cron.hourly | |
cron.daily | 매일 실행되는 cron들을 모아둔다. |
cron.weekly | |
cron.monthly |
해당 디렉터리 자체를 크론으로 실행시키는데, 해당 디렉터리가 크론에 등록되어 있지 않으면 실행이 되지 않기도 한다.
크론 파일 작성법
경험상, 파일을 작성하고 그 파일 자체를 crontab에 올려버리는 게 간편하다.
mysql 백업을 예시로 설명한다.
과정 | 예시 | 방법 |
---|---|---|
파일 만들기 | nano mysql 따위로 파일을 작성한다.(혹은 그냥 기존 파일.)
문법의 사용은 우측의 예시를 보면 대강 유추할 수 있을 터. |
#!/bin/bash
#위는 bin/bash밑에 있는 스크립트를 사용한다는 선언 mysql_path='/usr/bin/mysql/' #mysql 실행파일이 있는 경로 지정 month=$(date +%Y%m%d) #제목에 사용할 서버현제날짜를 구함 fileName="backup_wikisql_${month}.sql" #저장할 파일이름 설정1 #파일 저장 경로 지정 대부분 홈디랙토리에 생성 savePath="/home/id8436/Downloads/" /usr/bin/mysqldump -u root my_wiki > ${savePath}${fileName} #dump받아 폴더에 저장 |
권한부여 | ls -l 명령으로 다른 파일들의 권한설정을 보고
chmod 를 통해 파일권한을 통일시킨다. |
chmod 755 파일명
sudo chown root:root 파일명 |
확인 | 프롬프트에 파일경로를 올렸을 때 아무 것도 안뜨면 이상이 없는 것.
이상이 있는 경우엔 에러가 뜬다. |
/etc/cron.daily/mysql
이후 크론이 작동하는 것을 확인한다. |
crontab
과정 | 설명 | 방법 |
---|---|---|
설치 | 설치되
처음 실행하면 아무것도 작성되지 않은 파일이 열린다. |
crontab -e |
등록내역 보기 | -l 옵션 | crontab -l |
작성법
분 시 일 월 요일 명령
형태.
시간에 대하여
의도 | 설명 | 방법 |
---|---|---|
일정 간격 실행 | 예컨대 5분마다 한 번 실행되게 한다면 다음과 같이 작성한다. | */5 * * * * 명령
|
특정 시간 실행 | 특정 시간마다 실행되게 하려면 다음과 같이 작성. | 매 시간 15분(8시15분, 9시15분...)15 * * * * 명령
15, 45 * * * * 명령
|
분에 */5 가 들어가면 매 5분마다 실행한다는 의미이다.
분에 15, 45를 두면 매 15분, 45분마다 실행.
명령에 대하여
의도 | 설명 | 방법 |
---|---|---|
파이썬 파일 실행 | .py 파일을 실행하기 위해 파이썬을 실행해주고 옵션으로 경로를 준다.
파이썬 파일 안에 한글이 들어가 있다면 encoding을 해주어야 한다. encoding은 파일 가장 상단에 |
* * * * * sudo python /home/.../file.py
|