sudo nft add rule inet filter input iifname lo counter accept
— чтобы сервисы внутри нормально работали разрешить подключения к loopback.
sudo nft add chain inet filter input '{ policy drop; }'
— После того как мы добавили все разрешающие правила в цепочке input, поменяем её политику на drop.
sudo nft add rule inet filter input ct state established,related counter accept
— разрешить все ответные пакеты механизм connection tracking.
sudo nft delete rule inet filter input handle 8 — удалить правило по его номеру.
но странный стук зовет в дорогу
apt install knockd — установим.
/etc/default/knockd — START_KNOCKD=1.
/etc/knockd.conf — конфигурации.
nft 'add rule ip filter INPUT iifname "eth0" ct state
related,established counter accept' — включить.
=> \! pwd — Из psql можно выполнять команды shell.
=> SHOW work_mem; — объём обработки запросов. => SELECT name, setting, unit FROM pg_settings WHERE name = 'work_mem';
=> \dconfig work_mem
=> ALTER SYSTEM SET work_mem TO '64MB'; — если мы собираемся выполнить запрос,
сортирующий большой объем данных, то для сеанса можно увеличить значение.
=> SELECT pg_reload_conf(); — Чтобы изменение вступило в силу. sudo pg_ctlcluster 16 main reload
=> ALTER SYSTEM RESET work_mem; — default.
psql -d база -U роль -h узел -p порт — параметры подключения.
=> \conninfo — текущее подключение.
=> SELECT name, setting, unit FROM pg_settings LIMIT 7;
— Формат с выравниванием используется по умолчанию.
С помощью запроса SQL можно сформировать несколько других запросов SQL и записать их в файл,
используя команду \o => \a \t \pset fieldsep '' — меняем формат. => \o dev1_tools.sql — указываем файл. => SELECT format('SELECT %L AS tbl, count(*) FROM %I;', tablename, tablename)
FROM pg_tables LIMIT 3; => \o \t \a — Вернем вывод на экран и восстановим форматирование по умолчанию.
=> \i dev1_tools.sql — Выполнить команды из файла.
=> \set TEST Hi! — Установим переменную.
=> \echo :TEST — вызов переменной.
=> \unset TEST — сбросить значение.
=> \set top5 'SELECT tablename, pg_total_relation_size(schemaname||''.''||tablename)
AS bytes FROM pg_tables ORDER BY bytes DESC LIMIT 5;'
— запись в переменную запроса на получение списка пяти самых больших таблиц. => :top5 — выполнить запрос.
Без параметров \set выдает значения всех переменных, включая встроенные.
\? variables — Справка по встроенным переменным.
shared_buffers — параметр, который устанавливает, сколько выделенной памяти будет
использоваться для кэширования данных. Обычно под shared_buffers отдают львиную часть всей памяти —
от 25 до 50%. Если сравнивать с MS SQL Server, то это близкий аналог buffer pool, размер которого
ограничивается параметром max server memory. Обычно рекомендуют устанавливать 30% от общего объема.
temp_buffers — параметр, который задает максимальный объем памяти, выделяемый для
временных таблиц (буферов) в каждом сеансе. т. е. временные таблицы, в отличии от MS SQL, могут
кэшироваться в памяти, что позволяет избегать чтения с диска при работе с ними. При этом каждая таблица
всегда имеет копию на диске, не важно хватило ли ей памяти в temp_buffers или нет.
maintenance_work_mem — параметр, который устанавливает объём оперативной памяти,
выделенный для выполнения операций обслуживания базы данных: VACUUM, CREATE INDEX и ALTER TABLE, ADD
FOREIGN KEY. Для расчета нужно понимать количество одновременных потоков (задач) обслуживания.
autovacuum_work_mem — параметр, который задает максимальный объём памяти, который будет
использовать каждый рабочий процесс автоочистки. Входит в тот же кусок пирога, что и maintenance_work_mem
и по умолчанию равен «-1», т.е. объём определяется значением maintenance_work_mem.
work_mem — параметр, который задаёт базовый максимальный объём памяти, который будет
использоваться в рамках одного рабочего процесса (сессии) во внутренних операциях типа соединений,
сортировки, группировки и т. п. при обработке запросов, прежде чем будут задействованы временные файлы
на диске.