>  기사  >  운영 및 유지보수  >  Linux에서 예약된 작업 - 주기적으로 실행되는 예약된 작업

Linux에서 예약된 작업 - 주기적으로 실행되는 예약된 작업

齐天大圣
齐天大圣원래의
2020-11-07 22:42:003089검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.