cron использует время UTC вместо местного времени

У меня в cronjob установлен сценарий для запуска в 00 часов, но он запускается на 5 часов раньше, т.е. 19:00 по местному времени ранее. Я имею в виду, что он должен был работать в 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/how-do-you-set-the-timezone-for -crontab и https://serverfault.com/questions/791713/what-time-zone-is-a-cron-job-using#:~:text=Cron%20job%20uses%20the% 20 сервера, терминал% 20date% 20command% 20in% 20. но они не могли быть полезны.

1
задан 2 December 2020 в 09:07
1 ответ

Если вы не установили аппаратное время в соответствии с системным временем, тогда cron будет работать с аппаратным временем

Лично я никогда не запускаю серверы в в чем-либо, кроме всемирного координированного времени — использование местного времени в любой форме становится очень сложным при управлении более чем парой ящиков для хобби

работал в средах, в которых работает до полумиллиона серверов конечных точек (не говоря уже о рабочих столах).

Не используйте местное время!

0
ответ дан 7 December 2020 в 22:31

Теги

Похожие вопросы