Creación de crontab a través de Capistrano en lugar de usar crontab -e
-
05-07-2019 - |
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?
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?