je개발 복습/Linux

[ Linux ] 크론탭(Crontab), Shell 로 정기적인 명령어

Je-chan 2023. 1. 15. 21:53

1. 필요한 이유

  회사에서 서버 컴퓨터에 Jenkins 에 아이템을 하나 만들고, 빌드 될 때마다 Shell 명령어를 동작시키도록 설정했다. 요구 사항은 우리가 수동적으로 새로 빌드를 하는 것도 아니고, 파이프라인으로 사용하는 것도 아니고, 정기적인 날에 이 아이템이 빌드되도록 하는 것이었다. Jenkins 에서는 해당 아이템을 정기적으로 실행시킬 수 있는 방법이 존재했고, 그 중 하나가 Shell 을 사용하는 것이었다

 

  이 경우, "어느 때" 정기적으로 동작할지를 코드로 작성해야 했고, Linux 에서 해당 내용은 크론탭 이라는 것을 사용하여 처리할 수 있었다. 해당 내용은 처음 배우는 것이었고, 종종 사용할 명령어인 거 같아 따로 정리할 필요성을 느껴 Notion 뿐만 아니라 Tistory 에도 작성해 

공유하고자 한다.

 

2. 크론탭(Crontab)이란?

  리눅스에서 특정 시간에 특정 작업하는 것을 크론(Cron) 이라고 한다. 이 크론이 언제 무엇을 하는지 특정 파일에 저장하는 것을 크론탭(Crontab) 이라고 한다

  

  사용하기에 적당한 경우는 다음과 같다

 

  1. 특정 시간에 특정 작업을 할 때

  2. 반복된 시간에 반복된 작업을 할 때

  3. 예약 작업을 할 때

 

3. 크론탭 기본 사용법

## 크론탭 편집
crontab -e

## 크론탭 작업 내용 확인
crontab -l

## 크론탭 삭제
#### 삭제시 전체 작업이 삭제됩니다
crontab -r

 

크론탭의 주기는 다음과 같다

 

* * * * * {실행_명령}

# 분    시     일     월     요일            {실행_명령}
# 0-59  0-23  0-31   0-12  0-6(0,7은 일)


## 매 분 실행
* * * * * {실행_명령} OR /1 * * * * {실행_명령}

## 매 시 정각 실행
0 * * * * {실행_명령}

## 매일 오후 13시 정각에 실행
0 13 * * * {실행_명령}

## 매주 월요일 자정에 실행
0 0 * * 1 {실행_명령}

## 매시 25분, 55분에 실행
25,55 * * * * {실행_명령}

## 15분마다 실행
*/15 * * * * {실행_명령}

## 매 6시간마다 실행 (00;30, 06:30, 12:30, 18:30)
30 */6 * * * {실행_명령}

## 1시부터 매 6시간마다 실행 (01:30, 07:30, 13:30, 19:30)
30 1-23/6 * * * {실행_명령}

   크론탭 주기를 사용해서 원하는 명령어를 원하는 주기에 실행할 수 있도록 설정해두면 된다.

 

 

 

https://www.fun-coding.org/linux_basic6.html#gsc.tab=0

 

잔재미코딩 온라인 강의 사이트입니다

잔재미코딩에서 만든 온라인 강의 리스트를 공유하는 웹페이지입니다.

www.fun-coding.org

 

https://jdm.kr/blog/2

 

리눅스 크론탭(Linux Crontab) 사용법 :: JDM's Blog

* 이 포스팅은 네이버 블로그에서 작성(2013.04.01)한 내용을 옮겨온 것입니다. 오늘은 리눅스 크론탭에 대해 알아볼까 합니다. 음, 윈도우에서는 스케줄러와 비슷하다고 보면 되겠네요. "특정 시간

jdm.kr

 

'je개발 복습 > Linux' 카테고리의 다른 글

[ Linux ] Shell 날짜 조회하기  (0) 2023.01.15