서론
환경 : Ubuntu 20.0.4, Macbook M1
시스템 관리에 있어 자동화는 핵심 요소 중 하나
자동화를 통해서 시간이 많이 걸리는 반복 작업을 줄임과 동시에 실수를 방지해서 시스템 안전성을 유지할 수 있다.
이러한 맥락에서 crontab 실습을 기록해보고자 한다.
crontab 이란?
리눅스 운영체제에서 특정 시간에 명령어나 스크립트를 자동으로 실행시켜 주는 유틸리지, 주기적인 작업 자동화에 사용한다.
crontab 설치 & 확인
crontab 설치 방법 및 active 상태 확인하는 방법
# cron 설치하기
sudo apt install cron
# crontab 상태 확인해보기
sudo service cron status
만약 active 상태가 아닐 경우 다음 명령어를 통해서 active 상태로 변경해 주자
# crontab -> active
sudo service cron start
그리고 다음 명령어를 통해서도 crontab이 시작하고 있는지 확인할 수 있다.
# 프로세스 ID가 출력시 -> active 상태, 출력 X이면 실행 X
pgrep cron
crontab 명령어 정리
crontab 명령어를 간단히 알아보자
# crontab 편집, 작업할당
crontab -e
# crontab 작업내용 확인
crontab -l
# crontab 시작
sudo service cron start
# crontab 재시작 (설정 변경 후 꼭! 하기)
sudo service cron restart
# crontab 중지
sudo service cron stop
설정 변경 후에는 꼭 crontab 재시작하는 것을 잊지 말자! ✅
crontab 주기 결정
crontab은 언제 실행할지에 대한 주기를 결정해야 한다.
* * * * *
분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-7)
주기에 대한 글은 많이 있으니 원하시는 건 알아서 찾아보길!
crontab 실습해 보기
실습내용 : crontab을 활용하여 쉘 스크립트를 배치작업으로 설정해 보기
간단한 테스트를 위해서 "쉘 스크립트에 1분마다 현재 시각을 test.txt 파일에 기록하기"를 진행해보겠다.
1. 쉘 스크립트 작성하기
# vi editor로 .sh 작성하기
vi crontest.sh
# 다음과 같이 파일 내용 기재
#!/bin/bash
# 현재 시간과 날짜 test.txt 파일에 기록하기
echo "현재 시간 : $(date)" >> /home/minho/crontest/test.txt
# 구분선 추가하기
echo "--------------------" >> /home/minho/crontest/test.txt
한 줄에는 하나의 명령만 쓰자! ✅
2. 쉘 스크립트 실행 권한 부여하기
보다시피 만든 쉘 스크립트에는 실행권한이 없기 때문에 crontab이 실행할 수 있게 추가해줘야 한다.
# .sh 파일 실행권한 부여하기
chmod +x ~/crontest/crontest.sh
실행권한이 추가된 것을 확인했다!
3. crontab 편집하기
crontab -e 명령어를 실행해서 다음 내용을 추가해 주자
* * * * * /home/minho/crontest/crontest.sh
그리고 cron 재시작 명령어를 입력해 주자
# crontab 재시작
sudo service cron restart
4. 확인해 보기
다음과 같이 실제로 test.txt 파일이 생김과 동시에 현재 날짜와 시간이 기록되고 있다.
마무리
지금은 비록 간단한 crontab이었지만 얼른 취업해서,, 실제로 현업에서는 어떻게 사용하고 있는지 확인해보고 싶고,
적용해 볼 수 있는 기회가 얼른 생겼으면 좋겠다!