Pregunta

Me gustaría incluir tareas cron en mis archivos de implementación de Capistrano en lugar de usar el siguiente comando para editar manualmente el archivo crontab:

crontab -e [username]

¿Hay algún script que pueda usar dentro del comando Ejecutar de Capistrano para establecer el contenido del crontab?

¿Fue útil?

Solución

En mi caja de Linux

crontab -u userName -l > fileName

muestra el archivo crontab para userName en fileName.

Luego usaría una secuencia de comandos de ruby ??(u otro idioma) para actualizar el archivo.

Finalmente lo usaría

crontab -u userName fileName

para actualizar el crontab para userName

Otros consejos

Consulte la gema Siempre que : esto puede ir más allá de lo que pretende hacer. pero usa una sintaxis muy simple (Ruby) y hace que sea muy sencillo configurar los trabajos de cron dentro de un script de implementación de Capistrano.

dado que tienes un conjunto de variables que es: new_user

y que está utilizando 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 qué no incluir un crontab que se puede instalar en /etc/cron.d?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top