Запуск задач по расписанию linux. Cron и его маленький секрет
차례:
- Crontab 파일이란 무엇입니까
- Crontab 구문 및 연산자
- 시스템 전체의 Crontab 파일
- 미리 정의 된 매크로
- 리눅스 Crontab 명령
- 크론 탭 변수
- 크론 탭 제한
- 크론 작업 예
- 결론
Cron은 지정된 간격으로 작업을 실행하는 예약 데몬입니다. 이러한 작업을 크론 작업이라고하며 대부분 시스템 유지 관리 또는 관리를 자동화하는 데 사용됩니다.
예를 들어, 데이터베이스 또는 데이터 백업, 최신 보안 패치로 시스템 업데이트, 디스크 공간 사용량 확인, 이메일 전송 등과 같은 반복적 인 작업을 자동화하도록 cron 작업을 설정할 수 있습니다. Drupal 또는 Magento와 같은 일부 응용 프로그램에서는 특정 작업을 수행하기 위해 cron 작업이 필요합니다.
크론 작업은 분, 시간, 일, 월, 요일 또는 이들의 조합으로 실행되도록 스케줄 될 수 있습니다.
Crontab 파일이란 무엇입니까
크론 탭 (크론 테이블)은 크론 작업 일정을 지정하는 텍스트 파일입니다. crontab 파일에는 두 가지 유형이 있습니다. 시스템 전체 crontab 파일 및 개별 사용자 crontab 파일
사용자 crontab 파일은 사용자 이름으로 저장되며 해당 위치는 운영 체제에 따라 다릅니다. CentOS와 같은 Red Hat 기반 시스템에서 crontab 파일은
/var/spool/cron
디렉토리에 저장되고 Debian 및 Ubuntu 파일은
/var/spool/cron/crontabs
디렉토리에 저장됩니다.
사용자 crontab 파일을 수동으로 편집 할 수 있지만
crontab
명령을 사용하는 것이 좋습니다.
/etc/crontab
및
/etc/cron.d
디렉토리에있는 파일은 시스템 관리자 만 편집 할 수있는 시스템 전체의 crontab 파일입니다.
대부분의 Linux 배포판에서는
/etc/cron.{hourly, daily, weekly, monthly}
디렉토리에 스크립트를 넣을 수 있으며 스크립트는
hour/day/week/month
마다 실행됩니다.
Crontab 구문 및 연산자
사용자 crontab 파일의 각 행에는 공백으로 구분 된 6 개의 필드와 실행 명령이 있습니다.
* * * * * command(s) - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)
처음 5 개의 필드는 쉼표로 구분 된 하나 이상의 값 또는 하이픈으로 구분 된 값 범위를 포함 할 수 있습니다.
-
*
-별표 연산자는 모든 값 또는 항상을 의미합니다. 시간 필드에 별표 기호가 있으면 작업이 매시간 수행됨을 의미합니다.,
-쉼표 연산자를 사용하면 반복 할 값 목록을 지정할 수 있습니다. 예를 들어 시간 필드에1, 3, 5
가 있으면 작업은 오전 1시, 오전 3시, 오전 5시에 실행됩니다. 하이픈 연산자를 사용하면 값 범위를 지정할 수 있습니다. 요일 필드에1-5
가 있으면 작업은 매주 (월요일에서 금요일까지) 실행됩니다./
-슬래시 연산자를 사용하면 특정 간격 동안 반복되는 값을 지정할 수 있습니다. 예를 들어, 시간 필드에*/4
가 있으면 4 시간마다 조치가 수행됨을 의미합니다.0, 4, 8, 12, 16, 20
을 지정하는 것과 같습니다. 슬래시 연산자 앞에 별표 대신에 값 범위를 사용할 수도 있습니다.1-30/10
은1, 11, 21
과 동일 함을 의미합니다.
시스템 전체의 Crontab 파일
시스템 전체 crontab 파일의 구문은 사용자 crontab과 약간 다릅니다. cron 작업을 실행할 사용자를 지정하는 추가 필수 사용자 필드를 포함합니다.
공통 간격을 지정하는 데 사용되는 몇 가지 특수 Cron 스케줄 매크로가 있습니다. 5 열 날짜 지정 대신이 바로 가기를 사용할 수 있습니다. crontab 명령을 사용하면 편집 할 crontab 파일을 설치하거나 열 수 있습니다. crontab 명령을 사용하여 다음 옵션을 사용하여 cron 작업을 보거나 추가, 제거 또는 수정할 수 있습니다. crontab 명령은
cron 데몬은 여러 환경 변수를 자동으로 설정합니다. 시스템 관리자는
기본적으로
파일이 없으면 관리 권한이있는 사용자 만
다음은 여러 기간에 작업이 실행되도록 예약하는 방법을 보여주는 일부 cron 작업 예입니다. 월요일부터 금요일까지 매일 15:00에 명령을 실행하십시오. 5 분마다 스크립트를 실행하고 표준 출력을
매주 월요일 오후 3시에 두 개의 명령을 실행하십시오 (명령 사이에
2 분마다 PHP 스크립트를 실행하고 출력을 파일에 작성하십시오. 오전 8 시부 터 오후 4 시까 지 매일 1 시간마다 스크립트를 실행하십시오. 매월 첫째 월요일 오전 7시에 스크립트를 실행하십시오. 매월 1 일과 15 일 오후 9시 15 분에 스크립트를 실행하십시오. 사용자 정의
특정 날짜 및 시간에 크론 작업을 작성하고 작업을 예약하는 방법을 배웠습니다. 궁금한 점이 있으면 언제든지 의견을 남겨주십시오.
* * * * * command(s)
* * * * * command(s)
미리 정의 된 매크로
@yearly
(또는
@annually
)-1 월 1 일 자정 (오전 12시)에 지정된 작업을 연 1 회 실행합니다.
0 0 1 1 *
와 같습니다.
@monthly
-매월 1 일 자정에 한 달에 한 번 지정된 작업을 실행합니다.
0 0 1 * *
와 같습니다.
@weekly
일요일 자정에 일주일에 한 번 지정된 작업을 실행합니다.
0 0 * * 0
.
@daily
자정에 하루에 한 번 지정된 작업을 실행합니다.
0 0 * * *
와 같습니다.
@hourly
시간 시작시 한 시간에 지정된 작업을 실행합니다.
0 * * * *
와 같습니다.
@reboot
시스템 시작시 (부팅시) 지정된 작업을 실행합니다.리눅스 Crontab 명령
crontab -e
-crontab 파일을 편집하거나 존재하지 않는 경우 파일을 만듭니다.
crontab -l
-crontab 파일 내용을 표시합니다.
crontab -r
현재 crontab 파일을 제거하십시오.
crontab -i
제거하기 전에 프롬프트로 현재 crontab 파일을 제거하십시오.
crontab -u
VISUAL
또는
EDITOR
환경 변수로 지정된 편집기를 사용하여 crontab 파일을 엽니 다.크론 탭 변수
PATH=/usr/bin:/bin
있습니다. 호출중인 명령이 cron 지정 경로에 있으면 명령의 절대 경로를 사용하거나 cron
$PATH
변수를 변경할 수 있습니다. 일반 스크립트에서와 같이 암시 적으로
:$PATH
를 추가 할 수 없습니다
:$PATH
기본 쉘은
/bin/sh
설정됩니다.
SHELL
변수를 변경하여 다른 쉘을 설정할 수 있습니다
SHELL
은 사용자의 홈 디렉토리에서 명령을 호출합니다.
HOME
변수는 crontab의 설정으로 재정의 할 수 있습니다. 전자 메일 알림은 crontab의 소유자에게 전송됩니다. 기본 동작을 덮어
MAILTO
려면
MAILTO
환경 변수를 이메일 알림을 수신하려는 모든 이메일 주소 목록 (쉼표로 구분)과 함께 사용할 수 있습니다.
MAILTO
가 정의되었지만 비어있는 경우 (
MAILTO=""
) 메일이 전송되지 않습니다.크론 탭 제한
/etc/cron.deny
및
/etc/cron.allow
파일을 사용하여
crontab
명령에 액세스 할 수있는 사용자를 제어 할 수 있습니다. 파일은 한 줄에 하나씩 사용자 이름 목록으로 구성됩니다.
/etc/cron.deny
파일 만 존재하며 비어 있습니다. 즉, 모든 사용자가 crontab 명령을 사용할 수 있습니다. 특정 사용자에 대한 crontab 명령에 대한 액세스를 거부하려면이 파일에 사용자 이름을 추가하십시오.
/etc/cron.allow
파일이 존재하면이 파일에 나열된 사용자 만
crontab
명령을 사용할 수 있습니다.
crontab
명령을 사용할 수 있습니다.크론 작업 예
0 15 * * 1-5 command
dev null
리디렉션하면 표준 오류 만 지정된 이메일 주소로 전송됩니다.
[email protected] */5 * * * * /path/to/script.sh > /dev/null
&&
연산자 사용).
0 15 * * Mon command1 && command2
*/2 * * * * /usr/bin/php /path/to/script.php >> /var/log/script.log
00 08-16 * * * /path/to/script.sh
0 7 1-7 * 1 /path/to/script.sh
15 9 1, 15 * * /path/to/script.sh
HOME
,
PATH
,
SHELL
및
MAILTO
변수를 설정하고 1 분마다 명령을 실행하십시오.
HOME=/opt PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHELL=/usr/bin/zsh [email protected] */1 * * * * command
결론
영국의 Kalender : 간편한 무료 독립 실행 형 스케줄링

사용하기 쉬운이 무료 사용권으로 일정 및 달력을 추적합니다.
MailTag for Gmail은 이메일 추적, 스케줄링 및 자동 추적 기능을 제공합니다.

MailTag는 Gmail을위한 무료 이메일 추적 솔루션입니다. & Gsuite는 전자 메일 일정을 예약하고 미리 정의 된 전자 메일을 자동 추적합니다. 브라우저에서 바로 Gmail과 잘 통합되는 Chrome 확장 기능을 제공합니다.
Windows 10/8/7에서 프로세서 스케줄링

Windows에서 프로세서 스케줄링을 구성하여 제어판을 통해 프로그램 사용 중에 최상의 성능을 얻으십시오 백그라운드 프로세스