find. * -exec ll {} \;
Проходы .
, и список не -скрытых файлов в текущем каталоге (, расширенный из *
оболочкой ), включая подкаталог test
(и, если какой-либо из эти файлы начинались с -
или если был файл с именем !
или (
, )
... это могло привести к тому, что find
сообщил о синтаксической ошибке ).
Итак, вы говорите find
искать файлы рекурсивно в .
, а также в test
. Таким образом, find
найдет test
дважды, а также test/file123
дважды.
ll
который, я полагаю, представляет собой сценарий, который ls -l
является инструментом для вывода сведений о файлах или для файлов типа каталога, сведений обо всех файлах в этом каталоге (, если вы не передадите параметр -d
).
Таким образом, ll
будет вызываться с ./test
и test
в качестве аргументов, и в этих случаях if будет перечислять детали файлов в своем содержимом (, включаяtest/file
).
И он будет вызываться с ./test/file123
и test/file123
.
Вот вам бы:
find. -exec ls -ld {} +
(использование +
означает, что в качестве аргументов для ls
будет передано более одного файла, что более эффективно, а также позволяет ls
сортировать этот список файлов ).
Ваш find
может даже поддерживать предикат -ls
, который ведет себя как список битовls -lsid
:
find. -ls
Решение вашей проблемы очень старое, но не включает iptables. Он называется сервером inetd super -. Его конфигурация -/etc/inetd.conf -позволяет вам определить порт и протокол для прослушивания -«службы», определенной в /etc/services -, и программу, которая будет выполняться в случае аварии. соединение -, которое может быть вашим сценарием ведения журнала.
Услуга будет
microsoft-ds 445/tcp # Microsoft Naked CIFS
Вы не можете запускать программы или скрипты из IPtables, но вы можете регистрировать трафик, который приходит на какой-либо порт в IPtables.
Это будет регистрировать запись в системном журнале (/var/log/syslog в Debian )каждый раз, когда что-то приходит на порт 445 udp или tcp с префиксом журнала и подробностями о соединении (, меткой времени, исходным портом, исходный IP,...)
iptables -I INPUT -p tcp --dport 445 -j LOG --log-prefix "PORT 445 connnection!!"
iptables -I INPUT -p udp --dport 445 -j LOG --log-prefix "PORT 445 connnection!!"
Если вы хотите запустить какой-либо скрипт, когда что-то приходит на порт 445, вам потребуется использовать inetd, а в Debian 10 вы также можете использовать сокет systemd для запуска скрипта через службу, когда что-то приходит на порт 445.
В зависимости от того, что вы хотите, было бы лучше, если бы вы просто регистрировали подключения к порту 445 в журнале и запускали скрипт по некоторому расписанию, который будет подсчитывать записи в журнале или извлекать их.