Что-то вроде этого, не протестировали; это находится в ударе, таким образом, Вам, вероятно, придется преобразовать некоторый синтаксис:
IFS=$'\n' # so that only newlines separate words, not spaces
set -f # disable globbing
FILES=$(find path/to/music/ -name "* 1.*")
for FILE in ${FILES}; do
if [[ -f "${FILE% 1.*}" ]] ; do
echo "Matched ${FILE}."
# rm "${FILE}" # Uncomment me once you have confirmed it would do what you intend.
fi
done
${FILE% 1.*}
разделяет последнее соответствие 1.*
синтаксис от конца, [[ -f ... ]]
проверки, существовал ли тот файл; поэтому, это удалило бы файлы, для которых будет существовать файл без синтаксиса в конце. Протестируйте перед некомментарием rm
, чтобы быть уверенным, это корректно.
Все, что вам нужно, это [119793]nfnetlink_log[119794] способная протоколировать программу. Сообщения будут поступать туда, и процесс пользовательского пространства будет решать, регистрировать пакет или нет.
netsh interface portproxy add v4tov4 5118 127.0.0.1 8182
netsh interface portproxy add v6tov6 5118 ::1 8182
Другой вещью, которую вы могли бы попробовать, было бы ограничение правила [119795]LOG[119796] до определенного порога:
В среднем, это будет регистрировать 10 пакетов в минуту. Конечно, вы можете настроить это в соответствии с вашими потребностями.[119363]
Это может быть связано с уровнем журнала, который вы используете в iptables. Как я понял из документации rsyslog, это уровни логов: "Приоритет - одно из следующих ключевых слов, в порядке возрастания: отладка, информация, уведомление, предупреждение, предупреждение (то же самое, что и предупреждение), ошибка, ошибка (то же самое, что и ошибка), критерий, предупреждение, экстренное, паника (то же самое, что и экстренное)". Как быть с попыткой указать лог-уровень в iptables, используя его имя, т.е. 'notice'. Хорошо подходит для размещения без проверки, так как сейчас я думаю, что это совсем не проблема. Я реализовал схему, похожую на описанную выше, и получаю ту же самую проблему. Моим ядром в centos 7 является v3.10.0 и, видимо, начиная с v3.5, кажется, что протоколирование ядра производится с помощью /dev/kmsg и я предполагаю, что dmesg каким-то образом получает оттуда свой вклад.
. Почему тебя это волнует? dmesg
- это низкоуровневый инструмент для печати последних сообщений ядра, и вы просили ядро регистрировать выпавшие пакеты.
Настройте систему системных журналов на запись сообщений iptables в отдельный файл журнала от других сообщений ядра и используйте файлы журнала, которые она записывает вместо dmesg
.
Если вы установили уровень журнала на 7 с помощью команды:
-A INPUT -i eth0 -j LOG --log-prefix "FW: " --log-level 7
Затем вы можете просто отфильтровать эти сообщения, передав порог уровня в dmesg:
dmesg --level=err,warn