지난 글에서 crontab 개념에 대해 공부했습니다 이번에는 crontab 실습을 통해 사용방법을 알아보겠습니다.
실습 1: "Hello Cron!" 메시지를 1분마다 출력하는 스크립트
1. 스크립트 작성
mkdir -p ~/cron-test
vi ~/cron-test/hello.sh
#!/bin/bash
echo "[$(date)] Hello from cron!" >> ~/cron-test/hello.log
2. 실행 권한 부여
chmod +x ~/cron-test/hello.sh
3. crontab 등록
crontab -e
* * * * * /home/your_username/cron-test/hello.sh

◎ your_username은 본인 홈 디렉터리에 맞게 변경
◎ 절대 경로를 사용해야 정상 작동
4. 실행 결과 확인
tail -f ~/cron-test/hello.log
→ 매 분마다 hello.log에 로그가 쌓임

실습 2: 시스템 로그를 백업하는 스크립트
1. 스크립트 작성
vi ~/cron-test/backup_syslog.sh
#!/bin/bash
DATE=$(date +%F_%H-%M)
cp /var/log/syslog ~/cron-test/syslog_$DATE
2. 권한 부여
chmod +x ~/cron-test/backup_syslog.sh
3. contab 등록 (매일 자정 실행)
crontab -e
0 0 * * * /home/your_username/cron-test/backup_syslog.sh

4. 실행 여부 확인
ls ~/cron-test/
→ 날짜별로 백업된 로그 파일이 생성되어 있어야 함

실습 3 : 5분마다 네트워크 상태 확인
1. 스크립트 작성
vi ~/cron-test/net_check.sh
#!/bin/bash
echo "[$(date)]" >> ~/cron-test/netstat.log
ss -tuln >> ~/cron-test/netstat.log
echo "" >> ~/cron-test/netstat.log
2. 권한 부여
chmod +x ~/cron-test/net_check.sh
3. crontab 등록
crontab -e
*/5 * * * * /home/your_username/cron-test/net_check.sh

4. 결과 확인
tail -f ~/cron-test/netstat.log
실습 팁
- cron의 실행 환경은 로그인 쉘과 다르므로, 경로 문제를 줄이기 위해 스크립트 내부에 절대 경로를 사용하세요.
- 로그를 확인하기 위해 >> 와 2>&1을 활용하면 디버깅이 쉬워집니다.
- 시스템 로그에서 cron 실행 결과를 확인하고 싶다면
journalctl -u cron -f

이렇게 실행된 시간과 실행 결과를 알 수 있습니다.
grep CRON /var/log/syslog
'linux' 카테고리의 다른 글
| logrotate로 로그 관리하기 & journalctl과의 차이점 (0) | 2025.05.21 |
|---|---|
| 리눅스 로그 관리 - /var/log와 주요 로그 파일 정리 (0) | 2025.05.21 |
| crontab으로 작업 자동화 하기 - 개념과 기본 문법 (0) | 2025.05.20 |
| journalctl로 시스템 로그 분석하기 - 리눅스 로그 관리의 핵심 (0) | 2025.05.14 |
| systemd와 systemctl을 활용한 서비스 관리 (0) | 2025.05.14 |