서버 & 리눅스 실무팁

리눅스 쉘 스크립트 실전 예제 Part 8: 자동화 예약 실행

smartbay 2025. 6. 14. 15:48

리눅스 쉘 스크립트 실전 예제 Part 8: 자동화 예약 실행

정기 백업, 로그 정리, 디스크 감시… 매번 수동으로 하지 마세요. 크론(cron)으로 예약 실행하면 반복 작업이 자동화됩니다.


1. cron을 이용한 정기 백업 스케줄링

용도: 매일 오전 2시에 /home 디렉토리를 tar로 백업하는 작업을 예약합니다.


0 2 * * * tar -czf /backup/home_$(date +\%Y\%m\%d).tar.gz /home

설명:
- 0 2 * * *: 매일 오전 2시 실행
- $(date)의 %는 crontab에서 이스케이프 처리 필요
- 백업 파일은 날짜별로 저장됩니다.


2. 주간 로그 정리 스크립트 예약

용도: 매주 일요일 새벽 3시에 로그 파일을 삭제하거나 압축하는 스크립트를 실행합니다.


0 3 * * 0 /usr/local/bin/clean_logs.sh

설명:
- * * 0: 0은 일요일
- 스크립트 내부에서 find + -mtime 등을 활용하여 오래된 로그 정리
- 로그 파일은 사전 백업 후 삭제 권장


3. 디스크 감시 스크립트 매일 실행

용도: 디스크 사용률을 체크하고 임계치 초과 시 메일 또는 슬랙으로 알리는 감시 스크립트를 매일 실행합니다.


30 1 * * * /usr/local/bin/disk_monitor.sh

설명:
- 매일 오전 1시 30분 실행
- 이전 파트에서 소개한 df, mail 명령을 활용한 감시 스크립트


4. 자동 삭제 스크립트 월 1회 실행

용도: /tmp, /log 등 불필요한 파일을 한 달에 한 번 정기적으로 정리합니다.


0 4 1 * * /usr/local/bin/auto_cleanup.sh

설명:
- 매월 1일 새벽 4시 실행
- find 명령으로 *.bak, *.tmp, 오래된 로그 등을 정리
- 대상과 조건을 echo로 사전 점검 추천


5. 스크립트 실행 결과 로그 저장

용도: 모든 예약 실행 결과를 파일로 저장하여 오류 추적 및 운영 이력을 관리합니다.


0 1 * * * /usr/local/bin/task.sh >> /var/log/task.log 2>&1

설명:
- >>: 표준 출력을 로그 파일에 append
- 2>&1: 오류 출력도 동일하게 로그로 저장
- crontab 명령에서 반드시 전체 경로를 지정하는 것이 안전합니다


마무리 안내

자동화 예약은 서버 운영의 핵심입니다. crontab -e로 개인 또는 시스템 계정별로 설정할 수 있으며, 각 작업의 실행 여부는 로그를 통해 정기 점검하는 것이 좋습니다. 백업, 정리, 감시 등 반복 작업은 모두 예약으로 바꿔보세요.


실무에 바로 적용할 수 있는 리눅스 쉘 스크립트 예제, 스마트베이에서 함께합니다.


스마트베이 | IT 자동화 혁신 파트너
비즈니스 효율을 높이는 스마트한 IT 솔루션을 제공합니다.

웹사이트 : www.esmartbay.co.kr
E-mail : smartbay.svc@gmail.com
카카오톡 : 바로 상담하기