ipset в CentOS
CentOS отличается некоторой консервативностью в версиях установленного ПО, что иногда приводит к проблемам с установкой нужной программы, не исключением стал и ipset. › Прочитать
Разработка сетевых программ на Perl
Очень толковая книга! Перед тем, как начинать писать что-то на perl для сети, советую, прочтите эту книгу. Поверьте, число граблей, на которые вы наступите сократиться в разы.
Написана понятным и легко читаемым язык, что также немало важно. Часто читая в метро отвратительно написанную техническую книгу, ловил себя на том, что уже как минимум полстраницы не понимаю, что читаю и да и общее состояние мозга близко ко сну. С этой же книгой спать не хочется!
Особенно интересны главы о написании собственных TCP серверов. Очень подробно и на пальцах рассказывается про основные подходы к обработке нескольких одновременных клиентских запросов: fork, prefork, потоковый и мультиплексный. Причем дается не только пример кода, но и хорошая теоретическая база.
Ссылка на OZON:
Разработка сетевых программ на Perl
Официальное руководство по подготовке к сертификационным экзаменам CCENT/CCNA
Сразу скажу, книги из серии must read для любого IT-ка, который хоть как-то сталкивается с сетями, т.е. наверное для всех.
Базовая часть по устройству сетей очень хорошо прочищает мозги и вообще способствует пониманию темной стороны силы. Все написано понятным языком с кучей примеров и пояснений. В принципе этих двух книг и GNS3 хватает для самостоятельной подготовки к сертификации CCNA. Если же оборудование cisco не входит в круг ваших интересов, то все равно первая часть ICND1 на мой взгляд лучше всего рассказывает про основы сетей, маршрутизации и о типах сетевого оборудования. При вдумчивом прочтении любые вопросы на собеседованиях по tcp/ip или примеры tcp сессий, пойманных tcpdump, перестают быть чем-то сложным и непонятным.
После прочтения англоязычной версии, заметил, что местами страдает русский перевод. Но на качество передаваемых знаний это почти не влияет.

Ссылки на OZON:
ICND1
ICND2
Ссылки на AMAZON:
ICND1
ICND2
Resize partition in FreeBSD with growfs
It’s hard to say, which partition will grow more during system work at installation time. So in one good day nagios will start alerting you about space shortage! Nowadays it’s not topical problem, but it could happen, as it was with me. › Прочитать
Изменение размера партиции в FreeBSD через growfs
Иногда при установке системы не удается предугадать, какие разделы будут расти больше, а какие меньше и в один прекрасный день nagios начинает орать о нехватке места. Вообще задача встречается все реже, так как диски все больше да и все все чаще создается они большой /. Но вот так случилось, что я с ней столкнулся. › Прочитать
mtree на страже вашей FreeBSD
К сожалению в любом программном обеспечение есть уязвимости и дыры, который могут использовать хакеры в свои целях. С момента выхода обновления или security патча до момента исправления в вашей ОС может пройти какое-то время, т.е. это потенциальная возможность получить управление ваши серверов для злоумышленника, который может оставить закладки для будущего использования даже после того, как вы все исправите. Например он может заменить файл su или sudo, даже ps вместе ls могут стать смертельно опасными! Для защиты нужно отслеживать состояние системных файлов (владельцы, права, размер, хеши и т.п.)!
Tripwire – достаточно сложный и тяжелый продукт, конечно можно поставить из портов, но в FreeBSD уже есть утилита, которая прекрасно справится с поставленной задачей. › Прочитать
Генерация случайного числа в sh
Для Linux проблема получения случайного числа в скрипте решается переменной $RANDOM, которая специфична для bash и ряда других оболочек. Для FreeBSD с sh все несколько сложнее. Есть несколько решений, например в awk есть функция rand(). Но работа с awk мне не понравилась, так что пойдем другим путем. Получилось так, что мне нужно было получить число из промежутка от 1 до 3. Эту задачу и будем решать:
get_random_number()
{
local upper=3
local lower=1
local random=`/usr/bin/head -n 1 /dev/random | cksum | cut -f1 -d" " | sed 's/^.*\([0-9]\).*/\1/'`
if [ $random -le $upper ] && [ $random -ge $lower ]; then
echo $random
return 0
else
get_random_number
fi
}
/dev/random генерирует для нас произвольные байты, далее подсчитывается их cksum, из него берем одну цифру. Если попадает в нужный диапазон – выходим, если нет запускаем функцию еще раз.
Как легко запомнить диапазоны разных классов IP сетей!
Для определения класса сети нужно смотреть на первый октет и помнить диапазон. А можно поступить проще!
Сети А класса: 0 – 127.
Или запоминаем, что в битовом исполнении сети класса А всегда выглядят так 0XXXXXXX.
Сети В класса: 128 – 191.
Или запоминаем, что первый октет всегда начинается на 10XXXXXX.
Сеть C класса: 192 – 223.
Или запоминаем, что первый октет 110XXXXX.
jot и seq или как упростить себе работы с циклами
jot (FreeBSD)
seq (Linux)
две простые утилиты для работы с последовательностями, прекрасная альтернатива замены for в shell скриптах.
› Прочитать
Как посмотреть окружение запущенного процесса?
Иногда нужно подсмотреть окружение запущенного процесса, для этого есть несколько способов и утилит.
Linux:
cat /proc/PID/environ
Solaris:
pargs -e PID
FreeBSD:
mount -t procfs none /proc
ps ewwwp PID
Общий подход для всех UNIX систем:
gcore PID
получим core файл
string core.PID