Команда Zgrep не работает

Сначала объявите пустую таблицу. Если таблица уже существует, она не выдает ошибку и не изменяет ее содержимое :ничего не происходит. Если она не существовала, значит, пустая таблица была только что создана. Теперь, когда он существует во всех случаях, его можно удалить. Все это можно сделать в том же наборе правил.

Итак, объявите таблицу без цепочки и правил, а затем удалите ее (справочная страница говорит, что ее очистка приведет к сбросу цепочек и правил, но это не удалит сами цепочки, они просто очиститься, что оставит старые переименованные цепочки или наборы на месте или будет конфликтовать с ними, если их свойства были изменены. Вики nftables содержит больше информации о поведении удаления и сброса . ). Теперь вы действительно можете создать его, все еще в том же и уникальном файле набора правил. Один и тот же набор правил теперь можно идемпотентно загружать несколько раз, не вызывая ошибки даже в первый раз.

#!/usr/sbin/nft -f

table ip my_table
delete table ip my_table

table ip my_table {
    chain output {
        type filter hook output priority 0; policy accept;
        ip daddr 8.8.8.8 counter 
# [...]
    }
}

Вы можете использовать оператор include, чтобы поместить все такие подготовительные строки в отдельный файл на случай, если их много и вы не хотите, чтобы они загрязняли набор правил.

Вы можете сделать то же самое на уровне цепочки, т.е. не изменяя другие цепочки в той же таблице, не предполагая и не требуя, чтобы таблица и ее цепочки были здесь раньше. Вот пример, когда reject_chainдеактивирует nftrace , что не удалит ни другие таблицы, ни цепочки my_table. Пример не имеет реальной пользы, это просто пример.

#!/usr/sbin/nft -f

table ip my_table {
    chain reject_chain {
    }
}
delete chain ip my_table reject_chain

table ip my_table {
    chain reject_chain {
        nftrace set 0 counter reject
    }
}

Примечание о совместимости. :ядрам объясняется в вики. Этот (и аналогичный для цепочек )будут работать даже на любой версии ядра :

.

table ip my_table
flush table ip my_table
delete table ip my_table

0
28.10.2021, 02:56
1 ответ

Нет ничего плохого в вашем zgrepсинтаксисе (, несмотря на то, что -cтолько подсчитывает экземпляры и не отображает их ). Но, как прокомментировал Муру, вы запускаете его при подключении к SFTP, где невозможно запускать команды оболочки.

Для выполнения этой команды необходимо подключиться через SSH.

1
28.10.2021, 09:28

Теги

Похожие вопросы