【问题标题】:How to set Timezone on whenever gem cronjob每当gem cronjob时如何设置时区
【发布时间】:2016-04-30 08:20:06
【问题描述】:

每当我将应用程序部署到实时服务器时,我都会使用 gem + capistrano 来自动生成 cronjob。目前,无论何时生成的 cron 看起来像这样(没有时区“TZ”):

30 20 * * * /bin/bash -l -c 'cd /home/deploy/apps/myapp/releases/20160123202716 && RAILS_ENV=production bundle exec rake overdue_payments --silent >> /home/deploy/apps/myapp/releases/20160123202716/log/cron.log 2>&1'

我的问题是,每当生成这条线和时区 (TZ="Europe/London") 时,我该如何制作,使其看起来像这样:

30 20 * * * TZ="Europe/London" /bin/bash -l -c 'cd /home/deploy/apps/myapp/releases/20160123202716 && RAILS_ENV=production bundle exec rake overdue_payments --silent >> /home/deploy/apps/myapp/releases/20160123202716/log/cron.log 2>&1'

希望有人能帮忙..谢谢! :)

【问题讨论】:

标签: ruby-on-rails linux cron crontab whenever


【解决方案1】:

只需在您的 crontab 中自己的行上定义变量。参见手册页 crontab(5)

TZ=Europe/London
30 20 * * * /bin/bash -l -c 'cd /home/deploy/apps/myapp/releases/20160123202716 && RAILS_ENV=production bundle exec rake overdue_payments --silent >> /home/deploy/apps/myapp/releases/20160123202716/log/cron.log 2>&1'

【讨论】:

  • OP 想知道如何生成时区配置,而不是如何编辑 crontab 来实现它。
【解决方案2】:

您可以像这样覆盖作业的默认模板:

set :job_template, "TZ=\"Europe/London\" bash -l -c ':job'"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    相关资源
    最近更新 更多