Как извлечь отдельную таблицу из 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 не выводятся, соответственно.

Тестирование факса.

Давеча настраивал факс систему под Asterisk. Встал вопрос тестирования собственно отправки и приема факсов, не имея под рукой факс-аппарата и товарища, который мог бы отправить тестовый факс. Вот что нарылось на просторах интернета Читать далее

Mac OS X Mountain Lion: Решение проблемы WiFi на MacBook Air 2011

Как и многие, столкнулся с неприятной проблемой, после обновления своего Air 2011 года до Mountain Lion.
Ноут перестал подключаться к сетям WiFi. Даже если подключение происходило, на иконке WiFi подключения горел желтый восклицательный знак, типа нет соединения с Интернет. Хотя соединение на самом деле было. Однако, связь рвалась каждые 10 минут, при том что точка доступа стояла рядом не столе. В общем не работа, а бардак.
Решение странное. Было обнаружено на одном из забугорных форумов. Объяснить почему это работает, я на данный момент не берусь. Слава Богу работает… Собственно решение: Читать далее

Массовое обновление 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 дистрибутиве. Поехали. Читать далее

curl — исправляем ошибку сертификата в CentOS 5

Столкнулся с проблемой. При попытке выполнить:

curl 'https://github.com'

Получил в плечи следующий вывод:

curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). The default
 bundle is named curl-ca-bundle.crt; you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.

Вариант обхода проблемы запуск команды с параметром -k :

curl -k 'https://github.com'

Однако при использовании изнутри скриптов, это может быть не всегда удобно. Решением является установка свежего ca-bundle сертификата с сайта curl. Для CentOS это будет выглядеть следующим образом:

mkdir /root/backup
cp /etc/pki/tls/certs/ca-bundle.crt /root/backup/
curl http://curl.haxx.se/ca/cacert.pem -o /etc/pki/tls/certs/ca-bundle.crt