我想在我的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
列出userName在fileName中的crontab文件。
然后我会使用Ruby(或其他语言)脚本来更新该文件。
最后,我会使用
crontab -u userName fileName
更新 userName 的 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