我想在 Capistrano 部署文件中包含 cron 任务,而不是使用以下命令手动编辑 crontab 文件:
crontab -e [username]
我可以在 Capistrano 运行命令中使用脚本来设置 crontab 的内容吗?
我想在 Capistrano 部署文件中包含 cron 任务,而不是使用以下命令手动编辑 crontab 文件:
crontab -e [username]
我可以在 Capistrano 运行命令中使用脚本来设置 crontab 的内容吗?
查看Whenever gem——这可能超出了您的预期,但它使用了非常简单的 (Ruby) 语法,使得在 capistrano 部署脚本中设置 cron 作业变得非常简单。
在我的 linux 机器上
crontab -u userName -l > fileName
列出 fileName 中 userName 的 crontab 文件。
然后我会使用 ruby(或其他语言)脚本来更新文件。
最后我会用
crontab -u userName fileName
更新用户名的 crontab
假设您有一个变量集: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
def crontab_add(line)
config = capture(%Q{crontab -l}).split "\n"
return if config.include? line
run %Q{(crontab -l; echo "#{line}") | crontab -}
end
为什么不包含一个可以安装到 /etc/cron.d 的 crontab?