cron.daily가 리눅스에서 실행되는 시간을 변경하는 방법


22

cron.daily에는 매일 아침 특정 시간에 실행되는 스크립트가 있습니다. 실행 시간을 변경해야합니다.

cron.daily가 스크립트를 실행하는 시간을 어떻게 변경합니까?

linux  cron  redhat 

답변:


24

Red Hat 5 이상에서는이 기능이 제어됩니다 /etc/crontab.

최신 버전은을 사용 /etc/anacrontab합니다. 기본적으로 cron.daily스크립트는 4:02에 실행됩니다. 편집 /etc/crontab하면 해당 시간이 수정됩니다.

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

데비안 / 우분투 시스템에서도 이것도 제어됩니다 /etc/crontab.

예를 들어; 기본 우분투 12.04 설치 :

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

두 경우 모두 http://linux.die.net/man/5/crontab 에서 사용 하거나 man 5 crontab거의 모든 Linux 시스템에서 실행 하는 구문에 대한 자세한 내용을 찾을 수 있습니다.


3
sudo systemctl restart cron.service이것을 수정 한 후에 수행하는 것을 잊지 마십시오 . 이것은 systemd현대 데비안 및 우분투와 같은 기반 시스템에 해당됩니다 .
TranslucentCloud

3

RHEL / CentOS 6 이상에서

# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# the maximal random delay added to the base delay of the jobs

RANDOM_DELAY=45

# the jobs will be started during the following hours only

START_HOURS_RANGE=3-22

#period in days   delay in minutes   job-identifier   command
1       5       cron.daily              nice run-parts /etc/cron.daily

7       25      cron.weekly             nice run-parts /etc/cron.weekly

@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

따라서 실행 시간을 변경하는 방법에 대한 질문에 답하려면 START_HOURS_RANGE를 수정해야합니까?
thelr

1

openSUSE에서 crontab은 다음과 같습니다.

SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
MAILTO=root
#
# check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly
#
-*/15 * * * *   root  test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >/dev/null 2>&1

run-crons명령은 /var/spool/cron/lastrun무엇보다도 파일의 타임 스탬프를 확인합니다 . 마지막 실행 이후 시간이 만료되면 cron 파일을 다시 실행합니다.

파일을 터치하면 시간에 영향을 줄 수 있습니다. 예를 들어, 2012-11-17 03:15로 설정하려면 :

touch -t 201211140315 /var/spool/cron/lastrun/cron.daily

0

줄이 없으면 아무것도 해결되지 않습니다.

cron.daily가 언급 된 곳을 찾아보십시오.

grep -R cron.daily /etc

그런 다음 거기에서 가져옵니다.


이 명령을 사용하려면 매우 신중해야합니다. 예를 들어 RedHat의 경우 / etc / crontab 및 / etc / anacrontab 파일을 반환합니다. 그리고 cron.daily 항목으로 줄을 제거하면 매일 실행 해야하는 모든 스크립트 실행을 해제하기 만하면됩니다 (로그 로트, tmpwatch, 컵 등).
Lukasz Stelmach

2
나는 줄을 제거하지 말라고 제안했다. 질문은 매일 cron.을 수정하는 곳이었다. 이것은 (종류 답의 "그들이 스스로 돕는 도움"이 더 있었다 그래서) 당신이 그것을 찾을 방법입니다

-1

두 가지 일을하고 싶습니다 :

  1. cron.daily에서 스크립트를 제거하고 다른 곳에 넣으십시오.
  2. crontab에 항목을 추가하여 지정된 시간에 지정된 스크립트를 실행하십시오.

00 10 * * * /path/to/script

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.