Erstellen crontab über Capistrano stattdessen crontab -e verwenden
-
05-07-2019 - |
Frage
Ich möchte cron Aufgaben in meinem Capistrano Bereitstellungsdateien enthalten stattdessen den folgenden Befehl verwenden manuell die crontab-Datei zu bearbeiten:
crontab -e [username]
Gibt es einen Skript, das ich im Capistrano Startbefehl verwenden könnte den Inhalt der crontab zu setzen?
Lösung
Auf meiner Linux-Box
crontab -u userName -l > fileName
listet die crontab-Datei für Benutzer-Namen in filename.
Dann würde ich einen Rubin (oder eine andere Sprache) Skript verwenden, um die Datei zu aktualisieren.
Schließlich würde ich
crontab -u userName fileName
die crontab für Benutzer-Namen aktualisieren
Andere Tipps
Überprüfen Sie die out Immer wenn Juwel - das über Strecken sein kann, was Sie zu tun beabsichtigen, aber es nutzt sehr einfach (Rubin) Syntax und macht es tot einfach einzurichten cron-Jobs innerhalb eines Capistrano Deployment-Skript.
gegeben, dass Sie eine Variable gesetzt haben, das ist: new_user
und dass Sie verwenden 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
Warum sind keine crontab, die installiert werden können, um /etc/cron.d?