Создание crontab через Capistrano вместо использования crontab -e

StackOverflow https://stackoverflow.com/questions/1604041

  •  05-07-2019
  •  | 
  •  

Вопрос

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

crontab -e [username]

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

Это было полезно?

Решение

На моем компьютере с Linux

crontab -u userName -l > fileName

выводит список файлов crontab для имени пользователя в поле fileName.

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

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

crontab -u userName fileName

чтобы обновить crontab для имени пользователя

Другие советы

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

учитывая, что у вас есть набор переменных: 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
def crontab_add(line)
  config = capture(%Q{crontab -l}).split "\n"
  return if config.include? line
  run %Q{(crontab -l; echo "#{line}") | crontab -}
end

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top