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?

War es hilfreich?

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?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top