0Pricing
Linux Server Deployment & SSH Mastery · 강의

Cron으로 예약 작업 수행

cron 작업을 생성하고 관리하여 반복적인 서버 작업을 자동화하고 지정된 간격으로 스크립트와 명령이 실행되도록 합니다.

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

서버 작업을 자동화해야 하는 이유

서버에서 수동으로 수행하는 작업은 반복적이며 사람의 실수가 발생하기 쉽습니다. 자동화를 사용하면 시간을 절약하고 작업이 일관되게 수행되도록 할 수 있습니다.

매일 밤 데이터베이스를 백업하거나 매주 오래된 로그 파일을 정리해야 하는 상황을 생각해 보십시오. 이런 작업을 수동으로 하면 번거롭고 잊어버리기도 쉽습니다.

이럴 때 일정 관리 도구가 유용합니다! 일정 관리 도구를 사용하면 서버가 지정된 시간이나 간격에 작업을 자동으로 수행하므로, 더 중요한 일에 집중할 수 있습니다.

크론 알아보기: 서버의 일정 관리 도구

크론은 Linux에서 작업 일정을 설정하는 데 사용하는 기본 유틸리티입니다. 서버의 개인 비서처럼 동작하여 명령어 또는 스크립트가 미리 정해진 시간에 백그라운드에서 자동으로 실행되도록 합니다.

이렇게 예약된 작업을 크론 작업이라고 합니다. 시스템의 각 사용자는 고유한 크론 작업 목록을 가질 수 있으며, 이 목록은 크론탭이라는 특수한 파일에 저장됩니다.

크론탭 편집하기

개인 크론 작업을 관리하려면 crontab 명령어를 사용합니다.

  • 크론탭 파일을 편집하려면 crontab -e를 입력하십시오.
  • 현재 크론 작업을 나열하려면 crontab -l을 입력하십시오.
  • 모든 크론 작업을 삭제하려면 crontab -r을 입력하십시오(주의해서 사용하십시오!).

crontab -e를 실행하면 기본 텍스트 편집기에서 크론탭이 열립니다. 기본 편집기는 보통 nano 또는 vi입니다.

크론탭 문법: 시간 필드

크론탭의 각 줄은 하나의 크론 작업을 나타내며, 특정한 형식을 따릅니다. 실행할 명령어 뒤가 아니라, 실행할 명령어 앞에 5개의 시간 필드가 있습니다.

형식은 다음과 같습니다.

minute hour day_of_month month day_of_week command
  • 분: 0~59
  • 시간: 0~23(0은 자정)
  • 일: 1~31
  • 월: 1~12(또는 Jan~Dec)
  • 요일: 0~7(0 또는 7은 일요일, 1은 월요일)

크론탭 문법: 별표와 범위

항상 정확한 숫자를 지정할 필요는 없습니다. 크론은 유연한 설정을 위해 특수 문자를 제공합니다.

  • *(별표): 해당 필드에서 가능한 모든 값을 의미합니다. 예를 들어 분 필드의 *는 ‘매분’을 의미합니다.
  • -(하이픈): 범위를 지정합니다. 예를 들어 시간 필드의 9-17은 ‘9시부터 17시까지’를 의미합니다.
  • ,(쉼표): 값의 목록을 지정합니다. 예를 들어 요일에 Mon,Wed,Fri 또는 1,3,5를 사용할 수 있습니다.
  • /(슬래시): 간격 값을 지정합니다. 예를 들어 분 필드의 */5는 ‘5분마다’를 의미합니다.

크론탭 문법 - 실용적인 예

이해를 확실히 하기 위해 몇 가지 일반적인 예를 살펴보겠습니다.

  • * * * * * /path/to/script.sh
    매분 실행됩니다.
  • 0 3 * * * /usr/bin/backup.sh
    매일 AM 3:00에 실행됩니다.
  • 0 9-17 * * 1-5 /usr/local/bin/check_service.py
    월요일부터 금요일까지 AM 9시부터 PM 5시까지 매시간 실행됩니다.
  • */15 * * * * echo "Hello, CoddyKit!"
    15분마다 실행됩니다.

/path/to/script.sh를 실제 명령어나 스크립트 경로로 바꾸는 것을 잊지 마십시오.

특수 크론탭 문자열

