Criando crontab via Capistrano em vez de usar crontab -e
-
05-07-2019 - |
Pergunta
Eu gostaria de incluir tarefas cron em meus arquivos de implantação Capistrano em vez de usar o seguinte comando para editar manualmente o arquivo crontab:
crontab -e [username]
Existe um script que eu poderia usar dentro do comando Capistrano prazo para definir o conteúdo do crontab?
Solução
Em minha caixa de linux
crontab -u userName -l > fileName
lista o arquivo crontab para nome de utilizador no nome do arquivo.
Então eu usaria um rubi (ou outro idioma) script para atualizar o arquivo.
Finalmente eu usaria
crontab -u userName fileName
para atualizar o crontab para username
Outras dicas
Confira o Sempre gem - o que pode ser esticar para além do que você está pretendendo fazer, mas usa a sintaxe muito simples (rubi) e torna mais simples morto para empregos configuração cron dentro de um script de implantação Capistrano.
dado que você tem um conjunto variável que é: new_user
e que você está usando 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
Por que não incluir um crontab que pode ser instalado para /etc/cron.d?