Наткнулся на список команд для управлением пакетным фильтром (фаерволом) pf.
pfctl -d |
выключить пакетный фильтр |
pfctl -e |
включить пакетный фильтр |
|
pfctl -f /etc/pf.conf |
загрузить конфиг из /etc/pf.conf |
pfctl -n -f /etc/pf.conf |
проверить на ошибки /etc/pf.conf , но не загружать его |
pfctl -R -f /etc/pf.conf |
загрузить только правила фитрации из /etc/pf.conf |
pfctl -N -f /etc/pf.conf |
загрузить только правила NAT из /etc/pf.conf |
pfctl -O -f /etc/pf.conf |
загрузить только опции из /etc/pf.conf |
|
pfctl -F all |
сбросить всё |
pfctl -F rules |
сбросить только правила фильтрации |
pfctl -F queue |
сбросить только очереди |
pfctl -F nat |
сбросить правила NAT |
pfctl -F info |
сбросить всю статистику |
pfctl -z clear |
очистить все счётчики |
|
pfctl -s rules |
показать текущие правила фильтрации |
pfctl -v -s rules show |
показать информацию по каждому правилу фильтрации |
pfctl -vvsr |
показать текущие правила фильтрации с добавлением номера правила |
pfctl -v -s nat |
показать текущие правила NAT отдельно по каждому правилу |
pfctl -s nat -i xl1 |
показать правила NAT для интерфейса xl1 |
pfctl -s queue |
показать очереди |
pfctl -s state |
показать текущее состояние таблиц |
pfctl -s info |
показать статистику правил и состояние счётчиков |
pfctl -s all |
показать все что можно |
|
pfctl -t testtable -T show |
просмотр содержимого таблицы testtable |
pfctl -t testtable -T show -v |
просмотр более подробной статистики по каждому адресу таблицы testtable |
pfctl -t testtable -T add 192.168.1.1 |
добавление адреса 192.168.1.1 в таблицу testtable |
pfctl -t testtable -T delete 192.168.1.1 |
удаление адреса 192.168.1.1 из таблицы testtable |
pfctl -t testtable -T flush |
очистить таблицу testtable |
Для этих целей существует отличная программа convmv.
Ставится она из репозитория довольно просто:
sudo apt-get install convmv
После чего вам просто необходимо указать папку, в которой необходимо совершить переименование файлов из одной кодировке в другую.
Например, мне нужно переименовать файлы из KOI8-R в UTF-8 рекурсивно вниз.
Делается это так:
convmv -r --notest -f koi8-r -t utf-8 Folder/
Опция --notest
отвечает за переименование.
Т.е. без этой опции вы просто сделаете тест и посмотрите как файлы будут “выглядеть” в нужной кодировке.
Удачи.
Сегодня я расскажу как можно работать с базой данных PostgreSQL с помощью nginx’a без application’a (например, PHP или любого другого). Т.е. эта технология абсолютно не зависит от языка, на котором сделан сайт/проект/система.
Мы будем использовать мощь PostgreSQL в хранимых процедурах (stored procedures/functions), а кэшировать с помощью быстрого Redis.
Читати далі…
Сегодня я хочу вам рассказать о партиционировании больших таблиц в моей любимой PostgreSQL.
Итак, начнём с определения:
Партиционирование (partitioning) — это разбиение больших таблиц на логические части по выбранным критериям. Партиционированные или секционированные таблицы призваны улучшить производительность и управляемость базами данных.
Вроде понятно. Теперь идём дальше. Как же разбить таблицу на партиции или секции?
В PostgreSQL эта процедура потребует небольших усилий, но результатом вы будете довольны 🙂
Читати далі…
Сегодня я хотел бы поделиться знаниями по извлечении данных из Google Analytics, используя их API v3 на стороне сервера (server-side), т.е. без участия браузера пользователя.
Самое странное, что в Сети в основном описаны все примеры с использованием эмуляции браузера и аккаунта пользователя (пара email+пароль). Мы так делать не будем, т.к. это глупо и не красиво 🙂
Приступим.
Читати далі…
Если ваши серверные бэкапы могут вместиться в размер виртуального диска Dropbox’a, то думаю что разумным будет бэкапить файлы, помимо другого веника, ещё и в облако.
Начнём.
Читати далі…
Если есть необходимость сохранения в лог обращений к веб-серверу nginx значения, переданные через POST, то это делается довольно просто.
Добавляем в конфиг nginx’a дополнительный log_format
с именем, к примеру main_post
(сама переменная называется $request_body
):
log_format main_post '$remote_addr - [$time_local] '
'$host "$request" $status $bytes_sent [$request_body] '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio" $upstream_response_time';
И теперь осталось только указать этот формат вторым параметром access_log
:
access_log /var/log/nginx/access.log main_post;
Сразу скажу о двух важных моментах:
- Если к логам сервера имеет доступ ещё кто-то, то все POST-данные из лога ему станут известны
- Лог может ОЧЕНЬ быстро разбухать в размерах
А в остальном — пользуйтесь!
Наверное, моя статья будет не интересна матерым сисадминам и покажется копипастом. Но я адресую ее тем, кто, как и я, будучи только разработчиком, впервые столкнулся с необходимостью еще и администрировать сервер, при этом решая задачи высоконагруженной БД. И чтобы гугл вас не проклял, постараюсь собрать в одном месте основные приемы для разгона сервера БД, которые мне успешно удалось реализовать.
Читати далі…
Введение
С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
Читати далі…