문제의 예:
* 9 * * * echo 9
* 10 * * * echo 10
위의 내용은 매분 사용자에게 이메일을 보내지만 모든 "9" 응답은 오전 10시 -> 오전 10시 59분에 발생하고 "10"은 오전 11시 -> 오전 11시 59분에 수신됩니다. .
다음 작업을 실행 중입니다.
* * * * * /bin/date ; /bin/date -u
예상되는(올바른) 날짜와 시간을 반환했습니다. 이는 UTC와 현지 시간(미국/덴버) 모두에 해당됩니다. 특정 시간에 1분마다 실행되도록 이 작업을 변경하면 오프셋이 발생합니다(9시에 실행하도록 지시된 작업은 10시에 실행 등).
내가 완료한 현재 디버그:
좋아요, 그거 이상해요. 내 시간대 파일이 어떻게 든 엉망이 된 것일까요? 확인해 보자
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이 다시 시작되었다고 확신합니까?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/ 트리에서 '시계'를 찾기 위해 find 명령을 실행하면 해당 이름의 파일이 없음을 확인합니다.
내가 알고 있는 내용이 CRON_TZ 변수를 설정했는지 확인했습니다. 사용자 수준이나 루트 수준에서는 설정되지 않습니다. cron에서 에코를 실행하면 출력이 제공되지 않습니다.
답변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
홀수 시간에 스크립트를 실행했습니다. 나는 그것이 일광 절약 시간제의 혼란과 관련이 있다고 의심했지만 스스로 증명하지는 못했습니다.