每当我将应用程序部署到实时服务器时,无论何时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 ="欧洲/伦敦")一起生成此行时,我该如何制作,以便它看起来像这样:
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'
希望有人可以帮助......谢谢! :)
答案 0 :(得分:1)
您可以覆盖此类作业的默认模板:
set :job_template, "TZ=\"Europe/London\" bash -l -c ':job'"
答案 1 :(得分:0)
只需在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'