메뉴 건너뛰기

2024.07.10 20:47

Linux Crontab 사용법

(*.168.0.1) 조회 수 304 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기
Extra Form
출처 https://jdm.kr/blog/2

리눅스 크론탭, 윈도우 스케줄러와 비슷하다고 보면 되겠네요.

"특정 시간에 특정 작업을 해야한다."

라고 한다면 크론탭을 사용해 편하게 리눅스를 사용하실 수 있습니다.

1. 크론탭 기본 (crontab basic)

일단 기본이 되는 크론탭 사용법을 한 번 볼까요. 리눅스 쉘에서 다음처럼 입력합니다.

$ crontab -e

그러면 뭔가 편집할 수 있는 곳이 로딩됩니다. 이곳이 바로 크론탭을 설정할 수 있는 장소이죠. 여기에 각종 크론탭 명령어를 입력후 콜론(:) 입력 후에 wq 를 입력해 크론탭을 갱신시킵시다.

반대로 현재 크론탭에 어떤 내용이 들어있는지 보려면 다음처럼 입력하세요.

$ crontab -l

그러면 cat 명령어로 파일을 읽어들인 것처럼 표준 출력으로 크론탭 내용이 나오게 됩니다. 그런데 만약(거의 없겠지만) 크론탭을 지우고 싶다면?

리눅스 쉘에 다음처럼 입력합니다.

$ crontab -r

이렇게까지 하면 크론탭의 기본 설정 및 확인, 삭제에 대해 배운 것입니다. 그러면 실제로 크론탭에 크론 하나를 예제로 등록 해봅시다.

다음처럼 crontab -e 입력 후 다음과 같은 내용을 입력합시다. 저장은 vi 처럼 콜론 (:) 입력 후 wq 로 갱신시켜주면 됩니다.

* * * * * ls -al

별이 다섯개나 있습니다. 그리고 뒤에는 명령어가 적혀 있네요. 이게 기본 사용법입니다. 물론 쉘스크립트 뿐만 아니라 리눅스 커맨드도 사용할 수 있습니다.여기서는 쉘스크립트를 사용하는 방법으로 설명하고 있습니다.

별이 다섯개 있는 경우엔 "매분마다 실행" 하는겁니다. 별이 지칭하는 것이 무엇인지 자세히 살펴봅시다. * 그 전에 위에 입력했던 크론잡은 다시 지우시기 바랍니다.

2. 주기 결정

*      *      *      *      *
분(0-59)  시간(0-23)  일(1-31)  월(1-12)   요일(0-7)

각 별 위치에 따라 주기를 다르게 설정 할 수 있습니다. 순서대로 분-시간-일-월-요일 순입니다. 그리고 괄호 안의 숫자 범위 내로 별 대신 입력 할 수 있습니다.

요일에서 0과 7은 일요일입니다. 1부터 월요일이고 6이 토요일입니다.

3. 주기별 예제

3.1. 매분 실행

# 매분 test.sh 실행
* * * * * /home/script/test.sh

3.2. 특정 시간 실행

# 매주 금요일 오전 5시 45분에 test.sh 를 실행
45 5 * * 5 /home/script/test.sh

3.3. 반복 실행

# 매일 매시간 0분, 20분, 40분에 test.sh 를 실행
0,20,40 * * * * /home/script/test.sh

3.4. 범위 실행

# 매일 1시 0분부터 30분까지 매분 tesh.sh 를 실행
0-30 1 * * * /home/script/test.sh

3.5. 간격 실행

# 매 10분마다 test.sh 를 실행
*/10 * * * * /home/script/test.sh

3.6. 조금 복잡하게 실행

# 5일에서 6일까지 2시,3시,4시에 매 10분마다 test.sh 를 실행
*/10 2,3,4 5-6 * * /home/script/test.sh

 주기 입력 방법엔 * , - / 을 이용하는 방법이 있습니다. 위에서 보셨듯이 각각의 특수기호가 하는 기능이 다르고 조합을 어떻게 하느냐에 따라 입맛대로 주기를 설정 할 수 있습니다.

4. 크론 사용 팁

4.1. 한 줄에 하나의 명령만 씁시다.

# 잘못된 예
* * * 5 5
/home/script/test.sh
# 잘된 예
* * * 5 5 /home/script/test.sh

