크론(Cron), 크론탭(Crontab)이란?
크론은 리눅스에서 명령어를 자동화해서 특정 간격으로 실행하고 싶을 때 이용하는 잡 스케줄러를 말합니다. 크론은 크론탭을 이용해서 명령어를 편집할 수 있습니다. 크론은 윈도우의 작업스케줄러
와 유사한 기능을 합니다.
크론탭 이용방법
터미널에서 root 계정으로 다음을 입력합니다.
명령어를 실행하면 본인이 메인으로 사용하도록 지정한 에디터를 통해(저의 경우는 nano) cron 스케줄 리스트를 편집할 수 있습니다.
크론탭의 사용법
01.스케줄 시간 입력
`분 시 일 월 요일` 순으로 숫자나 기호를 입력하면 해당 시간 혹은 간격으로 명령어를 실행합니다. ChatGPT에게 원하는 시간을 말하고 크론 스케줄로 작성해달라고 하면 알아서 잘 만들어 줍니다.
아래는 시간을 집적 입력하는 형태의 크론탭 예 입니다.
02.부팅시 실행
시간형식 대신 `@reboot`를 입력하면 부팅시 명령어가 실행되도록 할 수 있습니다.
크론탭 사용팁
크론탭을 이용해서 명령어나 스크립트를 실행할 때의 팁입니다. 가상환경이 적용된 파이썬 스크립트를 실행하는 방법과 스크린을 이용해서 명령어를 실행하는 방법입니다.
파이썬 스크립트 실행
리눅스 명령어나 .sh파일처럼 .py(파이썬 파일)도 실행할 수 있습니다. venv가 없는 경우는 파이썬 기본 경로의 python명령어를 입력하면 됩니다. venv가 있는 경우는 venv내의 python명령어를 지정해주면 됩니다.
스크린으로 실행
크론탭을 이용해 부팅시 다음 명령어를 실행했을 때 단점이 있습니다.
pytest2.py파일을 작성할 때 로그 파일을 작성하도록 하지 않으면 오류가 생겼을 때 확인을 하기가 힘듭니다.
간단한 스크립트 작성할 때는 로그를 따로 지정하지 않고 그냥 터미널에서 나오는 메시지만 보는 분이 많을 겁니다.
이런 단점을 해결하려면 다음과 같이 screen을 통해 명령어를 실행하면 됩니다.
스크린(screen)은 리눅스에서 터미널 사용환경을 크게 개선시키는 유틸입니다. 가상터미널을 이용해서 데몬 없이도 여러개의 명령어를 모니터링하면서 사용할 수 있습니다.
스크린에 대해 자세한 내용을 이전 포스트를 참고하세요.
스크린은 apt install screen
명령어로 별도 설치해야 합니다.