Question

Je voudrais inclure des tâches cron dans mes fichiers de déploiement Capistrano au lieu d'utiliser la commande suivante pour modifier manuellement le fichier crontab:

crontab -e [username]

Existe-t-il un script que je pourrais utiliser dans la commande d'exécution Capistrano pour définir le contenu de la crontab?

Était-ce utile?

La solution

Sur ma machine Linux

crontab -u userName -l > fileName

répertorie le fichier crontab pour userName dans fileName.

J'utiliserais ensuite un script ruby ??(ou une autre langue) pour mettre à jour le fichier.

Enfin, je voudrais utiliser

crontab -u userName fileName

pour mettre à jour la crontab pour le nom d'utilisateur

Autres conseils

Découvrez le Chaque fois que pierre précieuse - cela peut aller au-delà de ce que vous avez l'intention de faire, mais il utilise une syntaxe très simple (Ruby) et simplifie grandement la configuration de tâches cron dans un script de déploiement capistrano.

étant donné que vous avez un jeu de variables qui est: nouveau_utilisateur

et que vous utilisez 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

Pourquoi ne pas inclure une crontab pouvant être installée dans /etc/cron.d?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top