Как извлечь отдельную таблицу из MySQL дампа

Порой возникает необходимость восстановить конкретную таблицу из файла дампа базы данных. На помощь придет sed. Предположим вам нужно восстановить таблицу my_table, тогда выполняем:

sed -n -e '/DROP TABLE.*`my_table`/,/UNLOCK TABLES/p' mysqldump.sql > my_table.sql

В итоге в файл будет записан дамп нужной таблицы.

Найти всех пользователей с UID больше заданного

Опять же, полезный однострочник, для выковыривания списка реальных пользовательских учеток в Linux.
Как правило, в зависимости от дистрибутива, пользовательские аккаунты создаются с UID выше определнного (500, 1000). Те UID что меньше — как правило системные. Данный однострочник выводит пользовательские, с UID выше 500:

cat /etc/passwd| awk -F ":" '$3 > 500 {print $0}'

Массовое обновление serial в зонах DNS bind.

Сегодня быстрый пост. Из серии, чтобы не забыть.
Недавно переживали перенос ДНС. Перенос был достаточно сложный, с консолидацией трех ДНС серверов в один и переезд с bind на PowerDNS. Но сейчас не об этом. Просто однострочник на sed для обновления serial в большом количестве зон bind:

sed 's/[0-9]\{10\}/2012071400/g' ./*

Данный однострочник заменит все 10-ти значные числа, на текущий номер зоны, который, напомню, по стандарту должен состоять из 10 цифр.
4 цифты — год, 2 цифры — месяц, 2 цифры день и последние две цифры номер изменения за день.
Есть подводный камень в использовании sed на FreeBSD. По умолчанию, с BSD поставляется BSD-sed, что логично, ибо BSD. Но большинство примеров в сети могут не работать или работать неправильно, ибо написаны под GNU версию SED. Решается установкой из портов gsed. Как вариант, можно попробовать изучить 2 версии sed, GNU и BSD вариант, но лично я особого смысла не вижу.

cd /usr/ports/textproc/gsed
make && make install

Ну, и соответсвенно запускается

gsed 's/[0-9]\{10\}/2012071400/g' ./*

Вот такая вот заметочка…

Мониторниг VirtualBox c Nagios

Добрый день читатель.

Сегодня я расскажу о своем опыте мониторинга виртуальных машин VirtualBox с Nagios под OS Ubuntu Linux 10.10.

Задача

Обеспечить проверку наличия запущенного окружения VirtualBox в режиме Headless на Ubuntu с помощью существующей системы мониторинга Nagios. Виртуальныя машина работает на локалку и имеет фейковый IP, поэтому прямой мониторниг хоста из Интернет затруднителен. Прогуглив тему, обнаружил готовый плагин для Nagios check_vbox. Данный плагин написан на bash, и не представляет трудностей для прочтения и понимания. Однако, написан он под версию VirtualBox 4.x. Так же, по всей видимости заточен под CentOS. Для корректной работы в окружении Ubuntu 10.10 и VirtualBox 4.0.x потребовалась легкая доработка напильником. Вот об этом я сейчас расскажу подробнее.
Читать далее

mysqldump — решение проблемы Got error: 29: File ‘./test/test.MYD’ not found (Errcode: 24) when using LOCK TABLES

Столкнулся с проблемой при бекапе сервера БД MySQL.
При попытке дампа базы с помощью:

mysqldump -Q -q -e -A -R --single-transaction --add-drop-table

постоянно получал ошибку: Got error: 29: File ‘./test/test.MYD’ not found (Errcode: 24) when using LOCK TABLES
Дальнейшее исследование вопроса показало, что ошибка возникает при большом количестве таблиц.

Решения два.

1. Увеличить значение open_files_limit
2. Добавить —single-transaction в параметры mysqldump, чтобы получить строку вида:

mysqldump -Q -q -e -A -R --single-transaction --add-drop-table

Блокировка контента через .htaccess

Периодически возникает необходимость заблокировать некоторые URL, часто из за проблем с DMCA и копирастами. Возможность убрать контент физически есть не всегда, например, если URL генерируется поисковым запросом. И вот тут на помощь приходит .htaccess

Примерный код блокировки выглядит следующим образом:

RewriteEngine On
RewriteCond %{QUERY_STRING} .*illegal.* [NC]
RewriteRule .* - [F,L,NC]

Таким образом, блокируются любые URL содержащие подстроку illegal.

Как удалить плагин поломавший wordpress?

Оказался в ситуации когда несовместимый плагин поломал WordPress инсталляцию. Админка не грузится, homepage лежит с ошибкой. Лечится так:

1. Подключиться к серверу по FTP/SSH

2. Найти каталог /wp-content/plugins а корне вашего сайта.

3. Удалить каталог с поломанным плагином. Каждый плагин лежит в отдельном каталоге.

4. На данном этапе блог и страница должны быть доступны. Сообщение в админке, о том что плагин был деактивирован, посколку не найден каталог плагина можно смело игнорировать.