【问题标题】:I would like to extract and list the cron jobs printed from a server right next to each cron job我想提取并列出从每个 cron 作业旁边的服务器打印的 cron 作业
【发布时间】:2018-12-27 16:36:53
【问题描述】:

我正在尝试打印受 Chef 中 cron 作业配方影响的所有服务器的列表,并且我希望在特定服务器的每个 cron 作业旁边打印 cron 时间值。

我已经使用过这样的脚本:

for i in $(ls cookbooks/cookbook_name/recipes); 
    do knife search node "recipes:*${i%.*}" -i; 
done

我想从这样的表达式中提取crontab 时间:

% frequent zfs snapshot
  cron_d 'zfs-auto-snapshot-frequently' do
  minute '*/15'
  path PATH
  command '/opt/zfs-auto-snapshot.sh frequent 6'
end
% Hourly
cron_d 'zfs-auto-snapshot-hourly' do
  minute '59'
  path PATH
  command '/opt/zfs-auto-snapshot.sh hourly 4'
end
% Daily
cron_d 'zfs-auto-snapshot-daily' do
  minute '59'
  hour '23'
  path PATH
  command '/opt/zfs-auto-snapshot.sh daily 3'
end
% Weekly
cron_d 'zfs-auto-snapshot-weekly' do
  minute '0'
  hour '0'
  weekday '1'
  path PATH
  command '/opt/zfs-auto-snapshot.sh weekly 1'
end
% Monthly
cron_d 'zfs-auto-snapshot-monthly' do
  minute '0'
  hour '0'
  day '1'
  path PATH
  command '/opt/zfs-auto-snapshot.sh monthly 1'
end

我需要一个类似这样的列表输出:

admindb.xyz.com ***3*

server.xyz.com ***3*

office.xyz.com *2***

collector01.xyz.com *3*4*

【问题讨论】:

    标签: ruby cron chef-infra


    【解决方案1】:

    如果不对您的代码做出大量假设并编写一些糟糕的正则表达式,这实际上是不可能的。 Chef 是代码,任何代码的静态分析都很难,而 Ruby 则介于令人愤怒和“lolno”之间。最好的办法是不看 Chef,直接通过 SSH 查询每台机器。

    【讨论】:

    • 你可能会用标签做一些可怕的事情,但我完全同意 coderanger。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    • 2020-06-10
    相关资源
    最近更新 更多