Cron 작업은 시스템 시간과 완전히 일치하지 않는 1 시간 동안 실행됩니다.


9

문제의 예 :

* 9 * * * echo 9
* 10 * * * echo 10

위의 내용은 1 분마다 사용자에게 이메일을 발송하지만 모든 "9"응답은 10:00 AM-> 10:59 AM에 발생하지만 "10"은 11:00 AM-> 11:59 AM에 표시됩니다. .

의 작업을 실행

* * * * * /bin/date ; /bin/date -u

예상 한 (올바른) 날짜와 시간을 반환했습니다. UTC와 현지 시간 (America / Denver) 모두에 해당됩니다. 특정 시간에 1 분마다 실행되도록이 작업을 변경하면 오프셋이 발생합니다 (10에서 9 번 실행시 실행 된 작업 등).

내가 완료 한 현재 디버그 :

알았어, 이상해 어쩌면 내 시간대 파일이 어떻게 엉망입니까? 확인 해보자

diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`
Files /etc/localtime and /usr/share/zoneinfo/America/Denver are identical

하드웨어 시계를 확인하여 이것이 꺼져 있거나 로컬 설정에 동의하지 않는지 확인했습니다 (루트로 실행).

date ; hwclock
Wed Oct 26 10:50:13 MDT 2016
Wed 26 Oct 2016 10:50:14 AM MDT  -0.204171 seconds

1 초가 지났을 것 같지만, cron 작업이 예정된 한 시간 동안 실행되지 않아야합니까?

또한 다음을 확신합니다.

  • 최근 시간대가 변경 되었습니까? 아니
  • 어쨌든 시간대를 수동으로 수정하려고 했습니까?
  • 시간대를 수정 한 후 cron을 재설정 했습니까?
  • cron 서비스가 다시 시작되었는지 확인 했습니까?
  • cron 서비스를 다시 시작 했습니까?
  • cron이 다시 시작 되었습니까? 100 % Cron이 재시작되었는지 확인

잠재적으로 관련된 기타 정보 :

데비안 실행.

cat /etc/debian_version
8.6

현재 커널

uname -a
Linux BigBox 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 GNU/Linux

업데이트 된 디버그 :

'hwclock --systohc'를 실행하면 눈에 띄는 동작 변경이 없습니다. 이 명령을 실행하여 확인하십시오.

date;hwclock
Wed Oct 26 12:39:09 MDT 2016
Wed 26 Oct 2016 12:39:11 PM MDT  -0.875328 seconds

이 파일이 없기 때문에 'cat / etc / sysconfig / clock'을 실행할 수 없습니다. / etc / tree 아래에서 'clock'을 찾기 위해 find 명령을 실행하면 해당 이름의 파일이 없음을 확인합니다.

내가 아는 것이 CRON_TZ 변수를 설정했는지 확인했습니다. 사용자 수준이나 루트 수준에서는 설정되지 않습니다. cron echo가 출력되지 않습니다.


1
는 IS CRON_TZENV var에 어디 설정?
thrig

hwclock --systohc완전성을 위해 노력 cat /etc/sysconfig/clock하고 질문에 추가하십시오 .
steve

슬프게도 많은 가치를 제공하지는 않았지만 내 정보에 두 가지 제안을 모두 추가했습니다. CRON_TZ는 내가 볼 수있는 환경에서 설정되지 않았습니다 .hwclock을 다시 동기화하면 이전과 동일한 결과를 얻었습니다 (어쨌든 변경되었는지 확인하십시오). '/ etc / sysconfig / clock이 없습니다. '파일.
jmurrayufo

답변:


1

살펴볼 곳이 하나 더 있습니다 : 부팅시 시작 스크립트 cron또는 구식 시스템 crontab 파일 /etc/crontab. TZ 환경 변수가 설정 /etc/init.d/cronie되거나 설정 될 수 있습니다. 또는 /lib/systemd/system/crond.service데비안이 init 시스템에 무엇을 사용하는지 잘 모르겠습니다.

crond다른 시간마다 일을 하려고 할 때 이와 같은 것을 보았습니다 .

0 */2 * * * /opt/dbms/rainstor/archiving/ama_term

crond홀수 시간에 스크립트를 실행했습니다. 나는 일광 절약 시간의 혼란과 관련이 있다고 의심했지만 결코 나 자신에게 증명하지 못했습니다.


/etc/init.d/cron이 /etc/timezone파일을 가져 오고 있습니다. TZ = cat /etc/timezone. 해당 파일이 올바른 것 같습니다 (체크섬을 원래 상태와 동일한 지 두 배로 확인하십시오). /lib/systemd/system/crond.service는 TZ 변수를 수정하지 않는 것 같습니다. * / 2 제안을 확인하여 동일한 내용을보고 있는지 확인합니다.
jmurrayufo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.