2024. 7. 29. 02:35ㆍLinux*security
Crontab 은 Linux와 Unix 계열 운영 체제에서 일정한 시간 간격으로 작업을 자동화하여 시스템 레벨 작업(cron jobs)을 예약할 수 있다.
Crontab 기본 형식
* * * * * command_to_run
각 *는 시간의 특정 필드를 나타내며, 왼쪽에서 오른쪽으로
1. 분 (0 - 59)
2. 시 (0 - 23)
3. 일 (1 - 31)
4. 월 (1 - 12)
5. 요일 (0 - 7) (0 또는 7은 일요일)
- 특정 숫자 (예: 5)
- 범위 (예: 1-5)
- 쉼표로 구분된 목록 (예: 1,3,5)
- 와일드카드 * (모든 값)
- 슬래시로 구분된 간격 (예: */5는 5분마다)
새벽 3시 0분
0 3 * * */scripts/go.sh
두 개의 시간 지정 3시 30분과 15시 30분
30 3,15 * * */scripts/go.sh
Crontab 사용
1. Crontab 파일 편집
crontab -e
2. 현재 사용자의 Crontab 목록 보기
crontab -l
3. 현재 사용자의 Crontab 파일 삭제
crontab -r
ex
1. 매 시간 0분마다 스크립트 실행
0 * * * * /path/to/script.sh
2. 매일 오전 3시 15분에 백업 스크립트 실행
15 3 * * * /path/to/backup.sh
3. 매주 월요일 오전 7시 30분에 로그 정리 스크립트 실행
30 7 * * 1 /path/to/cleanup.sh
4. 매 10분마다 스크립트 실행
*/10 * * * * /path/to/script.sh
5. 매달 1일과 15일 오후 12시 45분에 스크립트 실행
45 12 1,15 * * /path/to/script.sh
Crontab의 MAILTO 변수를 사용하여 특정 이메일 주소로 작업 결과를 전송
MAILTO 변수 설정하기
MAILTO 변수를 설정하여 이메일을 받을 주소를 지정한다. 예를 들어, user@example.com으로 모든 Crontab 작업의 출력을 받으려면:
crontab
MAILTO="user@example.com"
특정 작업의 출력만 이메일로 받고 싶다면,
# 첫 번째 작업의 출력은 user1@example.com으로 전송
MAILTO="user1@example.com"
0 * * * * /path/to/script1.sh
# 두 번째 작업의 출력은 전송되지 않음
MAILTO=""
30 * * * * /path/to/script2.sh
# 세 번째 작업의 출력은 user2@example.com으로 전송
MAILTO="user2@example.com"
45 * * * * /path/to/script3.sh
'Linux*security' 카테고리의 다른 글
tree 디렉토리 구조 출력 (0) | 2024.08.14 |
---|---|
SSH 연결 | NAT | Bridge (0) | 2024.08.14 |
find 파일 사이즈로 찾기 (0) | 2024.07.25 |
리눅스 시스템의 주요 디렉터리 (1) | 2024.07.24 |
런레벨(Run Level) (2) | 2024.07.24 |