web developer

[Linux] cron 작업 스케줄러 사용법 본문

Linux

[Linux] cron 작업 스케줄러 사용법

trueman 2024. 7. 18. 10:45
728x90
728x90

(1) cron, crontab 차이 


  • cron: 이 용어는 UNIX 계열 운영체제에서 시간 기반 작업 스케줄링을 담당하는 데몬(백그라운드 서비스)을 의미합니다. cron 데몬은 백그라운드에서 실행되며, 설정된 시간에 특정 작업을 자동으로 수행합니다.
  • crontab: 이 용어는 cron 테이블(cron table)의 줄임말로, 사용자가 시간 기반 작업을 스케줄링하기 위해 사용하는 파일 또는 명령어를 의미합니다. crontab 명령어를 사용하여 작업 스케줄을 추가, 삭제, 수정할 수 있습니다.

원격 서버에서 크론 작업이 추가되어 있는지 확인하는 방법은 간단합니다. crontab -l 명령어를 사용하여 현재 사용자에 대한 크론 작업 목록을 확인할 수 있습니다. 이 명령어는 해당 사용자의 모든 크론 작업을 출력합니다.


(2) 크론 작업 목록 확인


  1. Putty를 통해 원격 서버에 접속:
    • Putty를 열고 원격 서버에 접속합니다. 접속하는 방법은 원격 서버의 IP 주소와 사용자 이름을 입력하고 비밀번호를 입력하는 것입니다.
  2. 크론 작업 목록 확인:
    • 접속 후, 터미널에 다음 명령어를 입력하여 크론 작업 목록을 확인합니다:
 crontab -l

$ crontab -l
# Edit this file to introduce tasks to be run by cron.
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).

# m h  dom mon dow   command
0 2 * * * /path/to/deploy_war.sh

만약 no crontab for truefeel (설정한 적이 없어 아직 비어있다) 이 뜨면, 다음과 같이 크론을 설정하면 됩니다.


(3) 크론 사용법


1. crontab이란?

crontab은 원하는 시간에 특정 작업을 실행하게 하는 텍스트 파일입니다. 이 crontab에 작성된 파일을 찾아서 cron이라는 시스템의 데몬이 작성된 일정대로 작업을 실행하게 됩니다. 주기적이고 반복적인 작업에 많이 사용합니다.

 

1-1. crond가 실행되고 있는지 확인

 ps -ef | grep crond


1-2. crontab의 작업 목록 확인 : 등록되어 있는 crontab 목록이 출력된다.

 crontab -l

 

1-3. crontab 편집 : 텍스트 편집기가 실행되고 에디터를 통해 설정을 변경 할 수 있다.
편집을 위해서는 root 권한이 필요합니다. 만약 root권한이 없다면 sudo를 붙여주면 된다. (sudo crontab -e)
수정 후 wq(저장하고 나가기)를 입력하고 빠져나오면 바로 적용이 됩니다. (q!는 저장하지 않고 나오기)

 crontab -e

※ crontab 파일이 없다면 새로 만듭니다.

1-4. crontab 삭제 : 예약된 작업이 모두 삭제 됩니다.

 crontab -r

2. 작업 스케줄 설정하기
작업 스케줄의 설정 형식은 minute(분) hour(시간) day(일) month(월) weekday(요일)로 설정한다.

 * * * * * 명령어


- minute(분) : 0 ~ 59
- hour(시간) : 0 ~ 23
- day(일) : 1 ~ 31
- month(월) : 1 ~ 12
- weekday(요일) : 0 ~ 7 (0과 7은 일요일, 1(월요일) ~ 6(토요일)


3. 작업 스케줄 예제
crontab을 작성할때는 줄바꿈이 들어가면 안됩니다.


1분 마다 실행

 * * * * * sh /root/test/test.sh

 

30분 마다 실행

 */30 * * * * sh /root/test/test.sh

 

매일 4시 30분 마다 실행

 30 4 * * * sh /root/test/test.sh

 

매월 1일 2시 0분에 실행

 0 2 1 * * sh /root/test/test.sh

 

매년 1월 1일 2시 0분에 실행

 0 2 1 1 * sh /root/test/test.sh

 

매주 월요일 0시 0분에 실행

 0 0 * * 1 sh /root/test/test.sh

출처 : https://hyo-s.tistory.com/81 
출처 : https://miniweb4u.tistory.com/147

728x90
728x90

'Linux' 카테고리의 다른 글

[Linux] JEUS 자바 버전 확인  (0) 2024.10.24