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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 사용자 및 그룹 관리
- 시스템 프로세스 모니터링
- Cron으로 예약 작업 수행
- systemd로 시스템 서비스 관리하기