서버에서 일정한 기간에 반복적으로 실행해야하는 경우가 있다.
주기적으로 크롤링을 해온다거나 주기적으로 쉘을 실행 시킨다거나
이런 주기적인 작업들은 수작업을 통해서 하기보다는 프로그램에 위임하는것이 편리하다.
그래서 서버에는 cron이라는 기능이 있는데 오늘은 그 사용법에 대해서 알아보려 한다.
CentOS 6.4에서는 RHEL6 버전부터 사용된 anacron이 채용되었다고 한다. 이로인해 RHEL5와는 달라졌다.
자세한 사항은 anacron 참고하시면 되겠다.
주로 설정할때 사용하는 crontab은 cron table의 줄임말이다.
crontab 명령어
crontab -l : 해당 계정의 예약된 작업리스트를 보여준다.
crontab -e : 해당 계정의 예약된 작업을 수정할 수 있다.
crontab -r : 예약된 작업 삭제를 할 수 있다.
crontab -u 사용자명 : root관리자는 해당 사용자의 crontab 파일을 보거나 삭제, 편집 가능하다.
cat /var/log/cron : crontab 실행 로그를 활용할 수 있다.
cat /var/spool/cron/root 예약된 작업을 확인 할 수 있다.
crontab 작성 방법
5자리의 시간설정 [계정(사용자)] 작업명령의 순으로 작성하면 된다.
첫번째 분 0-59
두번째 시 0-23
세번째 일 0-31
네번째 월 1-12
다섯번째 요일 0-7 (0 또는 7=일요일, 1=월, 2=화,...)
여섯번째 사용자명 /etc/crontab, /etc/cron.d 에 저장될 경우 필요
일곱번째 작업명령 실행할 명령을 한줄로 쓴다.
출처: http://webdir.tistory.com/174 [WEBDIR]
40 * * * * sh /web/weather/cron.sh 2> /web/weather/error.log
매40분(1시간단위)에 실행되는 cron을 설정해보았다.
주의 할 점은 cron을 설정할때 무조건 절대 경로로 설정해야 한다는 것이다.
그리고 실행파일을 설정할때는 shell 파일을 만들어서 shell파일을 호출하도록 하는것이 좋다(안그럼 실행이 안될 수 도 있다.)
뒤에 2> /web/weather/error.log 는 에러 발생시 해당부분으로 로그를 남기라는 부분이다.
그리고 마지막으로 중요한 것은 서비스를 재시작 해줘야 한다는 것이다.
service crond restart
cron 서비스를 재시작해주자
현재 날씨 정보를 일정한 시간마다 크롤링 하는 것을 설정할 때 사용해 보았는데 해당 부분에서 알게되는 정보가 있다면 추가 수정하도록 하겠스습니다.
'프로그래밍 > 서버' 카테고리의 다른 글
[리눅스] 환경 설정 꿀팁 및 자주 발생하는 오류 대응 (0) | 2024.06.24 |
---|---|
[JEUS]Thread dump (0) | 2018.02.12 |
[리눅스]특정기간 파일찾기 (0) | 2017.12.14 |
[리눅스]파일 전송 (0) | 2017.12.14 |
[리눅스]폴더 압축/해제 방법 (0) | 2017.12.14 |