# 여는글
시간에 따라 반복 작업을 해야하는 경우가 존재할 수 있다.
그럴때 윈도우에서는 윈도우 스케쥴러를 이용하면 된다.
하지만 우분투에선 무엇을 이용해야 할까?
바로 크론탭이다.
# 크론탭 사용법
위에서 말했다시피 크론탭을 사용하면 우분투에서도 반복 작업이 가능하다.
주로 쉘 스크립트(.sh)를 작성하고 그 다음 크론탭에 해당 쉘 스크립트를 등록하여
설정된 시간에 따라 쉘 스크립트를 사용하도록 만드는 일을 크론탭이 한다.
크론 탭을 사용하기에 앞서 먼저 크론탭 명령어들을 살펴보자
크론탭을 사용할 때 보통 아래에 네가지 명령어를 사용한다.
- 크론탭 리스트 확인
$ crontab -l
- 다른 사용자의 크론탭 리스트 확인
$ crontab -l -u 유저명
- 크론탭 등록 및 수정
$ crontab -e
- 크론탭 모두 삭제
$ crontab -r
위와 같은 명령어를 사용하여 크론탭을 제어한다.
자 그럼 크론탭을 작성해 보자
먼저 크론탭을 등록하기 위해 아래 명령어를 입력하자
$ crontab -e
그 후 아래와 같이 크론탭을 등록한다.
* * * * * root /usr/local/test.sh
처음 크론탭을 사용하면 이것이 뭔지 모를것이다.
간단히 말하면
* * * * * 은 시간을 나타내고
그 다음 root는 실행자를 뜻하며
/usr/local/test.sh 는 쉘 스크립트의 위치를 나타낸다.
그럼 시간은 어떻게 나타내는가?
첫번째 * 자리에는 0 ~ 59 : 분
두번째 * 자리에는 0 ~ 23 : 시간
세번째 * 자리에는 1 ~ 31 : 일
네번째 * 자리에는 1 ~ 12 : 월
다섯째 * 자리에는 0 ~ 6 : 요일 ( 0 : 일요일 )
나타낸다.
간단히 예를 들어보자
ex)
* * * * * root /usr/local/test.sh // 매 분 마다 실행
30 * * * * root /usr/local/test.sh //매시간 30분마다 실행
0 18 * * 0 root /usr/local/test.sh //매주 일요일 18시에 실행
0 18 * * 0,4 root /usr/local/test.sh //매주 일요일,목요일 18시에 실행
실제로 매 분마다 실행을 해주는 프로그램 보다는 일정 시간 혹은 날짜를 간격으로 실행을 하기 때문에,
5개의 *이 있는 각각의 위치에 들어가는 값을 알고있어야 한다.
만약 쉘스크립트가 아닌 XML파싱을 위해 웹 서비스를 이용해야 한다면 아래와 같이 사용이 가능하다.
30 * * * * lynx -dump http://127.0.0.1/api/xmlParsing
lynx를 통해 웹에 접속 가능한데 lynx에 대해서 궁금하다면 구글링을 하도록 하자
(필자도 정확히는...)
그 후 크론탭을 저장 후 크론탭을 재시작하자
$ /etc/init.d/crond start
$ /etc/init.d/crond stop
$ /etc/init.d/crond restart
만약 크론탭의 서비스에 등록되어 있다면 아래와 같은 명령어를 사용하자.
$ sudo service cron start
$ sudo service cron stop
$ sudo service cron restart
# 다른 방법
우분투 16.04를 사용하는데 위와 같은 명령어가 실행이 안된다면
아래에 방법을 따라가자
크론탭을 열자
$ sudo vim etc/crontab
그 후 크론탭 을 등록후 저장하면 되는데
예시로 크론탭에 매일 0시 10분에 특정 쉘 스크립트를 자동 실행하게 등록해야한다면
아래와 같이 수정을 하면 된다.
10 0 * * * root /home/test/tttt/scp.sh
이렇게 수정하거나 등록하고
vim을 저장하고 종료한다.
그 후
$ sudo service cron reload
를 하여 서비스에서 재 시작을 해주면
정상적으로 되는것을 확인할 수 있다.
# 마무리
위 포스트는 제가 직접 제작한 것 입니다.
그렇기 때문에 틀린점이나 설명이 엉성한 점이 존재할 수 있습니다.
만약 틀린점이나 설명이 엉성한 부분이 존재하면 댓글로 알려주세요.
빠른 처리 하도록 하겠습니다.
티스토리 앱으로는 댓글 이용이 불가능 하므로 웹 브라우저로 봐 주세요
(URL : http://junprogramer.tistory.com/)
읽어주셔서 감사합니다.
'잡다한 기술' 카테고리의 다른 글
[Ubuntu] 우분투 16.04에서 로컬 SMTP 만드는 방법 (0) | 2018.10.17 |
---|---|
[Ubuntu] 우분투에서 screen(스크린) 사용 방법 (0) | 2018.10.17 |
[Javascript] 자바스크립트로 클론 만드는 방법 (0) | 2018.10.17 |
[Javascript] 자바스크립트로 비동기 데이터 전송 구현 방법 (0) | 2018.10.17 |
[Javascript] 자바스크립트로 문자열 변경하는 방법 (0) | 2018.10.17 |