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?

Foi útil?

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?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top