And Brain said,

at vs cron, Linux 스케줄링의 두 가지 방법론 본문

IT/Linux

at vs cron, Linux 스케줄링의 두 가지 방법론

The Man 2025. 2. 17. 16:23
반응형

 

Linux에서 작업을 예약 실행하는 방법에는 여러 가지가 있지만, 대표적으로 atcron이 있습니다. 이 두 가지 스케줄링 방식은 목적과 사용 방식이 다르므로, 각 방법의 차이점을 이해하고 적절한 상황에서 사용하는 것이 중요합니다.


1. at 명령어: 단발성 작업 예약

1.1 at 개요

at 명령어는 특정 시간에 한 번만 실행되는 작업을 예약하는 데 사용됩니다. 반복 실행이 필요하지 않은 경우 적합합니다.

1.2 at 사용 방법

at을 사용하려면 atd 서비스가 활성화되어 있어야 합니다. 먼저 서비스가 실행 중인지 확인합니다.

sudo systemctl status atd

만약 inactive 상태라면 활성화합니다.

sudo systemctl start atd

1.3 at 기본 사용법

at 14:30

 

위 명령을 실행하면 프롬프트가 열리며, 예약할 명령을 입력한 후 Ctrl+D를 눌러 종료하면 됩니다. 예제:

at 14:30
ls -l /home/user > /home/user/list.txt
Ctrl+D

 

현재 시각 기준 1시간 후 실행

echo "shutdown -h now" | at now + 1 hour

 

내일 오전 7시에 실행

at 07:00 tomorrow

 

이번 주 금요일 오후 3시 실행

at 3pm Fri

 

5분 후 실행

at now + 5 minutes

1.4 atq & atrm: 예약된 작업 확인 및 삭제

  • 예약된 작업 확인: atq

  • 특정 작업 삭제: atrm [작업번호]

atq  # 예약된 작업 목록 확인
atrm 2  # 작업번호 2번 삭제

2. cron 명령어: 반복 작업 예약

2.1 cron 개요

cron은 반복적으로 실행해야 하는 작업을 예약하는 데 사용됩니다. 특정 시간, 일, 주, 월 단위로 자동 실행됩니다.

2.2 cron 설정 파일 (crontab)

각 사용자마다 별도의 crontab을 가질 수 있으며, 이를 수정하려면 다음 명령을 사용합니다.

crontab -e

2.3 cron 표현식

crontab에서 작업을 예약할 때는 다음과 같은 형식을 사용합니다.

* * * * * 실행할 명령
분 시 일 월 요일 실행할 명령
0 6 * * * /home/user/backup.sh  # 매일 오전 6시에 스크립트 실행
*/10 * * * * echo "Hello" >> /tmp/hello.log  # 10분마다 실행

 

 

매일 자정에 로그 백업 실행

0 0 * * * /home/user/log_backup.sh

 

 

매주 일요일 오전 4시에 서버 재부팅

0 4 * * 0 /sbin/reboot

 

매월 1일과 15일 오전 8시에 특정 스크립트 실행

0 8 1,15 * * /home/user/script.sh

 

평일(월~금) 매일 오후 6시에 자동 로그 정리

0 18 * * 1-5 /usr/bin/cleanup_logs.sh

 

매 10분마다 특정 작업 실행

*/10 * * * * /home/user/task.sh

 

매시간 정각마다 시스템 상태 확인

0 * * * * /usr/bin/check_system.sh

 

매주 월요일과 수요일 오후 3시 30분 실행

30 15 * * 1,3 /home/user/script.sh

 

 

매년 12월 25일 오전 9시에 크리스마스 메시지 출력

0 9 25 12 * echo "Merry Christmas!"

 

2.4 crontab 관리

  • 현재 사용자 crontab 확인: crontab -l

  • 특정 사용자 crontab 확인: crontab -u [사용자] -l

  • 예약된 작업 삭제: crontab -r


3. at vs cron 비교

기능 at cron
실행 방식 단발성 실행 주기적 실행
설정 파일 없음 (작업 개별 저장) /etc/crontab, crontab -e
실행 시점 지정된 한 번의 시간 반복적인 특정 시간
삭제 가능 여부 atrm으로 개별 삭제 가능 crontab -e에서 수정
서비스 필요 여부 atd 서비스 필요 cron 데몬 필요

4. 언제 at을 사용하고 언제 cron을 사용할까?

  • at 사용 추천: 한 번만 실행할 스크립트나 특정 시간에만 동작해야 하는 작업

    • 예: 5분 후 시스템 재부팅 echo "reboot" | at now + 5 minutes

  • cron 사용 추천: 정기적으로 반복 실행해야 하는 작업

    • 예: 매일 자정에 로그 백업 0 0 * * * /home/user/log_backup.sh


5. 마무리

Linux에서 작업을 예약할 때 한 번만 실행할 작업은 at, 정기적으로 반복 실행할 작업은 cron을 사용하면 됩니다. 각각의 장점을 이해하고 적절한 상황에서 활용해 보세요 :)

반응형
Comments