Вывести список всех таблиц при помощи SQL довольно просто:
SELECT
n.nspname AS "schema",
c.relname AS "table"
FROM
pg_catalog.pg_class AS c
LEFT JOIN
pg_catalog.pg_namespace AS n
ON n.oid = c.relnamespace
WHERE
n.nspname NOT IN ('pg_catalog', 'pg_toast')
AND
c.reltablespace > 0
AND
c.relkind = 'r'
ORDER BY
c.relname ASC
В результате получим набор схема-таблица.
Если ваши серверные бэкапы могут вместиться в размер виртуального диска 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-данные из лога ему станут известны
- Лог может ОЧЕНЬ быстро разбухать в размерах
А в остальном — пользуйтесь!
Итак, у нас есть
- ISO образ с Windows 7
- USB-флешка (
/dev/sdb1
)
- Linux Ubuntu/Debian
Форматируем флешку в файловой системе NTFS:
sudo mkntfs -f /dev/sdb1
При условии что она уже была подготовлена и правильно размечена ранее.
Если же это не так, тогда ставим Gparted
sudo apt-get install gparted
И через интерфейс форматируем флешку в NTFS, не забыв установить флажёк “boot”
Следующий этап, монтируем ISO-образ в какую-то папку (/mnt/iso
), монтируем флешку в какую-то папку (/mnt/flash
) и копируем содержимое папки с ISO-образом в папку с флешкой.
У меня получилось так:
sudo mount -o loop ~/soft/windows/windows7.iso /mnt/iso/
sudo mount /dev/sdb1 /mnt/flash/
sudo cp -r /mnt/iso/* /mnt/flash/
Теперь самое сложное, необходимо установить программу ms-sys, которой нет в репозитории.
Программа нужна для записи правильного загрузочного сектора на флешку.
Качаем исходники с последней версией.
Распаковываем и устанавливаем:
tar -xzvf ms-sys-2.3.0.tar.gz
cd ms-sys-2.3.0/
sudo make
sudo checkinstall
sudo dpkg -i ms-sys_2.3.0-1_amd64.deb
Удалить потом можно будет с помощью комманды
sudo dpkg -r ms-sys
Записываем Windows 7 загрузчик на флешку (опция -7
отвечает за Windows 7, есть и другие версии Windows):
sudo ms-sys -7 /dev/sdb
Это всё.
Пользуемся.
По-умолчанию в Ubuntu включены компоненты платного мониторинга системы Landscape, они в основном и тормозят загрузку (до 2-3 секунд).
Это дело лежит в motd. Если он вам вообще не нужен — берём напильник и выпиливаем:
Перезапускаем sshd
и готово! Теперь логин в систему у нас мгновенный!
Ещё стоит упомянуть о DNSе. При использовании тормознутых DNSов логин в систему может занимать до 30 секунд.
Поэтому в файле /etc/ssh/sshd_config
ещё стоит установить UseDNS no
.
Если хотите, чтобы вообще ничего не выводилось при логине, то можно ещё отключить строчку с датой и IP последнего входа в систему (сообщение “Last Login”).
Для этого необходимо в файле /etc/ssh/sshd_config
установить значение PrintLastLog no
, но я бы не рекомендовал.
Под любимым Линуксом это делается довольно просто с помощью их API.
Прежде всего устанавливаем пакет ec2-api-tools:
sudo apt-get install ec2-api-tools
Или если его не существует или хотим всегда иметь самую последнюю версию, добавляем репозиторий:
sudo apt-add-repository ppa:awstools-dev/awstools
sudo apt-get update
sudo apt-get install ec2-api-tools
После чего выполняем относительно простые инструкции по установке и настройке EC2 API Tools для Ubuntu.
После этого всего мы готовы к работе с API Amazon’a.
Создаём Security Group (если ещё её не было):
ec2-create-group ips.port80 -d "IP List @ port 80"
GROUP sg-XXXXXXXX ips.port80 IP List @ port 80
И добавляем в неё список IP (при условии что он лежит в файле ~/ips.list, в каждой строке есть отдельный IP или диапазон IP):
for i in `cat ~/ips.list`; do ec2-authorize ips.port80 -P tcp -p 80 -s $i; done
GROUP ips.port80
PERMISSION ips.port80 ALLOWS tcp 80 80 FROM CIDR XXX.XXX.0.0/16 ingress
...
Вот и всё.
Список всех установленных локалей можно получить с помощью комманды
locale -a
Список всех доступных к установке локалей можно получить, просмотрев файл /usr/share/i18n/SUPPORTED
less /usr/share/i18n/SUPPORTED
Для добавления, к примеру, русской локали необходимо выполнить комманду:
sudo locale-gen ru_RU.UTF-8
Всё просто! 😉
PPA с последней версией PostgreSQL устанавливается просто:
sudo add-apt-repository ppa:pitti/postgresql
sudo apt-get update
И потом всё просто:
sudo apt-get install postgresql-9.2
Запрос отображает использование индексов. Что позволяет увидеть наиболее часто использованные индексы, а также и наиболее редко (у которых будет index_scans_count = 0
).
Учитываются только пользовательские индексы и не учитываются уникальные, т.к. они используются как ограничения (как часть логики хранения данных).
В начале отображаются наиболее часто используемые индексы (отсортированы по колонке index_scans_count
).
SELECT
idstat.relname AS table_name, -- имя таблицы
indexrelname AS index_name, -- индекс
idstat.idx_scan AS index_scans_count, -- число сканирований по этому индексу
pg_size_pretty(pg_relation_size(indexrelid)) AS index_size, -- размер индекса
tabstat.idx_scan AS table_reads_index_count, -- индексных чтений по таблице
tabstat.seq_scan AS table_reads_seq_count, -- последовательных чтений по таблице
tabstat.seq_scan + tabstat.idx_scan AS table_reads_count, -- чтений по таблице
n_tup_upd + n_tup_ins + n_tup_del AS table_writes_count, -- операций записи
pg_size_pretty(pg_relation_size(idstat.relid)) AS table_size -- размер таблицы
FROM
pg_stat_user_indexes AS idstat
JOIN
pg_indexes
ON
indexrelname = indexname
AND
idstat.schemaname = pg_indexes.schemaname
JOIN
pg_stat_user_tables AS tabstat
ON
idstat.relid = tabstat.relid
WHERE
indexdef !~* 'unique'
ORDER BY
idstat.idx_scan DESC,
pg_relation_size(indexrelid) DESC
Установить последний pgAdmin3 в Ubuntu (или в моём случаи, в Xubuntu) достаточно просто.
Нужно просто знать адрес правильный адрес PPA-репозитория 🙂
Делается так:
sudo apt-add-repository ppa:voronov84/andreyv
sudo apt-get update && sudo apt-get upgrade
И ставим, если ещё до этого не был установлен:
sudo apt-get install pgadmin3