리눅스:cron(자동작업 등록): 두 판 사이의 차이
잔글 (→크론 파일 작성법) |
|||
(사용자 2명의 중간 판 4개는 보이지 않습니다) | |||
15번째 줄: | 15번째 줄: | ||
|- | |- | ||
|cron.daily | |cron.daily | ||
| | |매일 실행되는 cron들을 모아둔다. | ||
|- | |- | ||
|cron.weekly | |cron.weekly | ||
23번째 줄: | 23번째 줄: | ||
| | | | ||
|} | |} | ||
해당 디렉터리 자체를 크론으로 실행시키는데, 해당 디렉터리가 크론에 등록되어 있지 않으면 실행이 되지 않기도 한다. | |||
===크론 파일 작성법=== | ===크론 파일 작성법=== | ||
경험상, 파일을 작성하고 그 파일 자체를 crontab에 올려버리는 게 간편하다. | 경험상, 파일을 작성하고 그 파일 자체를 crontab에 올려버리는 게 간편하다. | ||
33번째 줄: | 35번째 줄: | ||
|- | |- | ||
|파일 만들기 | |파일 만들기 | ||
|nano mysql 따위로 파일을 작성한다. | |nano mysql 따위로 파일을 작성한다.(혹은 그냥 기존 파일.) | ||
문법의 사용은 우측의 예시를 보면 대강 유추할 수 있을 터. | 문법의 사용은 우측의 예시를 보면 대강 유추할 수 있을 터. | ||
|#!/bin/bash | |#!/bin/bash | ||
62번째 줄: | 64번째 줄: | ||
|/etc/cron.daily/mysql | |/etc/cron.daily/mysql | ||
이후 크론이 작동하는 것을 확인한다. | 이후 크론이 작동하는 것을 확인한다. | ||
|} | |||
=crontab= | |||
{| class="wikitable" | |||
!과정 | |||
!설명 | |||
!방법 | |||
|- | |||
|설치 | |||
|설치되 | |||
처음 실행하면 아무것도 작성되지 않은 파일이 열린다. | |||
|crontab -e | |||
|- | |||
|등록내역 보기 | |||
| -l 옵션 | |||
|crontab -l | |||
|} | |||
==작성법== | |||
<code>분 시 일 월 요일 명령</code> 형태. | |||
=== 시간에 대하여 === | |||
{| class="wikitable" | |||
!의도 | |||
!설명 | |||
!방법 | |||
|- | |||
|일정 간격 실행 | |||
|예컨대 5분마다 한 번 실행되게 한다면 다음과 같이 작성한다. | |||
|<syntaxhighlight lang="bash"> | |||
*/5 * * * * 명령 | |||
</syntaxhighlight> | |||
|- | |||
|특정 시간 실행 | |||
|특정 시간마다 실행되게 하려면 다음과 같이 작성. | |||
|매 시간 15분(8시15분, 9시15분...)<syntaxhighlight lang="bash"> | |||
15 * * * * 명령 | |||
</syntaxhighlight>매 시간 15분, 45분에 실행<syntaxhighlight lang="bash"> | |||
15, 45 * * * * 명령 | |||
</syntaxhighlight> | |||
|} | |||
분에 */5 가 들어가면 매 5분마다 실행한다는 의미이다. | |||
분에 15, 45를 두면 매 15분, 45분마다 실행. | |||
=== 명령에 대하여 === | |||
{| class="wikitable" | |||
!의도 | |||
!설명 | |||
!방법 | |||
|- | |||
|파이썬 파일 실행 | |||
|.py 파일을 실행하기 위해 파이썬을 실행해주고 옵션으로 경로를 준다. | |||
파이썬 파일 안에 한글이 들어가 있다면 encoding을 해주어야 한다. | |||
encoding은 파일 가장 상단에 <code># -*- encoding: utf-8 -*-</code> 을 넣어주면 된다. | |||
|<syntaxhighlight lang="bash"> | |||
* * * * * sudo python /home/.../file.py | |||
</syntaxhighlight>sudo는 해당 파일의 권한에 상관없이 실행하기 위함. | |||
|} | |} |
2022년 10월 28일 (금) 07:55 기준 최신판
리눅스를 위한 문서틀 틀:리눅스
- 리눅스:명령어
- 리눅스:권한관련
- 리눅스:편의기능
- 리눅스 기반 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
|