아마존 리눅스 2023서는 기본적으로 crontab이 설치되어있지 않을 수 있습니다. 이럴 땐 설치를 해줘야 합니다. yum install crontab 으로는 설치되지 않습니다. crontab 툴이 담겨있는 패키지는 cronie입니다.
crontab 설치
먼저 리눅스에 cron이 설치되어 있는지 확인합니다.
sudo yum list installed | grep cron
cronie 또는 vixie-cron 같은 패키지가 설치되어 있다면 이미 crontab 명령어를 쓸 수 있습니다. 정확히 말하면 crontab은 작업을 설정하는 도구이고, cronie는 그 작업을 실행하는 데몬과 추가 유틸리티를 포함한 패키지입니다.
설치된 패키지가 없으면 아래의 명령어로 설치합니다.
sudo yum install cronie
설치 후 cron 서비스가 활성화되어 있는지 확인합니다.
sudo systemctl status crond
서비스가 활성화되어 있지 않으면 활성화합니다.
sudo systemctl start crond
sudo systemctl enable crond
crontab 명령어
1. 현재 사용자의 crontab 편집
crontab -e
2. 현재 사용자의 crontab 확인
crontab -l
3. 특정 사용자의 crontab 확인
crontab -l -u [username]
4. 현재 사용자의 crontab 삭제
crontab -r
==================================================
리눅스 crontab 사용 방법 (작업 스케줄러)
PC는 정해진 시간에 반복적으로 작업을 수행하는 경우가 많습니다. 윈도우에서는 작업 스케줄러가 그 기능을 제공한다면, 리눅스(Linux)에선 crontab이 해당 기능을 수행합니다.
Crontab
crontab은 그리스 신화에 등장하는 시간의 신 크로노스(Chronos)에서 영감을 받아 지어진 이름이라고 합니다. 스케줄러에 딱 어울리는 이름 같네요. crontab은 리눅스 시스템 팩에 기본적으로 제공되기 때문에 따로 설치하지 않고 사용할 수 있습니다.
crontab의 기능은 원하는 시간에 원하는 작업을 수행하는 것입니다. 예를 들어, 계속해서 쌓이는 로그 파일이나 캐시 파일을 정기적으로 삭제할 수 있습니다. 매일 뉴스레터를 메일로 보낼 수도 있고요. 그 외에도 활용처는 다양합니다.
실행 파일로는 .sh 확장자를 사용하는 쉘 스크립트가 사용됩니다. 어떤 작업을 수행할지 스크립트를 짜고, 정해진 시간에 sh 파일을 실행하는 식입니다.
Crontab 사용 방법
1. 크론탭 입력창을 엽니다.
crontab -e
2. 작성할 수 있는 페이지가 나오면 삽입키(i)를 누르고 명령어를 입력합니다. 크론탭의 작성 형식과 예시는 아래와 같습니다.
[작성 형식]
* * * * * 경로/파일명.sh
* * * * *
분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-7)
[예시]
매일 새벽 5시에 /home/scripts 경로에 있는 script.sh를 실행하는 설정입니다. 구체적인 숫자 대신 *을 사용하면 매일 작동한다고 이해하시면 됩니다.
0 5 * * * /home/scripts/script.sh
시간을 두 개 이상 설정할 수도 있습니다. 매일 오전 7시와 오후 5시에 실행하는 경우 아래처럼 작성합니다.
0 5,17 * * * /home/script/script.sh
같은 맥락으로 요일도 복수로 정할 수 있겠죠. 월요일과 수요일만 새벽 5시에 script.sh를 실행하는 경우 아래처럼 작성합니다.
0 5 * * mon,wed /home/script/script.sh
3.esc + wq + enter 명령어로 작성된 내용을 저장합니다.
4. 크론이 정상적으로 등록됐는지 확인합니다. 명령어는 아래와 같습니다. 작성한 내용이 표시되면 정상 등록된 겁니다.
crontab -l
마지막으로 크론을 삭제하는 명령어입니다.
crontab -r
'[OS] > Linux' 카테고리의 다른 글
[중요][AWS] EC2 SystemLog 확인하고 알람설정하기!! (57) | 2024.11.26 |
---|---|
[참고][AWS] Amazon Linux에서 /var/log가 꽉차는 이슈!! (56) | 2024.11.25 |
[중요][AWS] 리눅스 top 명령어를 통한 CPU 점유율 확인 및 측정하기!! (99) | 2024.09.14 |
[중요2][nc] 방화벽 허용 확인 명령어(Linux), 임시 PORT 구성방법!! (77) | 2024.06.11 |
[참고][RHEL7] HOSTNAME (호스트명) 변경하기!! (76) | 2024.06.06 |
[중요][리눅스] Failed to start LSB: Bring up/down networking 해결방법!! (76) | 2024.06.06 |
[Linux][레드햇] Sosreport를 이용해 시스템 정보를 전달하기!! (72) | 2024.06.04 |
[중요][Linux] 환경변수 PATH 추가하기 (23) | 2024.06.02 |
댓글