Ну и в продолжении предыдущей статьи добавляю сюда еще и скрипт для создания клона загрузочного диска в VxVM. Таким образом, если загрузочные диски под веритасом, можно пользоваться этим скриптом. В основе скрипта лежит блюпринт сановский Toward a Reference Configuration for VxVM Managed Boot Disks. Но скрипт творчески переработан в части выбора томов для зеркалирования.
Для инициализации нужно в VxVM инициализировать диск, и назвать его clone.
Ну например, так:

vxdisksetup -i c6t0d0s2
vxdg -g rootdg adddisk clone=c6t0d0s2

Для выбора томов, для зеркалирования на клон-диск, следует поправить в скрипте секцию
VOLUMES="rootvol:0:clone-rootvol:0x01:0x00 \
swapvol:1:clone-swapvol:0x03:0x01 \
var:5:clone-var:0x07:0x00 \
coredump:6:clone-coredump:0x00:0x00"

Качаем скрипт vxclonedisk

О необходимости живого и загружабельного клона root-диска, надеюсь, никому объяснять не надо.

Помогает он очень часто, после неудачных патчей, после пользовательских факапов и прочих некайфов, которые могут произойти как по ошибке, так и в процессе плановых работ.

Компания Sun Microsystems (Ныне принадлежащая Oracle) настойчиво рекомендует использовать Solaris Volume Manager для загрузочных устройств. Он достаточно прост в управлении и стоит ноль рублей ноль копеек.

Автором сайта, с моей подачи, был разработан шелл-скрипт, который создает клон рутового диска без особых усилий, нужно только выставить правильные настройки в самом начале скрипта.  Скрипт размечает диск, последовательно копирует разделы, чекает их fsck, правит vsftab,  пишет деятельность в лог.

Скрипт проверен лично мной на живой системе и отдан в продуктив.
Качаем скрипт makeclonesvm

На днях пришлось анализировать два Sun Explorer-а, собранных с одного сервера с периодом в полгода. Так как ничего unix-ового под рукой не было, то попробовал с ходу найти программку, которая сравнивает 2 каталога и выводит отсутствующие файлы и сообственно различия. Вот… сходу бесплатных утилит не нашлось, пришлось написать на perl. Итак, скрипт, который

    находит файлы, отсутствующие во втором каталоге
    находит файлы, отличающиеся по дате модификации и размеру
    находит файлы, отличающиеся по содержанию

Так как написан на perl, то под Windows требует установленного perl (ActivePerl, например) или можно скачать скомпилированный бинарник.

Читать полностью »

Очень часто смотришь на текст какого-нибудь awk или sed скрипта и понимаешь, что ничего в нем не понимаешь ;) Куча каких-то непонятных предопределеннх переменных, неадекватный синтаксис… Чтобы быть во всеоружии — нужно под рукой всегда иметь шпаргалку ;)
Очень полезные шпаргалки по awk и sed. Взяты отсюда.

Ну и в догонку — отличная подборка односточников на awk [локальная копия]. В комплекте со «шпаргалкой по AWK» получается отличный набор продвинутого awk-программера ;)

Достаточно часто приходится генирировать последовательности в shell. Например, создать 10 файлов с разными именами, или переименовать, или добавить в vxvm диски, присвоив им новые имена, или отформатировать последовательно диски с командной строки на дисковом массиве, ну и т.д. Самый простой и правильный способ — это использовать команду seq, но к сожалению, ее в solaris по умолчанию нет.
Итак, несколько примеров, как напечатать цифры от 1 до 10:

Эти генерилки работают везде
$ i=0; while [ $i -lt 11 ]; do echo $i; i=`expr $i + 1` ; done
$ for i in  1 2 3 4 5 6 7 8 9 10; do echo $i; done
$ perl -e 'print "$_\n" foreach(1..10)'

Эта работает только в bash
$ for (( i = 1; i < 11; i++ )); do echo $i; done

а эта только в linux
$ seq 1 10

Как в Solaris вычислить md5 файлика, если не установлена утилитка md5sum (обычно идет в состве gnu textutils)?
На это есть стандартная утилитка digest:

$ digest -v -a md5 /usr/bin/vi
md5 (/usr/bin/vi) = e4e3588c5212903847c66d36b1a828a5

Также доступны и другие алгоритмы:

$ digest -l
sha1
md5
sha256
sha385
sha512

Напоминалка опций unix команды find

Напоминалка опций unix команды find теперь и на русском языке. Удобный online интерфейс поможет вспомнить самые нужные опции и построить свою команду для поиска файлов.
Как и было обещано, перевел свой скриптик на русский язык, добавил немножко ссылок на русскоязычные документы по синтаксису команды, исправил несколько ошибок.

Несколько ссылок по регулярным выражениям в unix. Практически все документы на русском языке.

PS Изменено 06.12.2008

Все для блага человека — на коленке написан Find helper — напоминалка основных опций команды find. Позоляет за несколько щелчков мыши набросать команды поиска, а не лазить 20 минут по манам, вспоминая опции.
Пока на английском, но как руки дойдут — будет и на русском. Хотя, мне кажется — там итак все понятно ;)

После некорректного отключения массива от SAN часто плексы переходят в  состояние DISABLED.
Чтобы не чинить руками каждый плекс, можно воспользоваться простым скриптом -
Читать полностью »