Создание crontab через Capistrano вместо использования crontab -e - PullRequest
6 голосов
/ 22 октября 2009

Я бы хотел включить задачи cron в мои файлы развертывания Capistrano вместо использования следующей команды для редактирования файла crontab вручную:

crontab -e [username]

Есть ли скрипт, который я мог бы использовать в команде запуска Capistrano для установки содержимого crontab?

Ответы [ 5 ]

15 голосов
/ 22 октября 2009

Проверьте Всякий раз, когда драгоценный камень - это может простираться за пределы того, что вы собираетесь делать, но он использует очень простой (Ruby) синтаксис и упрощает настройку заданий cron в capistrano. сценарий развертывания.

5 голосов
/ 22 октября 2009

На моей Linux-коробке

crontab -u userName -l > fileName

перечисляет файл crontab для userName в fileName.

Тогда я бы использовал скрипт ruby ​​(или другой язык) для обновления файла.

Наконец-то я бы использовал

crontab -u userName fileName

для обновления crontab для userName

4 голосов
/ 09 января 2013
def crontab_add(line)
  config = capture(%Q{crontab -l}).split "\n"
  return if config.include? line
  run %Q{(crontab -l; echo "#{line}") | crontab -}
end
4 голосов
/ 16 декабря 2009

, учитывая, что у вас есть набор переменных, который: new_user

и что вы используете 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
0 голосов
/ 04 ноября 2009

Почему бы не включить crontab, который можно установить в /etc/cron.d?

...