cron 采用 UTC 时间而不是本地时间

cron 采用 UTC 时间而不是本地时间

我在 cronjob 中设置了一个脚本,在 00 点运行,但它运行的时间比 5 小时前(即前一天的当地时间晚上 7 点)。我的意思是,它本应在当地时间 00 点运行,但它在 UTC/GMT 00 点运行。

     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 使用本地时间运行。因此,问题出在重启之前,即在系统实例化/创建后,cron 采用 UTC 时间,但当在任何节点上重新启动 cron 时,它都可以使用本地时间正常运行。在将 /etc/localtime 的符号链接设置为 /usr/share/zoneinfo/America/Toronto 之前,cron 是否已经以默认时区 (UTC) 启动?如果是,我如何在 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-crontabhttps://serverfault.com/questions/791713/what-time-zone-is-a-cron-job-using#:~:text=Cron%20job%20uses%20the%20server's,the%20date%20command%20in%20terminal。但它们不可能有任何用处。

答案1

如果你还没有设置硬件匹配时间系统时间,然后 cron 就会停止工作硬件时间

就我个人而言,我从来不会运行任何事物UTC - 使用当地时间任何当管理多个爱好盒子时,表格会变得非常复杂

我曾经在运行多达 50 万个服务器端点(更不用说桌面了)。

不要使用当地时间!

相关内容