배치와 크론탭

hyunmoo0_0·2021년 12월 20일
0

crontab 옵션 명령어

$ crontab -e # 명령을 등록, 편집 - 맨 처음에 사용 시 편집기를 선택할 수 있다.
$ crontab -d # 등록된 명령을 삭제
$ crontab -l # 현재 등록된 리스트 출력
$ crontab -l -u otheruser # otheruser 사용자가 등록한 crontab 리스트 출력
$ crontab -r # 현재 사용자가 등록한 crontab 전체 삭제

검토사항

변경 후 반드시 cron 다시 실행시키기

service cron start # 가동
또는
service cron restart # 재가동

실행 파일은 일반 경로에 위치, path 설정 – not found

cron은 보안때문에 사용자 개인 설정 파일을 참조하지 않습니다.
즉 사용자의 쉘 초기화 파일(.bashrc, .bash_profile)을 읽지 않습니다.
그러므로 실행 프로그램(예를 들어 *.sh)들은 /usr/bin이나 /bin과 같은
일반 경로에 있어야 cron이 제대로 찾아서 실행시킬 수 있습니다. 이런 경로에
없다면 /bin/sh: 1: /bin/dbbackup.sh: not found 같은 메세지가 메일로 보내집니다.

실행 파일 권한 문제 – Permission denied
가끔 실행 파일에 제대로 권한이 성정되지 않았다면 아래와 같은 메세지가 메일로 보내집니다.
그렇기 때문에 충분한 권한을 줍니다.
chmod +x dbbackup.sh

실행파일 sh는 복사하지 말것
crontab 설정 시 실행파일 sh 파일을 기존에 만들어놓은 것을 FTP로부터
복사해 오는 경우가 있습니다 왜 그런지는 모르지만 이렇게 복사해오는 경우
제대로 작동하지 않습니다. 멀쩡히 해당 디렉토리에 존재하고 파일 권한도
충분한데 Permission denied, not found같은 메세지를 내 보냅니다.

이럴경우 조금 귀찮지만 sh 파일을 편집기를 사용해 다시 만들면 제대로 작동합니다.

crontab 작동 확인
그리고 crontab이 제대로 작동하는지 확인하기 위해서 service cron status 명령을 사용합니다.

1,6,11,16,21,26,31,36,41,46,51,56 * * * * / Batch/daemon.sh > dev/null 2>&1

1,6~분마다 배치 실행

dev/null 2>&1 2: 표준에러 , >: 리다이렉트 , &1: 표준출력

dev/null 에 에러를 출력해라
=에러가 나오면 dev/null 에출력!!

'>' 명령의 결과를 파일에 저장

'<' 파일의 데이터를 명령에 입력

특정분마다 Batch-daemon.sh를 실행 에러뜨면 dev/null에
저장하고 다시 시작

크론탭 추후 수정

profile
안녕하세요~

0개의 댓글