Как извлечь отдельную таблицу из 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}'

grep — сравнение двух файлов и вывод несовпадающих строк

Нашел архиполезную опцию grep.

Задача: сравнить два текстовых файла-списка, и выдать все строки, которые присутствуют только в одном из файлов.

Решение: grep -f ./file1 -vFx ./file2

Получаем на выходе все строки из файла file2, которых нет в file1. Строки которые есть в file1 не выводятся, соответственно.

Массовое обновление 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' ./*

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

Настройка XEN 4.1 с поддержкой LibVirt на CentOS 6

Сегодня мы будем запускать XEN 4.1 под CentOS/RHEL 6. RedHat как известно перестала включать поддержку Xen в свои ОС начиная с ветки RHEL6, продвигая KVM как фирменную технологию виртуализации. Надо сказать, что во первых KVM на данном этапе не вполне подходит для продакшена, а во вторых многие компании тесно интегрированы с Xen, и менять гипервизор не всегда удобно или даже невозможно.
Итак, отсюда задача, все же установить свежий Xen 4.1 на не менее свежую CentOS 6.2. Я не буду вдаваться в подробности, расписывая откуда и что берется, а лишь приведу шаги, выполнив которые у вас будет рабочий XEN на вашем RHEL6-based дистрибутиве. Поехали. Читать далее

Установка eAccelerator на Debian Squeeze

В репозиториях Debian отсутствует eAccelerator, по религиозным лицензионным соображениям. Официально рекомендуется использовать APC, однако eAccelerator привычнее мне и клиентосам. Будем ставить. Ниже изложен вест процесс. Читать далее

Мониторниг 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

CentOS: Установка Ruby on Rails + rvm + passenger + apache

Появилась необходимость установить RoR на CentOS. Поскольку в стандартных репозиториях CentOS ruby не первой свежести, пришлось изгаляться. Для установки нужной версии ruby будем использовать rvm (Ruby version manager). Читать далее

Настройка PPTP VPN сервер под CentOS с поддержкой iPhone & iPad

Есть у меня подписка на полезный online-tv сервис NetFlix. Сервис позволяет смотреть массу фильмов онлайн с большого количества устройств, PC, PS3, Android, iPad/iPhone — все бы ничего, но сервис работает только для их Соединенных Штатов. Отсюда возникла необходимость быстренько настроить PPTP VPN сервер на американьском VPSе. Ключевой особенностью, явлеется то, что для корректной работы с iPhone/iPad требуется несколько неочевидных настроек. Итак, поехали.
Читать далее