4.2. 주석을 달아봅시다.

# 주석 #
#--------------------#
# 이것은 주석입니다. #
#--------------------#

# 을 입력해서 그 뒤로 나오는 모든 문자를 주석 처리할 수 있습니다.

5. 크론 로깅 (cron logging)

크론탭을 사용해서 정기적으로 작업을 처리하는 것은 좋은데, 해당 처리 내역에 대해 로그를 남기고 싶을 때가 있을겁니다. 그럴때 다음처럼 한번 써봅시다.

* * * * * /home/script/test.sh > /home/script/test.sh.log 2>&1

위처럼 작성하면 매분마다 test.sh.log 파일이 갱신 되어 작업 내용이 어떻게 처리 되었는지 알 수 있습니다. 만약 2>&1 을 제거하면 쉘스크립트에서 표준 출력 내용만 나옵니다. 2>&1은 이곳에서 확인합시다.

그런데, 이게 너무 자주 실행 되고 또한 지속적으로 로깅이 되야 해서 로그를 계속 남겨둬야 한다면 다음처럼 입력합니다.

* * * * * /home/script/test.sh >> /home/script/test.sh.log 2>&1

그러면 계속 로그가 누적이 되는 것을 확인 할 수 있을겁니다. 대신 로그가 과도하게 쌓이면 리눅스 퍼포먼스에 영향을 주므로 가끔씩 비워주거나 파일을 새로 만들어주는 센스가 필요합니다.

반대로 로그는 필요 없는 크론을 위해선 다음처럼 입력합니다.

* * * * * /home/script/test.sh > /dev/null 2>&1

6. 크론탭 백업 (crontab backup)

자, 혹시라도 crontab -r 를 쓰거나 실수로 crontab 디렉토리를 날려버려서 기존 크론 내역들이 날아갔을때, 정말 황망할거 같은데 말이죠. 그러니 주기적으로 크론탭을 백업해 둡시다. 백업은 다음처럼 하는 방법이 있습니다.

crontab -l > /home/bak/crontab_bak.txt

크론탭 내용을 txt 파일로 만들어 저장해두는겁니다. 자, 이것도 자동화가 될 수 있을까요?

50 23 * * * crontab -l > /home/bak/crontab_bak.txt

처럼 하면 되겠죠? 매일 오후 11시 50분에 크론탭을 백업해두는 크론 명령어입니다. :)


