mysql_secure_installation cвоими руками во FreeBSD
В большинстве пакетов mysql-server под Linux входи хороший скрипт mysql_secure_installation, которого очень не хватает в порте mysql во FreeBSD. Сделаем все своими руками!
› Прочитать
Как узнать версию CentOS
Для меня, старого FreeBSD-ка, было несколько неожиданно, что команда uname мне не помогла определить версию системы…
% uname -a Linux servername.ru 2.6.18-164.15.1.el5.028stab068.9 #1 SMP Tue Mar 30 18:07:38 MSD 2010 x86_64 x86_64 x86_64 GNU/Linux %
Т.е. конечно про ядро мне все тут рассказали, но вот какая версия CentOS? Загадка…
Попробовал иначе:
% cat /proc/version Linux version 2.6.18-164.15.1.el5.028stab068.9 (root@rhel5-build-x64) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Tue Mar 30 18:07:38 MSD 2010 %
Уже лучше, теперь я знаю, что уши CentOS торчат из указанной версии RedHat… Хм, все равно не то!
Вот он, правильный вариант!
% cat /etc/redhat-release CentOS release 5.4 (Final) %
Вывод сообщения в stderr из shell скрипта
Очень полезная вещь – перенаправление потоков вывода. С ее помощью в shell скриптах можно сделать многое, в том числе и вывод сообщений в stderr. Пример простого скрипта ниже:
#/bin/sh
DEBUG=0
print_debug()
{
if [ "x$DEBUG" != "x0" ]; then
echo $* >&2
fi
}
print_debug hello world
Переменная DEBUG, если не равно 0, указывает, что нужно выводить сообщения в функции print_debug. Обычное echo выводи строку со всеми аргументами функции (переменная $*) в stdout, которые перенаправляется в stderr ( >&2 ).
FreeBSD-SA-10:04.jail FreeBSD-SA-10:05.opie FreeBSD-SA-10:06.nfsclient
Все три уязвимости достаточно опасны. Особо нужно отметить OPIE уязвимость, она существует прямо из коробки, а две других уязвимости требуют некоторых нестандартных изменений системы, таких как vfs.usermount или изменения флагов запуска jail. Далеко не все сервера им будут подвержены, и для них есть workaround. Однозначно готовимся к патчам системы!
Пишем свой плагин nagios
Плагины – это одна из самых сильных сторон системы мониторинга nagios. Для мониторинга базовых служб и параметров системы в комплекте установки уже есть большой набор плагинов. Если нужного плагина среди базовых нет, то можно поискать на сайтах exchange.nagios.org и monitoringexchange.org. Или написать свой плагин.
› Прочитать
Запись сообщений в syslog из shell скрипта
Логи в скриптах можно вести несколькими способами, один из самых простых – записывать новые сообщения в какой-то файл. Но мне такой подход кажется неправильным. В системе уже есть специальный инструмент для ведения логов syslog. Вот его и стоит использовать!
Для добавления сообщений в syslog есть утилита logger. В принципе может писать сообщения и в отдельный файл. Напишу небольшую функцию, которую можно будет добавлять в любой скрипт для ведения логов.
add_log_message ()
{
local logger='/usr/bin/logger'
local tag='My Script'
local port=514
local host=localhost
local facility='user'
local level='notice'
local message=$1
if [ -z $message ]; then
return 1
else
$logger -t "$tag" -p ${facility}.${level} -P $port -h $host "$message"
if [ "x$?" != "x0" ]; then
return 2
fi
fi
}
add_log_message 'Hello world'
Опция -t задает TAG, фактически TAG можно использовать для идентификации источника сообщения. Так же logger умеет отправлять сообщения syslog-у на другом сервер, т.е. легко можно организовать сбор всех типов логов на один сервер.
logger -P 514 -h logger.domain.ru 'Hello World'
По умолчанию logger пишет все сообщения в facility user с приоритетом notice, но это можно поменять используя ключ -p:
logger -p cron.warning 'Hello world'
Быстрый способ создать большой файл при помощи dd
Иногда для тестирования нужно создать какой-то большой файл. Для этого чаще всего применяют утилиту dd.
Файл создается обычно так:
dd if=/dev/zero of=/data/bigfile count=1024 bs=1024k
Получим файл размером в 1GB, причем dd честно 1024 раза запишет нули блоками по 1МБ. С 1Гб можно и потерпеть, но как быть с 10ГБ или 100ГБ? Ждать долго, да и диски жалко. Есть более быстрый и простой способ – опция seek. Смысл ее в том, что запись dd начнет только после нахождения определенного номера блока с начала вывода из if. Если я правильно понимаю физику процесса, то происходит это так: dd создает файл, ждет пока пройдет N блоков, указанных в seek, после чего начинает записывать блоки, указанные в count. Получается “пустой” файл большого размера.
dd if=/dev/zero of=/data/bigfile count=1 bs=1024k seek=`expr 1024 * 10`
Мгновенно получаем файл, размером в 10ГБ!
Правильный и красивый способ добавлять модули ядра в автозагрузку в CentOS 5.X
Наткнулся на блог с красивым и правильным методом добавления модулей в автозагрузку centos 5.x.
› Прочитать
ipset в CentOS
CentOS отличается некоторой консервативностью в версиях установленного ПО, что иногда приводит к проблемам с установкой нужной программы, не исключением стал и ipset. › Прочитать
Разработка сетевых программ на Perl
Очень толковая книга! Перед тем, как начинать писать что-то на perl для сети, советую, прочтите эту книгу. Поверьте, число граблей, на которые вы наступите сократиться в разы.
Написана понятным и легко читаемым язык, что также немало важно. Часто читая в метро отвратительно написанную техническую книгу, ловил себя на том, что уже как минимум полстраницы не понимаю, что читаю и да и общее состояние мозга близко ко сну. С этой же книгой спать не хочется!
Особенно интересны главы о написании собственных TCP серверов. Очень подробно и на пальцах рассказывается про основные подходы к обработке нескольких одновременных клиентских запросов: fork, prefork, потоковый и мультиплексный. Причем дается не только пример кода, но и хорошая теоретическая база.
Ссылка на OZON:
Разработка сетевых программ на Perl