Архив метки: How to

Полезные команды MySQL

Моя подборка полезных команд для MySQL.

Узнать размер базы данных

SELECT table_schema "DB Name",
Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"
FROM   information_schema.tables
GROUP  BY table_schema
ORDER BY Round(Sum(data_length + index_length) / 1024 / 1024, 1) DESC;

Выводим 15 наиболее фрагментированных таблиц

Читать

Защищаем Apache2 от SlowLoris DDoS

Что такое SlowLoris

У вас случалось такое, когда на сервере нагрузки нет, свободной памяти достаточно, и при этом ваш сайт не открывается?

Если при этом на статусной страничке апача все треды в состоянии R (reading), весьма вероятно, что вы находитесь под атакой SlowLoris.

SlowLoris означает, что злоумышленники открывают множество коннектов к серверу, однако не посылают много-много запросов, а, наоборот, посылают один и медленно-медленно. В таком случае серверу не остается ничего другого, кроме как ждать, когда же вы запрос наконец придёт. А он всё не приходит и не приходит.

В результате все треды (или потоки) апача заняты тем, что ждут, когда же всё-таки запрос придёт. Читать

Не собирается mdraid — resync=PENDING

Оказывается, resync=PENDING, из-за которого не собирается и не ребилдится mdraid-массив, очень легко победить.
Для этого достаточно выполнить команду:

mdadm —readwrite /dev/mdX

где X — номер массива, например, /dev/md1.
И после этого массив сразу начинает собираться:

 md1 : active raid1 sda2[1] sdb2[0] 943587136 blocks super 1.2 [2/2] [UU] [>………………..] resync = 1.2% (12186176/943587136) finish=182.4min speed=85095K/sec

Автор: AlexWinner

Исправляем ошибку "sorry, you must have a tty to run sudo"

Внезапно столкнулся с тем,  что из крона не отрабатывал скрипт, который прекрасно отрабатывал из консоли. Выдавал в STDERR указанную ошибку-  sorry, you must have a tty to run sudo.
Проблема решается изменением файла /etc/sudoers. Для его изменения рекомендую использовать утилиту visudo, а не править редактором напрямую. Находим строку:

Defaults    requiretty

И закомментируем её:

#Defaults    requiretty

И всё, sudo отлично работает из под cron.

Примечание: на самом деле, лучше переписать скрипты без использования sudo, поскольку эта закомментирование этой директивы наносит некоторый ущерб безопасности сервера:

# Disable «ssh hostname sudo «, because it will show the password in clear.
#         You have to run «ssh -t hostname sudo «.

Автор: AlexWinner

CentOS / Fedora — исправляем ошибку yum: database disk image is malformed

Проблема

Столкнулся с ошибкой, когда yum после команды yum update стал выдавать ошибку:

Error: database disk image is malformed
You could try using —skip-broken to work around the problem
You could try running: rpm -Va —nofiles —nodigest

Попытки решения

Указанные в этом выводе команды не помогли.
Нагугленные команды типа:

 mv /var/lib/rpm/__db* /tmp
rpm —rebuilddb

или

 yum history new

также не помогли.

Решение

В итоге решение проблемы пришло в виде команды:

 yum clean dbcache

Однако после неё вылезла другая ошибка:

sqlite3.OperationalError: table trans_beg already exists

Она решилась с помощью команды

 yum history new

 

Автор: AlexWinner
Дата публикации: 2013-04-21T14:28:00.000-07:00

batch resize, или массовое изменение размера картинок в Linux Debian/Ubuntu

Столкнулся с необходимостью быстро отресайзить папку фотографий.  Так как под рукой только Linux Ubuntu, пришлось искать способы под него.
Конечно, была идея отресайзить все картинки через Гимп, но это стрельба из пушки по воробьям. Причём медленная стрельба.
А простой и красивый способ нашёлся следующий.

Читать