태그 보관물: batch

Amazon Linux Crontab Install

✅ 1. cronie 패키지 설치

crontab 명령어는 cronie 패키지에 포함되어 있습니다. 아래 명령으로 설치하세요.

sudo yum install cronie -y

✅ 2. crond 데몬 활성화 및 실행

설치 후에는 crond 서비스(크론 데몬)를 활성화하고 실행해야 합니다.

sudo systemctl enable crond
sudo systemctl start crond

systemctl status crond

✅ 3. 사용자별 crontab 편집

설치 및 실행이 완료되면 다음 명령으로 사용자 크론 설정을 할 수 있습니다.

crontab -e


예시: 매일 5시에 쉘 스크립트를 실행

0 5 * * * /home/ec2-user/backup.sh >> /home/ec2-user/backup.log 2>&1

🔍 참고: 크론 로그 확인

Amazon Linux에서는 기본적으로 /var/log/cron 파일에 로그가 남습니다.

sudo tail -f /var/log/cron

Crontab 사용방법

✅ crontab 기본 명령어

명령어설명
crontab -e현재 사용자에 대한 크론 편집
crontab -l등록된 크론 작업 목록 확인
crontab -r현재 사용자의 크론 작업 전체 삭제
crontab -u [USER] -e특정 사용자의 크론 편집 (root만 가능)

⏰ crontab 시간 형식

scss복사편집* * * * *  명령어
│ │ │ │ │
│ │ │ │ └─ 요일 (0~7) (0과 7은 일요일)
│ │ │ └─── 월 (1~12)
│ │ └───── 일 (1~31)
│ └─────── 시 (0~23)
└───────── 분 (0~59)

예시:

스케줄의미
0 3 * * *매일 새벽 3시에 실행
*/10 * * * *10분마다 실행
0 9-17 * * 1-5평일 오전 9시부터 오후 5시까지 매시 정각 실행
0 0 1 * *매달 1일 0시에 실행
0 22 * * 0매주 일요일 밤 10시에 실행

📂 로그 확인

기본적으로 크론 작업은 시스템 로그에 기록됩니다:

  • Ubuntu: /var/log/syslog
  • CentOS/RHEL: /var/log/cron

예:

grep CRON /var/log/syslog

⚠️ 주의사항

  1. 환경 변수 차이: crontab은 로그인 쉘이 아니므로 PATH가 다를 수 있음.
    • 명령어 앞에 전체 경로 사용 권장 (예: /usr/bin/python3 등)
    • 또는 스크립트에 #!/bin/bashexport PATH=... 명시
  2. 출력 리디렉션: 오류나 출력을 파일로 저장하려면 다음과 같이 설정:
* * * * * /path/to/script.sh >> /path/to/logfile.log 2>&1
  1. 권한 확인: 실행하려는 스크립트는 실행 권한이 있어야 함 (chmod +x script.sh)

🎯 실용 예시

  1. 매일 1시에 백업 실행
0 1 * * * /home/user/backup.sh
  1. 매 5분마다 웹서버 확인
*/5 * * * * curl -fs http://localhost:80 || systemctl restart nginx
  1. Python 스크립트 실행
0 0 * * * /usr/bin/python3 /home/user/script.py