Это не имеет ничего общего bash
ни с iptables
(как изначально предлагали ваши теги вопроса). Это /etc/rsyslog.d/iptables.conf
часть rsyslogd
конфигурации, а не iptables
конфигурации.
&
является частью синтаксиса, который rsyslog
понимает.
Это объясняется здесь :
Вы можете иметь несколько действий для одного селектора (или, точнее, одного фильтра такой линии селектора). Каждое действие должно быть в отдельной строке, и строка должна начинаться с
&
символа амперсанда ( ) и не иметь фильтров. Примером будет*.=crit :omusrmsg:rger & root & /var/log/critmsgs
Эти три линий отправка критических сообщений пользователя
rger
и,root
а также сохранять их в/var/log/critmsgs
. Использование нескольких действий для каждого селектора удобно, а также повышает производительность.
Тогда ~
это объясняется здесь :
Если действие отмены выполнено, полученное сообщение немедленно отбрасывается. Никакой дальнейшей обработки не происходит. […] Discard - это просто слово
stop
без дополнительных параметров:stop
Например,
*.* stop
отбрасывает все (хорошо, вы можете достичь того же самого, вообще не бегая
rsyslogd
…).Обратите внимание, что в устаревшей конфигурации
~
вместо слова можно использовать символ тильдыstop
.
В вашем случае соответствующие сообщения будут записаны в файл, а затем удалены (не обрабатывается дальше).