我正在尝试从 rsyslog 目录中删除垃圾文件(主要是许多空子目录或包含单个部分日志文件的子目录),但这些垃圾文件的名称各不相同,从看起来像被截断的单词到 10 个连字符。我认为最简单的方法是简单地查找我需要的任何东西,然后将其他一切都说成是垃圾,但这就是事情变得棘手的地方。
我需要保持
- 每当我创建一个新的 rsyslog 监听器时,都会有 5-10 个默认文件/子目录
- 任何目录,只要是主机名(任何以“vd”或“vp”开头的子目录)
- 任何为 IP 地址的目录。
其余内容均可删除。
我考虑过只使用 grep 并排除与这些搜索词匹配的任何内容,然后将目录列表放入文本文件中,我可以将其用作要删除的输入列表,但我在输入主机名时遇到了问题,只要我说“vp*”,我什么也得不到。此外,我用来提取 IP 地址的字符串也在抓取日期。
我当前的搜索如下:
egrep -av 'HEAD|GET|version|putenv|id|default|POST|status|rsyslog_stats' |
grep -E "[^^][0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}" |
grep -av "vp*" |
grep -av "vd*"
如果有人有任何建议,我将不胜感激,因为如果我能让它工作,我可以每 15-30 分钟运行一次,并保持我的所有 rsyslog 侦听器目录清洁,并且不会将太多垃圾吸入我的 Splunk 索引中。
谢谢!
1 个回答