Добавляем в /etc/apt/sources.list
адрес к репозиторию с последним PostgreSQL:
sudo -s
echo 'deb https://apt.postgresql.org/pub/repos/apt/ precise-pgdg main' >> /etc/apt/sources.list
Получаем волшебный ключик:
sudo wget --quiet -O - https://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc|sudo apt-key add -
И теперь всё просто:
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
И можно поставить, если у вас ещё не было:
sudo apt-get install postgresql-9.2
Сегодня я расскажу как можно вести лог скриптов, что отправляют почту методами PHP.
Это удобно, если у вас на сервере поселился спаммер и вы не знаете где его искать, т.к. сами пути запускающих скриптов по-умолчанию не падают в /var/log/syslog
или в /var/log/mail.log
. Читати далі…
Наткнулся на список команд для управлением пакетным фильтром (фаерволом) 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.
Читати далі…
Иногда возникает необходимость определить версию Ubuntu. Делается это с помощью команды lsb_release
, что предназначена для вывода информации о текущей версии дистрибутива Ubuntu.
lsb_release -a
Что для версии Ubuntu 13.04 выведет следующее:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 13.04
Release: 13.04
Codename: raring
Существует отличная консольная утилита для отображения информации о количестве переданной и принятой информацией по каждому сетевому интерфейсу с разбивкой по датам и визуальным отображением в как в консольном, так и графическом режимах. Имя этой утилиты — vnstat.
Читати далі…
Предел возможностей БД часто упирается в дисковые операции. Поэтому стоит оптимизировать эти операции, меняя логику, архитектуру, масштабируя и пр.
Запрос выведет статистику по таблицам в обратном порядке по сумме операций записи, т.е. сверху будут таблицы с наиболее интенсивной записью.
SELECT
schemaname AS schema, -- схема
relname AS table, -- таблица
pg_size_pretty( pg_relation_size(relid) ) AS tsize, -- размер
n_tup_upd + n_tup_ins + n_tup_del AS write, -- операций записи (I/U/D)
seq_scan + idx_scan AS read, -- всего чтений
n_tup_ins AS ins, -- операции INSERT
n_tup_upd AS upd, -- операции UPDATE
n_tup_del AS del -- операции DELETE
FROM
pg_stat_user_tables
ORDER BY
( n_tup_upd + n_tup_ins + n_tup_del ) DESC
Кстати, так вы можете получить список всех индексов, а так — список неиспользуемых индексов.
Примером хорошего тона и здравого смысла является периодическая проверка диска на битые сектора (бэд-сектора, badblocks) и обычная проверка диска на ошибки записи и т.п.
Разберёмся что такое битые сектора.
Любимая Википедия говорит следующее:
Бэд-сектор, Повреждённый сектор — сбойный (не читающийся) или ненадежный сектор диска; кластер, содержащий сбойные сектора, или кластер помеченный таковым в структурах файловой системы операционной системой.
Следовательно, если в битом секторе были данные, то их ещё возможно восстановить, пока битых секторов не стало слишком много для конкретного файла.
Читати далі…
Решил написать ТОП 16 PHP функций, что я использую каждый день.
Будет полезно как начинающим разработчикам, так и профессионалам (хотя у них этот список может отличаться).
Это MUST HAVE функции, что обязательно нужно знать и уметь ими оперировать.
Читати далі…