리눅스 | 크론 Linux Crontab 자동 스케줄러 사용법

|

요약

크론탭(Crontab) 은 명령어를 자체적으로 실행하도록 돕는 리눅스 내장 자동 스케줄러입니다.
에디터에 내용을 추가하면 주기적으로 터미널 명령어를 실행시켜줍니다.

실행하기

crontab -e

리눅스 터미널에 위의 코드를 입력하면 편집창이 뜨게 됩니다.

crontab -l

현재 크론탭에 어떤 내용이 있는지 볼 수 있습니다

사용법

* * * * * ls -al

crontab -e 를 입력하고 위의 코드를 넣습니다. 별(*)은 시간 주기를 담당하고, 뒤의 터미널 명령어를 그에 맞추어 실행하게 됩니다.

시간 주기 설정

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

순서는 분 - 시간 - 일 - 월 - 요일 순서로 진행됩니다.

요일
일(0), 월(1), 화(2), 수(3), 목(4), 금(5), 토(6), 일(7)

사용 예제

  • * * * * * /home/cron/todo.sh
    1분마다 test.sh 실행
  • 0, 30, 50 * * * * /home/cron/todo.sh
    매일 매 시간 0분, 30분, 50분에 test.sh 실행
  • 30 3 * * 4 /home/cron/todo.sh
    매주 30분 3시 목요일 test.sh 실행
  • 0-30 1 * * * /home/cron/todo.sh
    매일 1시 0분부터 30분까지 매분마다 test.sh 실행
  • */10 * * * * /home/cron/todo.sh
    10분마다 test.sh 실행

로그 생성하기

* * * * /home/cron/todo.sh > /home/cron/todo.sh.log 2>&1

위의 방법을 통해 로그를 생성할 수도 있습니다. 이를 로깅(logging) 이라고 합니다.
뒤의 2>&1 은 표준 에러 를 리디렉션하는 명령어입니다. 해당 부분을 제거하면 표준 출력 내용만을 로깅합니다.

wget으로 웹 접속하기

apt-get install wget

wget은 HTTP/FTP를 활용하여 서버 파일을 내려받는 오픈소스 툴입니다.
그 외에도 활용 범위는 다음과 같습니다.

  • 일정 간격 반복 다운로드
  • HTML 링크를 상대경로에서 절대 경로로 변환
  • 특정 확장자만 다운로드

(맥에서는 홈브류를 설치하여 brew install wget 명령어로 설치할 수 있습니다)

*/10 8-20 * * 1-5 wget https://www.light-coding.com/todo.php -O /dev/null >> /home/cron/crontab.log 2>&1

활용하게 되면 위와 같이 사용할 수 있는데요,
월요일부터 금요일까지 오전 8시부터 오후 8시까지 매 10분마다 실행합니다.
페이지를 다운로드는 하지는 않습니다

대체 서비스

image 40
리눅스 | 크론 Linux Crontab 자동 스케줄러 사용법 2

이름은 크론잡(Cronjob)입니다. 웹 크론 서비스입니다.

아쉽게도 웹 호스팅(카페24 등)은 크론 서비스를 사용할 수 없습니다. 이 때는 웹 크론을 사용하여 기능을 대체하는 방법이 있습니다. 이해는 가지 않지만 무료입니다. 만든 곳의 출처는 독일로 보입니다.

그러나 이러한 외부서비스가 보안에 불리하다 생각하는 경우에는 직접 작은 서버를 만들어 크론 기능을 독자적으로 만드는 것이 보안성에는 더욱 좋겠죠.

이러한 서비스는 크론잡(Cronjob) 외에도 여러 곳에서 서비스하고 있기 때문에 검색하여 다른 서비스를 활용하는 것도 방법입니다.

참조

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

클릭하여 복사