List of Articles
번호 제목 날짜 조회 수
42 Rocky Linux Release Versions, Support, Timelines Guide Rocky Linux Release Versions, Support, Timelines GuideCurrent Supported Releases¶Below is a table of Rocky Linux versions, with accompanying general re... 1 file 2026.01.18 4
41 Rocky Linux, EOL Rocky Linux Release and Version GuideThis page goes over the Rocky Linux Release Versions, their support, timelines, and how it affects our users. Curr... 1 2024.09.10 1387
40 윈도우10 작업표시줄의 시계부분에 날짜가 없을때 날짜 표시와 ... 우선 작업표시줄 빈공간 아무곳에서 마우스 오른쪽을 클릭하면, 창이 하나 뜨고 그 창 맨 아래 작업 표시줄 설정(T)이 있는데, 그것을 클릭해주세요. ▼ ​ ​ ​ ​ ... 2024.08.30 457
39 브로케이드 샌스위치 상태점검 명령어 브로케이드 샌스위치 상태점검 명령어입니다. SW1:admin> help |grep show SW1:admin> help tsclockserver SW1:admin> history SW1:admin> date Sat Feb 26 09:17... file 2024.08.19 320
38 Rocky Linux is an open-source enterprise operating system Enterprise Linux, the community way.Rocky Linux is an open-source enterprise operating system designed to be 100% bug-for-bug compatible with Red Hat E... 2024.07.21 404
37 utmp,wtmp.btmp,lastlog 로그파일 로그파일 4대장 utmp wtmp btmp last log 정의 현재 로그인한 사용자 상태 정보를 담고 있는 로그 파일 성공한 로그인/로그아웃 정보 및 시스템의 boot/shutdown... 2024.07.11 418
36 linux nmon 설치 [root@TEST01 /]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)-> NMON을 설치하기전에 해당 서버의 버전을 확인합니다. 버전에 따라서 다운로... file 2024.07.10 366
» Linux Crontab 사용법 리눅스 크론탭, 윈도우 스케줄러와 비슷하다고 보면 되겠네요. "특정 시간에 특정 작업을 해야한다." 라고 한다면 크론탭을 사용해 편하게 리눅스를 사용하실 수 ... 2024.07.10 304
34 Nmon 및 nmon analyzer 사용법 1) repository 추가 및 nmon 설치 [root@localhost ~]# yum install epel-release [root@localhost ~]# yum install nmon 2-1) nmon 실행화면 및 옵션 [root@loca... 2024.06.30 781
33 ntp와 chrony의 차이점, ntp 상태확인 : ntpdate, ntpstat, ntp... https://it-svr.com/ntpwa-chronyyi-caijeom/ ntp와 chrony의 차이점 NTP와 Chrony는 모두 시간 동기화를 위한 프로토콜 및 소프트웨어입니다. 그러나 두 가지의 ... 2024.06.29 410
32 스카다(SCADA) 시스템이란 1. SCADA 시스템의 정의 - SCADA 시스템은 Supervisory Control And Data Acquisition의 약자로 일반적으로 원거리에 있는 설비들을 집중 감시하거나 제어하기 위... file 2024.06.29 435
31 시스템 동작상태(육안확인), 예방점검 점검, 리눅스 명령어 hea... 구 분 점 검 사 항 결 과 예방점검 시행항목 ○ 시스템 동작상태(육안확인) - 시스템 FAN 동작상태 및 LED 상태확인 - 시스템 POWER SUPPLY(입, 출력 전원) 상태 ... 2024.06.29 550
30 SecureCRT 환경설정 SecureCRT 다운로드 1. 더블탭 기능 활성화더블탭이란? 열려있는 세션 탭 더블클릭 시 동일한 세션 탭을 만드는 기능 = 탭 복사 글로벌 옵션 > Tab/Tiling > Opti... file 2024.06.29 2366
29 vi editor 단축키 모든 것 vi/vim 단축키표 vim 이동 단축키표 vim 명령어 단축키표 file 2024.06.25 353
28 리눅스 좀비 프로세스 죽이기 (defunct 프로세스 검색방법) #defunct #좀비프로세스죽이기 #리눅스defuct죽이기 #Process킬 #defunct죽이기 #defunct갯수파악하기 ​ defunct 프로세스가 많으면 정작 필요한 프로세스들이 실... file 2024.06.19 826
27 좀비(Zombie) 프로세스 찾기, 죽이기 좀비 프로세스 찾기좀비 프로세스 죽이기목차 1 상황 2 좀비 찾기 3 좀비 모두 죽이기 4 좀비 수 확인 5 같이 보기 1 상황top으로 프로세스 현황을 보면 가끔 좀... 2024.06.19 2382
26 RedHat OpenShift Virtualization Red Hat OpenShift Virtualization Red Hat® OpenShift® Virtualization은 Red Hat OpenShift에 포함된 기능으로, 조직이 신규 및 기존 VM(가상 머신, Virtual Ma... 2024.06.14 308
25 리눅스(CentOS7) 자료 tar로 전체(증분X) 백업하기 리눅스(CentOS7) 자료 tar로 전체(증분X) 백업하기 서버를 사용하다 보면 원치 않게 데이터를 지우는 경우가 있을듯 하여.. 아예 시스템 전체를 백업하는 방식을 ... 2024.03.17 371
24 “오픈소스 보안도 구독 시대” 캐노니컬, 리눅스 보안 관리 전용... “오픈소스 보안도 구독 시대” 캐노니컬, 리눅스 보안 관리 전용 구독 서비스 출시 캐노니컬이 리눅스 보안 기술만 전문적으로 관리하는 구독 서비스 ‘우분투 프로... file 2024.02.19 313
23 Ubuntu 22.04 LTS (Jammy Jellyfish) 다운로드 링크 Ubuntu 22.04 LTS (Jammy Jellyfish) 다운로드 링크는 아래와 같습니다. https://releases.ubuntu.com/22.04/ Ubuntu is distributed on three types of images d... 2024.02.19 504
목록
Board Pagination Prev 1 2 3 Next
/ 3