[Linux] 작업 스케줄러 - Crontab
2024. 5. 28. 23:19ㆍCS/운영체제 &
개발 및 운영을 하다보면, 특정 모듈이 잘 작동하는지 확인을 하거나 특정 작업을 주기적으로 실행해야 할 때가 있더라구요. 그 때 필요한 것이 작업 스케줄러!!
크론탭이란 리눅스(Linux) 운영체제 환경에서, 스케줄링을 관리하는 프로그램입니다.
다음과 같은 명령어를 통해, 해당 프로세스가 실행중인지 확인할 수 있는데요!
| ps -ef | grep -v grep | grep (processName) |
이를 응용해서, 주기적으로 해당 프로세스가 실행되어 있는지 확인해보려고 합니다.
write_apple.sh작성
apple.pid 프로그램이 있다면 오늘 날짜의 log에 해당 내용을 기록을 하려고 합니다.
반대로 프로그램이 실행중이지 않다면, 멈춰 있음을 로그에 남겨두려고 하는데요!
#!/bin/bash
DIR="/app/fruit/apple"
DAY=$(date +"%Y-%m-%d")
TIME=$(date +"%Y-%m-%d %H%M%S")
if ps -ef | grep -v grep | grep apple.pid > /dev/nul 2>&1
then
echo "$TIME program is running" > $DIR/$DAY.log
else
echo "$TIME programi is stopped" > $DIR/$DAY.log
fi
crontab 작성
해당 sh을 주기적으로 실행하는 크론탭을 작성하려고 합니다.
해당 크론탭은 같은 모듈 안에서 1시간마다 감시한다고 가정을 하겠습니다~!
0 1 * * * /bin/bash /app/fruit/apple/write_apple.sh
이렇게 작성할 수 있을 것 같아요!!
먼저, 크론탭을 작성하는 명령어는 crontab -e 이구요! 반대로 크론탭을 삭제하는 명령어는 crontab -r 입니다.
크론탭에 작성되어 있는 작업 스케줄러, 기본적인 구성은 다음과 같습니다.
* * * * * (경로)/(sh이름).sh
*의 순서대로 설명하자면
첫 번째 * : 분 (0~59)
두 번째 * : 시 (0~23)
세 번째 * : 일 (1~31)
네 번째 * : 월 (1~12)
다섯 번째 * : 요일 (0~7, 0과 7은 일요일)입니다.
'CS > 운영체제 &' 카테고리의 다른 글
| [CS] 페이징(paging) (0) | 2024.02.27 |
|---|---|
| [Linux] 리눅스와 친해지려고 노력중 (0) | 2024.02.15 |
| [Linux] 리눅스 사용을 위한 VM (2) | 2024.02.09 |