개인 공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.
잘못된 부분이 있거나 질문사항은 댓글로 남겨주시면 성심성의껏 답변해드리겠습니다. 감사합니다!
최근에 root 계정으로 cron 설정을 하던 중 새로운 사실을 알게 되었습니다!
평소와 같이 crontab -e 명령을 통해 배치를 저장했지만... 어떻게 해도 실행이 안되는 것이었습니다..
처음에는 권한 문제인지 오타가 있는건지 내가 뭘 놓쳤겠지 했는데..
cron 로그도 살펴보았으나 실행과 오류에 대한 아무런 내용도 찾을 수 없었습니다.
계속해서 구글링과 테스트를 해본 결과 root 계정의 경우 /etc/crontab 내 설정을 통해 적용이 필요했던 것이었습니다!
기본적인 내용인 것 같지만 의외로 정확하게 설명되어 있는 글이 없어 포스팅하게 되었습니다.
본문에 들어가기 앞서 cron 시간 설정 실수를 하지 않으려면 아래 사이트에서 다시 한 번 확인하시는 것도 권장드립니다
https://cronexpressiontogo.com/every-4-hours
1. /etc/crontab - 시스템 배치 관리
/etc/crontab은 root 계정으로 배치 실행이 필요한 경우 설정하게 되어있습니다.
crontab과 다른 점은 배치를 실행할 사용자 계정을 명시해야 된다는 것입니다.
/etc/crontab의 경우 crontab과 같이 별도 명령어는 없고 vi 혹은 nano로 편집만 해주면 됩니다.
아래와 같이 time과 command 사이에 user-name 을 지정해줘야 합니다.
cron을 설정하였으면 항상 cron 데몬을 재시작하여 변경 내용을 적용해줘야 합니다.
systmectl restart crond
cron 실행 내역은 /var/log/cron 에서 확인이 가능합니다!
이외에도 /etc 경로에는 cron 실행 구조와 관련한 파일들이 위치하고 있습니다.
2. crontab - 사용자 배치 관리
crontab은 일반 사용자 계정으로 배치 실행이 필요한 경우 설정하게 되어있습니다.
root 계정으로는 crontab을 생성해도 배치가 실행되지 않습니다.
* crontab 명령어 목록
명령어 | 설명 |
crontab -l | cron 조회 |
crontab -e | cron 수정 |
crontab -r | cron 전체삭제 |
초기 crontab 을 등록하지 않은 상태입니다.
crontab 을 수정하게되면 환경변수에 따라 vi 혹은 nano 가 실행됩니다.
테스트 배치를 설정해보았습니다.
* * * * * /home/Tony/script.sh
새로운 crontab이 생성되었습니다.
다시 조회했을 때, 아래와 같이 정상적으로 확인됩니다.
전체삭제하여 다시 crontab 목록이 삭제된 것을 확인할 수 있습니다.
root 계정으로 하기 경로에서 일반 사용자들의 cron 설정을 조회할 수도 있습니다.
고생하셨습니다!
'서버 > CentOS' 카테고리의 다른 글
XRDP 서버 설치/접속 (0) | 2020.12.22 |
---|---|
OpenSSH 서버 설치/접속 (0) | 2020.12.22 |
telnet 설치/접속 (0) | 2020.12.22 |
at 사용법 (0) | 2020.12.18 |
댓글