6

我想在 Capistrano 部署文件中包含 cron 任务,而不是使用以下命令手动编辑 crontab 文件:

crontab -e [username]

我可以在 Capistrano 运行命令中使用脚本来设置 crontab 的内容吗?

4

5 回答 5

15

查看Whenever gem——这可能超出了您的预期,但它使用了非常简单的 (Ruby) 语法,使得在 capistrano 部署脚本中设置 cron 作业变得非常简单。

于 2009-10-21T23:42:59.747 回答
5

在我的 linux 机器上

crontab -u userName -l > fileName

列出 fileName 中 userName 的 crontab 文件。

然后我会使用 ruby​​(或其他语言)脚本来更新文件。

最后我会用

crontab -u userName fileName

更新用户名的 crontab

于 2009-10-21T22:48:20.537 回答
4

假设您有一个变量集:new_user

并且您正在使用use_sudo true

desc "install crontab"
task :install_crontab do
  run "echo '0 23 * * * /home/#{new_user}/scripts/backup_#{new_user}.sh' | #{sudo} crontab -u #{new_user} -"
end
于 2009-12-16T02:07:34.737 回答
4
def crontab_add(line)
  config = capture(%Q{crontab -l}).split "\n"
  return if config.include? line
  run %Q{(crontab -l; echo "#{line}") | crontab -}
end
于 2013-01-09T09:52:34.443 回答
0

为什么不包含一个可以安装到 /etc/cron.d 的 crontab?

于 2009-11-04T18:04:56.123 回答