-리눅스 크론(cron)을 사용하여 정기적으로 프로세스를 실행하는 방법을 학습한다.
-생활코딩의 리눅스 강의를 바탕으로 학습 및 보충학습하였다.
-ubuntu 12.10을 사용하였다.
크론이란
특정 시간에 특정 작업을 자동으로 수행해야 할 때 크론(cron)을 사용한다. 스케쥴링 역할을 한다. 예를 들어 새벽 4시에 정기적으로 사용자들에게 메일을 발송하는 경우가 대표적이다.
크론 작업 설정은 crontab에서 한다. crontab은 /etc/crontab에 위치해 있다. 여기 설정된 크론 설정 정보를 통해 자동으로 수행될 프로세스가 결정된다.
크론 설정은 crontab 명령어를 통해 할 수 있다. crontab -e를 입력하면 편집할 편집기를 설정하라는 메뉴가 나온다.(최초1번만 나옴)
2번 nano를 입력하면 nano편집기로 crontab 파일이 열린다.
스크롤으 내려 아래다가 크론식을 입력한 후 ctrl+O로 작성완료한다.
크론식이 */1 * * * *이라고 작성되어 있고 뒤에 date >> date.log 2>&1라고 작성되어 있다. 일단 위의 주석에 #m h dom mon dow command라고 메뉴얼이 있기 때문에 이에 맞추면 되는데 헷깔리면 블로그 검색을 통해 원하는 크론식을 찾아쓰면 될 것 같다. 일단 */1 * * * *는 일월상관없이 1분마다 동작한다는 의미이다. 그리고 뒤에 date >> date.log 2>&1은 해석하면 다음과 같다.
- date >> date.log : date명령어는 현재 날짜와 시간을 출력하는데, 이를 date.log파일에 IO 리다이렉션하여 append한다. 즉, 크론식이 1분마다 설정되어 있으므로 1분마다 date명령어의 결과가 date.log로 리다이렉션 되어 업데이트된다는 의미이다. '>'가 2개이면 지우고 업데이트가 아니라 기존 파일에 append 방식으로 업데이트한다.
- 2>&1 : 2는 표준에러인데 에러가 발생하면 표준출력(1)로 리다이렉션 한다는 의미이다. 엠퍼샌드(&)를 안 붙이면 1이라는 이름의 파일로 인식하기 때문에 꼭 붙여야 한다.
즉, 1분마다 날짜와 시간을 date.log파일에 업데이트해주라는 의미의 크론식이다. 이제 nano 편집기를 나간 후 tail -f date.log 명령어로 변경때마다 결과를 출력해주는 것을 확인할 수 있다.(참고로 크론식 작성이 잘 되었는지 확인하려면 crontab -l 옵션을 입력하면 확인 가능하다)
참고로 기존에 계속 사용하던 user1이라는 아이디로는 크론식이 제대로 동작하지 않아 최초에 만든 유저 아이디로 변경하여 테스트했더니 작동한다. 유저의 권한과 관련된 문제인지 크론식이 동작 안 할 수도 있는 것 같은데 어디서부터 확인해야할지 잘 모르겠다..일단 보류! 다시 복습할 타이밍이거나 실무에서 사용할 기회가 있으면 더 공부해봐야겠다.
'개발자 일지 > Linux' 카테고리의 다른 글
[리눅스 기초]less 명령어 사용법, 단축키, 사용 이유 (0) | 2024.09.13 |
---|---|
Vmware로 리눅스 서버 및 tomcat 설치하기 (0) | 2023.02.05 |
[리눅스 기초]daemon,service에 관하여 (0) | 2021.05.09 |
[리눅스마스터2급]1차 시험 문제 학습하기 (0) | 2021.05.08 |
[리눅스 기초]백그라운드, 포그라운드 프로세스 (0) | 2021.05.06 |
[리눅스 기초]파일을 찾는 방법(location,find,whereis) (0) | 2021.05.04 |
[리눅스 기초]프로세스 확인하기(ps, top) (0) | 2021.05.03 |
[리눅스 기초]리눅스 디렉토리 구조 (0) | 2021.03.18 |