Ну пароли типа 123456 могут себе позволить только руты, а все остальные пусть мучаются, записывают на бумажках и приклеивают их на монитор ;) Ну вот, вообщем-то, генератор паролей. Условия: 8 символов, обязательно один символ из верхнего регистра, один из нижнего, один спецсимвол.
Пример работы:
RyCnY7Z#
osM,s7I{
Hx0a@f`7
IM(1Tl|S
P[\QKNa0
g8*`xHUp

Закачать password_gen.pl

При выполнении сложных работ, в результате которых могут быть потеряны данные или нарушена работа приложений можно воспользоваться отключением «подзеркала» томов в VxVM, в случае проблем можно затем быстро подняться с оторванного подзеркала. В случае, когда объемы данных значительны, а окно для выполнения работ ограничено, то восстановление из бэкапа может привести к нарушению SLA. А такой способ является простым, быстрым и надежным ;)
Итак, пусть у нас есть дисковая группа DG01, каждый том имеет по два зазеркалированных плекса. Плексы располагаются на 2 массивах (ARRAY_01 и ARRAY_01) и сабдиски имеют в своем названии эти имена (на самом деле это не обязательно, это нужно лишь чтобы отгрипать плексы, а как вы их разделите — это ваше дело, хоть руками ;)

1. Для начала убедимся, что у нас все тома имеют больше одного плекса и они все активны:
vxprint -g DG01 -v -F "%name" -e "v_pl_num < 2 "
vxprint -g DG01 -p | grep DISABLE

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

Пришлось разбираться с кучей wwn-устройств, а так как каждый вендор предпочитает выводить в том виде, каком ему удобнее, то по ходу прилось делать переводчик из одного вида в другой.
В результате получился вот этот переводчик. Позволяет преводить из вида типа 00:aa:bb:cc или 00aabbcc в друг друга, в верхний или нижний регистр, а также в сокращенную форму без ведущих нулей. Помогает при поиске совпадений для утилит различных вендоров.

Для тех, кто предпочитает командную строку могу предложить вариант на perl:

cat | perl -n -e 's/([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])/$1:$2:$3:$4:$5:$6:$7:$8/gi; print'

На днях пришлось анализировать два 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 можно использовать «link aggregations» или IPMP. Ниже по тексту — шпаргалка по «link aggregations».

В Solaris 10 появилась возможность объединять физические интерфейсы в один логический интерфейс (link aggregations). Tочнее, эта возможность была и ранее, но использовался дополнительный продукт — SunTruncking, теперь эта возможность есть по умолчанию. Для чего это нужно:

  • Увеличивается пропускная способность
  • Load balancing
  • Повышается надежность за счет резервных сетевых интерфейсов
  • Упрощается администрирование
  • Уменьшается пул необходимых ip-адресов

Необходимые условия для организации link aggregations:

  • сетевые коммутаторы должны поддерживать link aggregation control protocol (LACP). Смотрите документацию по по вашим коммутаторам.
  • на сервере могут объединяться интерфейсы с поддержкой GLDv3. Сейчас это интерфейсы xge, e1000g, и bge. (здесь список более полный)
  • все интерфейсы должны быть в full duplex mode и работать с одной скоростью.
  • переменная obp local-mac-address? должна быть установлена в true ( # eeprom local-mac-address?=true )

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

Одностраничные шпаргалки по vxvm и vxfs. Датированы 2002 годом, но актуальность не потеряли ;)

Quick references:

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

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

Update: 2013.08.02 Переехал на новый домен, изменился интерфейс и главное — напоминалка опций не только для find, но и для grep, fuser, итд