Creare crontab via Capistrano invece di usare crontab -e
-
05-07-2019 - |
Domanda
Vorrei includere le attività cron nei miei file di distribuzione Capistrano invece di utilizzare il seguente comando per modificare manualmente il file crontab:
crontab -e [username]
Esiste uno script che potrei usare nel comando run di Capistrano per impostare il contenuto del crontab?
Soluzione
Sulla mia scatola di Linux
crontab -u userName -l > fileName
elenca il file crontab per userName in fileName.
Quindi userei uno script ruby ??(o un'altra lingua) per aggiornare il file.
Infine vorrei usare
crontab -u userName fileName
per aggiornare il crontab per userName
Altri suggerimenti
Dai un'occhiata alla Ogni volta che la gemma - questo potrebbe andare oltre ciò che intendi fare, ma utilizza una sintassi (Ruby) molto semplice e semplifica notevolmente l'impostazione dei lavori cron all'interno di uno script di distribuzione capistrano.
dato che hai un set di variabili che è: new_user
e che stai utilizzando 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
Perché non includere un crontab che può essere installato su /etc/cron.d?