크론(cron)으로 백업 재부팅 로그삭제까지 쉽게 자동화 하는 방법

Views: 0

크론(cron) 개요와 자동화의 필요성

서버 운영에서는 정기적인 백업, 로그 정리, 보안 패치, 재부팅 등 반복 작업이 필수적이다. 이를 사람이 매번 직접 수행하면 시간 낭비뿐 아니라 실수 위험도 증가한다. 크론은 이러한 반복 작업을 자동화해 정해진 시간에 명령을 실행하도록 도와준다. 서버 안정성과 운영 효율성을 동시에 확보할 수 있는 핵심 도구다.

크론의 기본 구조와 동작 방식

크론은 crontab 파일에 정의된 스케줄을 바탕으로 작업을 실행한다. crontab 각 줄은 시간과 실행 명령으로 구성된다.

*  *  *  *  *  실행할 명령
분 시 일 월 요일

예를 들어 매일 새벽 3시에 명령을 실행하려면 다음과 같이 작성한다.

0 3 * * * /usr/bin/backup.sh

사용자별 crontab을 설정하려면 아래 명령을 사용한다.

crontab -e  (편집)
crontab -l  (확인)
crontab -r  (삭제)
crontab -l 예약 확인하기

자동 백업 설정하기

데이터베이스 백업

MySQL이나 MariaDB의 경우 다음 스크립트를 활용한다.

0 2 * * * mysqldump -u root -p비밀번호 DB이름 > /backup/db_$(date +\%F).sql

이 설정은 매일 새벽 2시에 DB를 백업하며 날짜가 포함된 파일명으로 저장된다.

디렉터리 파일 백업

웹 서비스 소스나 설정 파일을 주기적으로 압축해 백업할 수도 있다.

30 1 * * * tar -czf /backup/www_$(date +\%F).tar.gz /var/www/html

자동 재부팅 스케줄 설정

지속적으로 운영되는 서버는 메모리 누수와 서비스 지연이 쌓일 수 있다. 이를 예방하려면 주기적인 재부팅이 효과적이다.

0 5 * * 1 /sbin/reboot

매주 월요일 새벽 5시에 서버가 자동 재부팅된다.

로그 자동 삭제 및 정리

로그 파일은 시간이 지나면 용량을 계속 차지한다. 오래된 로그를 정리하면 저장 공간을 확보하고 성능을 유지할 수 있다.

0 0 * * * find /var/log -type f -name "*.log" -mtime +7 -delete

7일 이상 지난 로그 파일을 자동으로 삭제하는 설정이다.

크론 작업 로그 확인과 문제 해결

크론이 제대로 실행되지 않는다면 로그 확인이 필요하다. 대부분 시스템에서는 아래 경로에서 확인할 수 있다.

  • /var/log/cron
  • /var/log/syslog
    작업 권한 문제, 경로 지정 오류, 환경 변수 설정 누락 등이 실패 원인일 수 있다. 실행 명령에 절대경로를 명시하고 필요한 권한을 부여하는 방식으로 해결할 수 있다.

보안과 안정성을 위한 팁

  • 루트 사용자 crontab 수정 시 신중히 작업
  • 중요한 작업은 실행 전 테스트 환경에서 검증
  • 백업 파일에 대한 암호화와 접근 제한 설정
  • crontab 수정 내역을 버전 관리 시스템에 기록

마무리

크론은 단순하면서도 강력한 자동화 도구로, 서버 운영자가 반복 작업을 효율적으로 관리할 수 있게 해준다. 백업, 재부팅, 로그 삭제 같은 필수 작업을 자동화하면 실수 최소화와 운영 안정성을 동시에 얻을 수 있다. 서버 운영 환경에 맞는 스케줄을 구성해 적용하면 관리 비용은 줄고 서비스 품질은 높아진다.