Как добавить запись задания cron с помощью рецепта Chef

Все,

У меня есть сценарий оболочки, который создает tar-файл журналов. Вставила рецепт в кулинарную книгу.

Рецепт выглядит так:

cookbook_file "/var/create-tar.sh" do
source "create-tar.sh"
mode 0755
end

execute "create tar files of logs older than 1 day" do
command "sh /var/create-tar.sh"
end

Ресурс выполнения выполняет рецепт. Я хочу запланировать этот сценарий оболочки в cron, сделав запись в cronjob.

Запись crontab должна быть:

*/2 * * * * sh -x /var/test.sh  > /var/log/backup 2>&1

Как я могу добавить эту запись в свой рецепт?


person cloudbud    schedule 17.11.2015    source источник


Ответы (1)


Крон Джобс в шеф-поваре

В Chef есть ресурс для настройки заданий Cron — он называется cron.

cron 'test' do
  minute '*/2'
  command 'sh -x /var/test.sh  > /var/log/backup 2>&1'
end

Но какова ваша конечная цель? Ротация журнала?

Ротация логов с помощью Chef и Logrotate

Для этого есть инструмент под названием logrotate, и для этого есть кулинарная книга Chef: logrotate.

Это дает вам ресурс, который позволяет указать, какие журналы вы хотите ротировать и с какими параметрами:

logrotate_app 'test' do
  path      '/var/log/test/*.log'
  frequency 'daily'
  rotate    30
end

На всякий случай, если вы хотите реализовать такую ​​​​вещь ;-)

person StephenKing    schedule 17.11.2015
comment
Как я могу проверить это с помощью тестовой кухни? Нужно ли для этого писать файл kitchen.yml? - person cloudbud; 17.11.2015
comment
Как этот вопрос относится к теме? - person StephenKing; 17.11.2015