경돌이 서버를 운영하다보니 매일 업데이트 해주어야 하는 프로그램들이 있었다.
어떻게 하면 주기적으로 자동 업데이트를 진행할 수 있을지 고민하다가 처음에 파이썬 모듈을 사용하려고 했으나 crontab이라는 것을 알게되어 사용하게 되었다
crontab
리눅스에서 반복 예약작업이 가능하게 해주는 프로그램이다.
설치
1 | apt-get install -y cron | cs |
위와같은 명령을 통해 crontab을 설치할 수 있다
사용법
기본 명령은 다음과 같다
1. 예약작업 설정
1 | crontab -e | cs |
or
1 | vi /etc/crontab | cs |
위의 명령을 입력하면 vi에디터가 나온다. 해당 문서에 규칙에 맞게 수행할 작업을 입력하고 저장하면 crontab 갱신이 된다. 단, vi에디터로 직접 수정할 시에는 권한을 붙여주어야 한다(ex * * * * * root /etc/abc.sh)
2. 작업목록 확인
1 | crontab -l | cs |
위의 명령을 입력하면 해당 문서가 출력된다. 현재 예약된 작업 목록을 확인할 수 있다.
3. 작업 초기화
1 | crontab -r | cs |
위의 명령을 입력하면 해당 문서가 초기화된다.
작업 등록 규칙
* |
* |
* |
* |
* |
분(0~59) |
시간(0~23) |
일(1~31) |
월(1~12) |
요일(0~7) |
위와같은 규칙을 통해 실행 주기를 설정할 수 있다.
예를 들면 아래와 같은 규칙들이 나올 수 있다
1 2 3 4 5 | * * * * * /home/a.sh 1분마다 실행 1 * * * * /home/a.sh 매 1분에 실행 1,5 * * * * /home/a.sh 매 1분,5분에 실행 */5 * * * * /home/a.sh 5분마다 실행 0 1 * * * /home/a.sh 매일 1시 0분에 실행 | cs |
고퍼의 노가다
나의 경우 crontab -e로 수정을 하니 예약작업이 실행이 안됐다. 검색을 해봐도 해결하기 힘들었다. 그래서 vi 에디터로 직접 수정해보니 간단하게 해결되었다. 그리고 나의 경우 파일입출력이 존재했는데 이때 원하는 결과가 나오지 않는다면 권한설정을 알아보면 좋을것 같다! 특히 umask!
'ETC > knowledge' 카테고리의 다른 글
Window 콘솔 자동설정 (1) | 2018.08.14 |
---|---|
Notepad++ 기본설정 (0) | 2018.08.14 |
Ubuntu 시스템 시간 변경 (1) | 2018.05.10 |
Ubuntu 백그라운드 실행 방법 (0) | 2018.05.10 |
Ubuntu 소프트웨어 업데이트 서버 변경 (0) | 2018.04.29 |