호스트 컴퓨터 에는 CentOS 7.5.1804
시계가 한 시간 롤백되기 때문에 한 시간 앞서 실행되는 cronjob이 있습니다.UTC 오프셋이 UTC-4에서 UTC-5로 변경되었습니다..
이것은 계속 실행됩니다/etc/cron.d/*
# Runs at 1410 UTC on M-F
10 14 * * 1-5 accountchecker bash /opt/accountchecker/accountchecker.sh > /dev/null 2>&1
1010 MF Eastern에서 실행되기를 원했지만 호스트가 UTC이므로 시간 변경을 존중하여 이제 910 Eastern에서 실행됩니다.
cron이 이 변화에 적응하고 항상 1010에서 실행되도록 하려면 어떻게 해야 합니까?
답변1
다른 경로로 가야 합니다. 일관된 UTC 시간에 무언가가 실행되는지 확인하세요.
가능하면 더 이른 시간에 실행되도록 crontab을 설정하고, 너무 이른지 테스트하고, 그렇다면 한 시간 동안 자도록 합니다.
"멈춘" cronjob(너무 오랫동안 실행)을 모니터링하는 프로세스가 있는 경우 올바른 타이밍을 테스트한 다음 아무것도 수행하지 않거나 프로그램이 실행되도록 하는 래퍼를 만들 수 있습니다... 그런 다음 cron의 시간에 넣을 수 있습니다. 맞을 수도 있습니다.
UTC와 비교할 때 date -u
... TZ=America/Los_Angeles date
비교하려는 시간대 파일(또는 적절한 시간대 파일이 무엇이든)을 알 수 있습니다.