我的
cron
条目:
[root@server1 ~]# cat /var/spool/cron/root
0 21 * * * /bin/bash -c "sleep $[RANDOM \% 60 + 1]m"; nice -n 10 /opt/snow/snowagent -w /opt/snow/ >/dev/null 2>&1
# Chef Name: account_lister_clean
0 12,23 * * * rm -f /opt/scripts/acct_list_run_once
# Chef Name: logger_cron
0 0 * * * /opt/unx_logger.sh
==========================================
我想使用厨师单独删除以下行。
0 21 * * * /bin/bash -c "sleep $[RANDOM \% 60 + 1]m"; nice -n 10 /opt/snow/snowagent -w /opt/snow/ >/dev/null 2>&1
============================================
delete_lines 'remove snow agent cron at 22:00' do
path '/var/spool/cron/root'
pattern '^*/opt/snow/snowagent'
end
我收到如下错误,该模式是什么,特别是它必须删除从 22:00 开始的
/opt/snow/snowagen
t,只是因为我们正在创建相同的 cron
从 04:00 开始。我不想删除在 04:00 运行的内容。
NoMethodError
-------------
undefined method `delete_lines' for cookbook: test_lnx_slm9upgrade, recipe: install_slm9 :Chef::Recipe
看起来您没有
delete_lines
,可能是您错过了导入它。
同时我为您找到了一个简单的解决方案
ruby_block 'remove snow agent' do
block do
rc = Chef::Util::FileEdit.new('/etc/hosts')
rc.search_file_delete_line(/\/opt\/snow\/snowagent/, '')
rc.write_file
end
end
您可以在https://rubydoc.info/gems/chef/Chef/Util/FileEdit#search_file_delete_line-instance_method
找到更多相关信息