在网页 iptables 日志中
/etc/rsyslog.d/iptables.conf使用以下内容创建:Run Code Online (Sandbox Code Playgroud):msg, startswith, "iptables: " -/var/log/iptables.log & ~
第二行表示丢弃前一行中匹配的消息。
为什么& ~在 iptables 配置中意味着“丢弃在前一行中匹配的消息”?
它与bash也无关iptables(正如您最初建议的问题标签)。这/etc/rsyslog.d/iptables.conf是rsyslogd配置的一部分,而不是iptables配置。
&是rsyslog理解的语法的一部分。
它在这里解释:
您可以为单个选择器(或更准确地说是此类选择器行的单个过滤器)执行多个操作。每个操作都必须在自己的行上,并且该行必须以与号 (
&) 字符开头并且没有过滤器。一个例子是Run Code Online (Sandbox Code Playgroud)*.=crit :omusrmsg:rger & root & /var/log/critmsgs这三行发送重要消息给用户
rger,并root和他们也存储/var/log/critmsgs。每个选择器使用多个操作很方便,而且还提供了性能优势。
然后在这里~解释:
如果执行丢弃操作,则立即丢弃接收到的消息。不会对其进行进一步处理。[…] Discard 只是
stop没有其他参数的词:Run Code Online (Sandbox Code Playgroud)stop例如,
Run Code Online (Sandbox Code Playgroud)*.* stop丢弃所有内容(好吧,您可以通过根本不运行来实现相同的效果
rsyslogd……)。请注意,在旧配置中,
~也可以使用波浪号字符代替单词stop。
在您的情况下,匹配的消息将被记录到文件中,然后被丢弃(不进一步处理)。
| 归档时间: |
|
| 查看次数: |
8025 次 |
| 最近记录: |