0Pricing
DevOps Bootcamp · 강의

Cron으로 작업 예약하기

'cron' 유틸리티를 활용해 지정한 간격이나 시간에 스크립트와 명령어가 자동으로 실행되도록 예약하는 방법을 익힙니다.

Cron으로 작업 예약하기은(는) CoddyKit의 무료 DevOps Bootcamp 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 DevOps Bootcamp 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.

Cron으로 작업 자동화하기

자동화의 세계에 오신 것을 환영합니다! 이 레슨에서는 Linux에서 특정 시간에 명령이나 스크립트가 자동으로 실행되도록 예약할 수 있는 강력한 유틸리티인 cron에 대해 배웁니다.

손가락 하나 까딱하지 않고 매일 백업이나 매시간 시스템 점검을 설정한다고 생각해 보십시오. 이것이 바로 cron의 역할입니다!

개인 Crontab 파일

Linux 시스템의 각 사용자는 자신만의 crontab(cron 표) 파일을 가지고 있습니다. 예약한 모든 작업을 이곳에 저장합니다.

개인 crontab을 편집하려면 crontab -e 명령을 사용합니다. 그러면 기본 텍스트 편집기에서 파일이 열리고, 새 작업을 추가할 수 있습니다.

Crontab 항목: 시간 필드

Crontab 항목은 여섯 부분으로 구성됩니다. 앞의 다섯 부분은 명령이 언제 실행될지를 정의하며, 공백으로 구분됩니다.

  • 분: 0-59
  • 시: 0-23 (0은 자정)
  • 일: 1-31
  • 월: 1-12 (또는 Jan-Dec)
  • 요일: 0-7 (0 또는 7은 일요일, 1은 월요일)

Crontab 항목: 명령

Crontab 항목의 여섯 번째이자 마지막 부분은 실행하려는 명령 또는 스크립트입니다.

여기서는 명령과 스크립트에 절대 경로를 사용하는 것이 매우 중요합니다(예: python 대신 /usr/bin/python). Cron 작업은 최소한의 환경에서 실행되므로 평소 사용하는 PATH를 사용할 수 없을 수도 있습니다.

Crontab 특수 문자

예약을 유연하게 구성하기 위해 cron은 특수 문자를 사용합니다.

  • *(별표): 가능한 모든 값과 일치합니다(예: 매분, 매시간).
  • ,(쉼표): 값 목록을 구분합니다(예: 분 1과 15를 나타내는 1,15).
  • -(하이픈): 값의 범위를 정의합니다(예: 9시부터 17시까지를 나타내는 9-17).
  • /(슬래시): 간격 값을 지정합니다(예: 10분마다를 나타내는 */10).

미리 정의된 예약 단축 표현

일반적인 예약 요구 사항을 위해 cron은 앞의 다섯 시간 필드를 대신하는 편리한 단축 표현을 제공합니다.

  • @reboot: 시스템이 재부팅된 후 한 번 실행됩니다.
  • @yearly(또는 @annually): 1년에 한 번 실행됩니다(0 0 1 1 *).
  • @monthly: 한 달에 한 번 실행됩니다(0 0 1 * *).
  • @weekly: 일주일에 한 번 실행됩니다(0 0 * * 0).
  • @daily(또는 @midnight): 하루에 한 번 실행됩니다(0 0 * * *).
  • @hourly: 한 시간에 한 번 실행됩니다(0 * * * *).

실습: 간단한 스크립트 예약하기

인사말을 기록하는 간단한 스크립트를 만든 다음, 매일 오전 10시에 실행되도록 예약해 보겠습니다.

  1. 스크립트 만들기(예: ~/greet.sh):
  2. 실행 가능하게 만들기: chmod +x ~/greet.sh
  3. Crontab에 추가하기(crontab -e):
    0 10 * * * /home/user/greet.sh
    이 항목은 매월 매일, 매월, 매주의 모든 요일 중 10시(오전 10시) 0분에 /home/user/greet.sh를 실행한다는 뜻입니다.
#!/bin/bash
# This script logs a greeting to a temporary file.
echo "Hello from Cron! The time is $(date)" >> /tmp/cron_greeting.log

Cron 작업 관리하기

Cron 작업을 추가한 후에는 이를 관리해야 합니다.

  • 현재 crontab 항목을 목록으로 표시하려면: crontab -l
  • crontab 항목을 모두 삭제하려면(실행 취소할 수 없으므로 매우 주의하십시오!): crontab -r

변경한 후에는 항상 crontab -l로 crontab을 검토하여 항목이 올바른지 확인하십시오.

Cron의 환경 변수

Cron 작업은 최소한의 환경에서 실행된다는 점을 기억하십시오. 따라서 대화형 셸과 동일한 환경 변수(예: PATH)를 사용하지 못하는 경우가 많습니다.

스크립트가 특정 명령에 의존한다면 명령의 절대 경로를 사용하거나, 필요한 환경 변수를 다음과 같이 crontab 파일의 맨 위에 직접 정의하십시오: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin.

Crontab 구문 도전

/home/user/daily_report.sh라는 스크립트를 매주 평일(월요일부터 금요일까지) 오전 9시 15분에 실행되도록 예약해야 합니다. 올바른 crontab 항목은 무엇입니까?

복습: Cron 예약 마스터하기

훌륭합니다! 이제 작업 예약을 위한 cron의 기본을 완전히 익혔습니다.

  • crontab 파일과 crontab -e로 파일을 편집하는 방법을 배웠습니다.
  • 시간 필드와 명령을 포함한 cron 항목의 여섯 필드를 이해했습니다.
  • 유연한 예약을 위한 특수 문자와 미리 정의된 단축 표현을 살펴봤습니다.
  • crontab -l과 crontab -r로 작업을 관리하는 방법을 배웠습니다.
  • Cron 환경에서 절대 경로와 환경 변수가 중요한 이유도 배웠습니다.

이제 작업을 자동화해 보십시오!

자주 묻는 질문

“Cron으로 작업 예약하기” 강의는 무료인가요?

네 — “Cron으로 작업 예약하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 DevOps Bootcamp 강의 전체를 잠금 해제할 수 있습니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.

“Cron으로 작업 예약하기”에서 뭘 배우나요?

'cron' 유틸리티를 활용해 지정한 간격이나 시간에 스크립트와 명령어가 자동으로 실행되도록 예약하는 방법을 익힙니다. 브라우저에서 직접 실행하는 실습 코드로 DevOps Bootcamp을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

DevOps Bootcamp을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 DevOps Bootcamp은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“Cron으로 작업 예약하기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 DevOps Bootcamp 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 DevOps Bootcamp 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Cron으로 작업 예약하기
  2. 시스템 관리 자동화
  3. 고급 스크립팅 프로젝트
  4. 자동 로그 순환 및 정리
← DevOps Bootcamp(으)로 돌아가기