我的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
我得到的错误如下所示,这将是什么样的模式,特别是它必须删除/opt/snow/snowagen
t,它开始于22:00,因为我们正在创建相同的cron
开始于04:00。我不想删除在04:00运行。
NoMethodError
-------------
undefined method `delete_lines' for cookbook: test_lnx_slm9upgrade, recipe: install_slm9 :Chef::Recipe
2条答案
按热度按时间m3eecexj1#
看起来你没有
delete_lines
,可能是你错过了导入它。同时我给你找到了一个简单的解决办法
您可以在https://rubydoc.info/gems/chef/Chef/Util/FileEdit#search_file_delete_line-instance_method上找到有关此的更多信息
41zrol4v2#
您尝试使用的
delete_lines
资源来自line cookbook。很可能你还没有在你的食谱的元数据中添加对食谱的依赖。您需要:
1.确保此食谱在您的Chef服务器上可用,或者如果您在本地模式下运行Chef,则在本地可用。获得这本食谱的说明可在上面链接的页面中找到。
1.在您的烹饪书的元数据中添加此烹饪书的依赖项。在您的cookbook目录中编辑
metadata.rb
文件并添加以下条目:在我的测试中,我能够删除下面的代码行: