
У меня есть скрипт, установленный в cronjob для запуска в 00 часов, но он запускается на 5 часов раньше, т. е. в 7 вечера по местному времени более раннего дня. Я имею в виду, что он должен был запускаться в 00 часов по местному времени, но он запустился в 00 часов UTC/GMT.
timedatectl output
===================
Local time: Wed 2020-12-02 01:33:31 EST
Universal time: Wed 2020-12-02 06:33:31 UTC
RTC time: Wed 2020-12-02 06:33:31
Time zone: America/Toronto (EST, -0500)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: no
Last DST change: DST ended at
Sun 2020-11-01 01:59:59 EDT
Sun 2020-11-01 01:00:00 EST
Next DST change: DST begins (the clock jumps one hour forward) at
Sun 2021-03-14 01:59:59 EST
Sun 2021-03-14 03:00:00 EDT
ls -lrt /etc/localtime output
================================
lrwxrwxrwx. 1 root root 35 Nov 24 11:43 /etc/localtime -> /usr/share/zoneinfo/America/Toronto
date output
============
Wed Dec 2 01:42:28 EST 2020
В моей системе нет файла с именем /etc/default/cron. НОCRON ЗАПУСКАЕТСЯ С ЛОКАЛЬНЫМ ВРЕМЕНЕМ ПОСЛЕ ПЕРЕЗАПУСКА CRON DAEMON. Итак, проблема в том, что до перезапуска, т. е. после того, как система инстанцирована/сделана cron, он принимает время UTC, но когда cron перезапускается на любом узле, он нормально работает с локальным временем. Это что-то вроде того, что cron уже запустился с часовым поясом по умолчанию (UTC) до того, как символическая ссылка /etc/localtime была установлена на /usr/share/zoneinfo/America/Toronto? Если да, как я могу изменить часовой пояс до запуска cron?
hostnamectl output
==================
Static hostname: abcxyz-0
Icon name: computer-vm
Chassis: vm
Machine ID: 88d24fe7c825442dbfd3b56fd0b24980
Boot ID: 384ea93dcb604bb2ac5bec074539a7cb
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1160.el7.x86_64
Architecture: x86-64
Я пытался получить помощь отhttps://askubuntu.com/questions/54364/как-установить-часовой-пояс-для-crontabиhttps://serverfault.com/questions/791713/what-time-zone-is-a-cron-job-using#:~:text=Cron%20job%20использует%20команду%20сервера%20даты%20в%20терминале.но они не могли быть полезны.
решение1
Если вы не установилиаппаратное обеспечениевремя, чтобы соответствоватьсистемавремя, затем cron отработаетаппаратное обеспечениевремя
Лично я никогда не запускаю серверы вчто-либоноUTC - по местному временилюбойформа становится очень сложной при управлении более чем парой хобби-боксов
Я был в среде, где работало до полумиллионасерверконечные точки (не говоря уже о настольных компьютерах).
Не используйте местное время!