문서
빠른 시작 + 부분별, 기기별 기능 설명 (계속 업데이트 중)
예약 작업 (Cron)
이 문서는 대상 서버의 정기 작업을 관리하는 방법을 소개합니다.
먼저 알아두기: Cron이란
Cron은 Linux에 기본 내장된 「정기 스케줄링」 도구입니다. 「매일 새벽 3시에 데이터베이스 자동 백업」, 「1시간마다 로그 정리」, 「매주 월요일에 특정 서비스 재시작」처럼 지정할 수 있고, 시간이 되면 사람이 지켜보지 않아도 자동으로 실행됩니다.
기능 소개
대상 서버의 Cron 정기 작업을 조회, 추가, 삭제합니다.
활용 시나리오
- 데이터베이스 정기 백업, 로그 정리
- 모니터링 스크립트 정기 실행
- 서비스 정기 재시작, 인증서 갱신
사용 방법
특정 서버의 「시스템 관리 패널 → 예약 작업」에 들어가면 그 서버의 현재 모든 Cron 작업을 볼 수 있습니다.
작업 추가
Cron 표현식과 실행할 명령을 입력합니다:
| 항목 | 설명 |
|---|---|
| 시간 표현식 | 5개 필드 형식, 예: 0 3 * * * (매일 새벽 3시) |
| 명령 | 실행할 shell 명령 |
Cron 표현식 형식 (분 시 일 월 요일):
* * * * * 명령 │ │ │ │ │ │ │ │ │ └── 요일 (0-7, 0/7=일요일) │ │ │ └──── 월 (1-12) │ │ └────── 일 (1-31) │ └──────── 시 (0-23) └────────── 분 (0-59)
자주 쓰는 예시:
| 표현식 | 의미 |
|---|---|
*/5 * * * * | 5분마다 |
0 * * * * | 매시간 |
0 3 * * * | 매일 새벽 3시 |
0 3 * * 1 | 매주 월요일 새벽 3시 |
0 3 1 * * | 매월 1일 새벽 3시 |
0 3 * * 0 | 매주 일요일 새벽 3시 |
30 2 * * * | 매일 새벽 2시 30분 |
실용 명령 예시:
# 매일 새벽 3시 데이터베이스 백업 (예시) 0 3 * * * docker exec sshe-mysql mariadb-dump -uroot -p'<비밀번호>' dbname > /opt/backup/db-$(date +\%F).sql # 6시간마다 임시 파일 정리 0 */6 * * * find /tmp -type f -mtime +7 -delete # 매주 월요일 새벽 4시 특정 서비스 재시작 0 4 * * 1 systemctl restart my-app
주의 사항
1. Cron 작업은 대상 서버의 현재 사용자 권한으로 실행되므로, 그 사용자가 명령을 실행할 권한이 있는지 확인하세요.
2. 명령은 절대 경로로 쓰는 것을 권장합니다 (Cron은 환경 변수가 적어 상대 경로로는 프로그램을 찾지 못할 수 있습니다).
3. 명령에 %를 쓸 때는 \%로 이스케이프해야 합니다 (Cron은 %를 특수 문자로 취급합니다).
4. Cron 작업을 삭제하면 즉시 반영됩니다.
5. 시스템 수준 Cron(/etc/crontab) 수정은 패널 밖에서 해야 할 수 있습니다. 패널은 기본적으로 현재 사용자의 crontab -l을 관리합니다.