at 명령은 한 번만 실행되는 예약된 작업을 설정하는 데 사용됩니다. 오늘은 주기적으로 실행되는 예약된 작업에 대해 살펴보겠습니다. 업무에서는 시스템 파일의 정기 백업, 데이터베이스 파일의 정기 백업, 장기간 미입금 주문 처리 등 주기적인 예약 작업을 자주 사용합니다.
사용자는 정기적인 예약 작업을 설정합니다 crontab
일반 사용자는 정기적인 예약 작업을 설정하려면 crontab 명령을 사용해야 합니다. at과 마찬가지로 crontab에도 흑백 목록이 있으며 구성 파일은 -/etc/cron.deny, /etc/cron.allow입니다.
사용자가 예약된 작업을 설정하면 작업이 /var/spool/cron 디렉터리에 텍스트 파일로 기록됩니다.
# ll /var/spool/cron/ total 4 -rw------- 1 root root 98 Jul 28 03:58 root
crontab에 관해서는 두 가지 명령만 기억하면 됩니다
crontab -e 예약된 작업 설정
crontab -l 예약된 작업 보기
예약된 작업 설정 형식은 다음과 같습니다. 다음:
基本格式:分 时 日期 月份 星期 命令 取值范围:[0-59] [0-23] [1-31] [1-12] [0-7]
이 외에도 여러 특수 문자의 의미도 기억해야 합니다.
*는 언제든지를 의미합니다.
, 분리된 기간을 의미합니다.
- 연속적인 기간을 의미합니다. of time
/n n 단위 간격을 나타냅니다.
몇 가지 예를 통해 위 특수 문자의 사용법을 살펴보겠습니다.
# 每隔5分钟,执行下检测内存的脚本 */n * * * * /root/script/check_memory.sh # 每个月1号凌晨5点20分,重启下服务器 20 5 1 * * /usr/sbin/reboot
시스템 구성 파일 /etc/crontab, /etc/ cron.d/*
정기적으로 예약된 작업에는 주로 세 가지 해당 구성 파일, 즉 사용자를 위해 설정되는
/var/spool/cron/과
/etc/crontab이 있습니다.
/etc/cron.d/ 웹사이트와 같은 특정 소프트웨어나 시스템의 예약된 작업에는 여러 개의 예약된 작업이 있을 수 있으므로 새로 만드는 것이 좋습니다. /etc/cron.d/ 디렉토리에 하나 구성 파일
crontab -e는 사용자 수준용으로 설계되었습니다. 시스템 수준의 주기적 작업의 경우 /etc/crontal 파일 또는 /etc/cron.d/ 디렉토리.
아래 /etc/crontab 파일의 내용을 보면
# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed # * * * * * root /usr/bin/date >> /root/cron.txt
crontab -e와 약간 다른 것을 볼 수 있는데 여기서는 사용자 이름을 지정해 주어야 합니다.
다음으로 /etc/cron.d/ 디렉터리에 어떤 파일이 있는지 살펴보겠습니다
# ll /etc/cron.d total 8 -rw-r--r--. 1 root root 128 Aug 3 2017 0hourly -rw------- 1 root root 235 Aug 3 2017 sysstat
서버에 웹사이트가 있다고 가정해 보겠습니다. 이 웹사이트의 경우 정기적으로 데이터베이스와 웹사이트 파일을 백업해야 합니다. 또한 정기적으로 처리해야 합니다. 일부 데이터는 /etc/cron.d/ 디렉터리에 관련 파일을 만들 수 있습니다. 0hourly 파일의 내용을 살펴보겠습니다.
# Run the hourly jobs SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root 01 * * * * root run-parts /etc/cron.hourly
이 스크립트는 /etc/cron.hourly 디렉터리에 있는 스크립트 파일을 매시간 실행한다는 의미입니다.
눈썰미가 있는 친구들은 cron.hourly 디렉토리 외에도 cron.daily, cron.monthly 및 cron.weekly 디렉토리도 있다는 것을 발견한 것 같습니다. 그러나 이 세 디렉터리 사이에는 몇 가지 차이점이 있습니다. 이 세 디렉터리는 anacron에 의해 실행됩니다. 이 아나크론은 실행되지 않은 예약된 작업을 깨워서 실행한다는 의미입니다. 예를 들어 crontab -e를 사용하여 예약된 작업을 설정했는데 시스템 종료나 다른 이유로 인해 해당 시간 이후에 작업이 실행되지 않으면 놓칠 수 밖에 없지만 스크립트를 /etc/cron에 배치하면 .daily/ 디렉터리에서는 실행되지 않는 한 시간이 지나도 계속 실행됩니다.
위 내용은 Linux에서 예약된 작업 - 주기적으로 실행되는 예약된 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!