자주 사용하는 일정 설정의 경우, 크론은 5개 필드로 구성된 문법보다 읽기 쉬운 특수 문자열을 제공합니다.

  • @reboot: 시작할 때 한 번 실행합니다.
  • @hourly: 매시간 정각에 한 번 실행합니다.
  • @daily: 매일 자정에 한 번 실행합니다.
  • @weekly: 매주 일요일 자정에 한 번 실행합니다.
  • @monthly: 매월 1일 자정에 한 번 실행합니다.
  • @yearly(또는 @annually): 매년 1월 1일 자정에 한 번 실행합니다.

간단한 반복 작업에 매우 유용합니다.

환경 변수와 경로

크론이 작업을 실행할 때 사용하는 환경 변수의 수는 매우 적습니다. 따라서 터미널에서 작동하는 명령어가 크론에서는 실패할 수 있습니다.

문제를 방지하려면 다음 지침을 따르십시오.

  • 명령어와 스크립트에는 항상 절대 경로를 사용하십시오(예: php 대신 /usr/bin/php).
  • 크론탭 파일 안에서 PATH 변수를 직접 정의할 수 있습니다. 예: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • 또는 스크립트 안에서 환경 변수를 직접 설정하십시오.

출력 및 로그 기록 처리하기

기본적으로 크론은 크론 작업의 모든 출력(stdout 및 stderr)을 크론탭을 소유한 사용자에게 이메일로 보내려고 합니다. 이메일 시스템이 구성되어 있지 않다면 이 출력이 유실되거나 로그 파일을 가득 채울 수 있습니다.

출력을 명시적으로 리디렉션하는 것이 좋습니다.

  • 모든 출력을 버리려면: command > /dev/null 2>&1
  • 출력을 로그 파일에 추가하려면: command >> /var/log/myjob.log 2>&1

2>&1 부분은 표준 오류(2)를 표준 출력(1)과 같은 위치로 리디렉션합니다.

시스템 전체 크론과 사용자 크론탭

지금까지는 crontab -e로 관리하는 개인 사용자 크론탭에 초점을 맞추었습니다. 사용자별 작업에는 이러한 방식이 적합합니다.

시스템 전체의 작업에는 관리자가 다음과 같은 항목을 자주 사용합니다.

  • /etc/crontab: 특정 사용자 권한으로 작업을 실행할 수 있는 시스템 기본 크론탭입니다.
  • /etc/cron.d/: 애플리케이션이 설치하는 경우가 많은 개별 크론 파일용 디렉터리입니다.
  • /etc/cron.hourly/, /etc/cron.daily/ 등: 시스템 크론이 해당 간격으로 실행할 스크립트를 배치하는 디렉터리입니다.

이러한 시스템 수준 옵션을 사용하면 서버 전체의 자동화를 더욱 세밀하게 제어할 수 있습니다.

크론 지식 테스트

크론탭 문법의 기본 사항을 배웠습니다. 이제 이 크론 작업을 해석할 수 있는지 확인해 보겠습니다.

복습: 크론으로 자동화하기

이제 크론으로 작업 일정을 설정하는 데 필요한 핵심 내용을 익혔습니다!

다음 내용을 살펴보았습니다.

  • 크론이란: 시간을 기준으로 작업을 예약하는 도구입니다.
  • 크론탭: 크론 작업을 정의하는 개인 파일입니다.
  • 문법: 5개의 시간 필드와 특수 문자(*, -, ,, /)를 이해하는 것입니다.
  • 특수 문자열: @hourly 및 @reboot과 같은 단축 표현입니다.
  • 권장 사항: 절대 경로를 사용하고 출력을 처리하는 것입니다.

크론을 사용하면 반복적인 작업을 자동화하여 서버가 원활하고 효율적으로 실행되도록 할 수 있습니다!

자주 묻는 질문

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

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

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

cron 작업을 생성하고 관리하여 반복적인 서버 작업을 자동화하고 지정된 간격으로 스크립트와 명령이 실행되도록 합니다. 브라우저에서 직접 실행하는 실습 코드로 Linux Server Deployment & SSH Mastery을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Linux Server Deployment & SSH Mastery을(를) 시작하는 데 경험이 필요한가요?

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

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

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

이 Linux Server Deployment & SSH Mastery 강의에서 코드를 작성하고 실행할 수 있나요?

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

이 강의의 모든 강의

  1. 사용자 및 그룹 관리
  2. 시스템 프로세스 모니터링
  3. Cron으로 예약 작업 수행
  4. systemd로 시스템 서비스 관리하기
← Linux Server Deployment & SSH Mastery(으)로 돌아가기