cron执行两次的原因

在unbuntu 24 上新建了一条 cron 任务 
# 每日2,4,6点保存vivo收入数据到f_adsense_report_vivo表
22 2,4,6 * * * curl --connect-timeout 10 --max-time 10 "http://backstage.build6.com/vivo/saveRevenue.html"

结果发现测试环境在北京时间上午 10:22、12:22 和 14:22 执行了。经排查 cron 默认以UTC时间执行,需要转化北京时间,或者在命令前加 TZ=Asia/Shanghai,或者执行 crontab -e ,在命令最上面配置时区

root@boy-cole:/var/www/build6# timedatectl
               Local time: Thu 2025-06-12 03:03:50 UTC
           Universal time: Thu 2025-06-12 03:03:50 UTC
                 RTC time: Thu 2025-06-12 02:57:48
                Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
root@boy-cole:/var/www/build6# crontab -e

TZ=Asia/Shanghai
CRON_TZ=Asia/Shanghai

或者

# 每日2,4,6 执行
TZ=Asia/Shanghai 22 2,4,6 * * * curl --connect-timeout 10 --max-time 10 "http://192.168.1.251/vivo/saveRevenue.html"

 

posted @ 2025-06-12 11:11  gentsir  阅读(25)  评论(0)    收藏  举报