본문 바로가기

잡다한 기술

[Ubuntu] 우분투에서 크론탭 사용방법



# 여는글


시간에 따라 반복 작업을 해야하는 경우가 존재할 수 있다.

그럴때 윈도우에서는 윈도우 스케쥴러를 이용하면 된다.

하지만 우분투에선 무엇을 이용해야 할까?

바로 크론탭이다.



# 크론탭 사용법


위에서 말했다시피 크론탭을 사용하면 우분투에서도 반복 작업이 가능하다.

주로 쉘 스크립트(.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/)


읽어주셔서 감사합니다.