如何使用 Chef 配方添加 cron 作业条目

How to add a cron job entry using Chef recipe

全部,

我有一个 shell 脚本,它创建 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

执行资源正在执行配方。我想通过在 cronjob 中输入来在 cron 中安排这个 shell 脚本。

crontab 条目应该是:

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

如何将此条目添加到我的食谱中?

Chef 中的 Cron 作业

Chef 包含用于设置 Cron 作业的资源 - 名为 cron

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

但是你的最终目标是什么?日志轮转?

使用 Chef 和 Logrotate 进行日志轮换

有一个工具可以做到这一点,叫做 logrotate and there is a Chef cookbook for that: logrotate

这为您提供了一个资源,允许您指定要轮换哪些日志以及使用哪些选项:

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

以防万一你想实现这样的事情;-)