지난 글에서 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

 

+ Recent posts