Генератор паролей
25.05.2009
Ну пароли типа 123456 могут себе позволить только руты, а все остальные пусть мучаются, записывают на бумажках и приклеивают их на монитор ;) Ну вот, вообщем-то, генератор паролей. Условия: 8 символов, обязательно один символ из верхнего регистра, один из нижнего, один спецсимвол.
Пример работы:
RyCnY7Z#
osM,s7I{
Hx0a@f`7
IM(1Tl|S
P[\QKNa0
g8*`xHUp
Как оторвать зеркало в VxVM?
14.05.2009
При выполнении сложных работ, в результате которых могут быть потеряны данные или нарушена работа приложений можно воспользоваться отключением «подзеркала» томов в 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
12.05.2009
Пришлось разбираться с кучей 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'
Сравнить содержимое файлов в каталогах
27.02.2009
На днях пришлось анализировать два Sun Explorer-а, собранных с одного сервера с периодом в полгода. Так как ничего unix-ового под рукой не было, то попробовал с ходу найти программку, которая сравнивает 2 каталога и выводит отсутствующие файлы и сообственно различия. Вот… сходу бесплатных утилит не нашлось, пришлось написать на perl. Итак, скрипт, который
- находит файлы, отсутствующие во втором каталоге
находит файлы, отличающиеся по дате модификации и размеру
находит файлы, отличающиеся по содержанию
Так как написан на perl, то под Windows требует установленного perl (ActivePerl, например) или можно скачать скомпилированный бинарник.
Хватает ли нам процессорных мощностей?
05.12.2008
Как разобраться, хватает ли нам процессорных мощностей и где тот параметр, который нам укажет, что процессора не тянут те задачи, которые мы им вешаем?
Читать полностью »
Шпаргалки по awk и sed
02.12.2008
Очень часто смотришь на текст какого-нибудь awk или sed скрипта и понимаешь, что ничего в нем не понимаешь ;) Куча каких-то непонятных предопределеннх переменных, неадекватный синтаксис… Чтобы быть во всеоружии — нужно под рукой всегда иметь шпаргалку ;)
Очень полезные шпаргалки по awk и sed. Взяты отсюда.
Ну и в догонку — отличная подборка односточников на awk [локальная копия]. В комплекте со «шпаргалкой по AWK» получается отличный набор продвинутого awk-программера ;)
Как в shell сгенерировать последовательность
30.11.2008
Достаточно часто приходится генирировать последовательности в 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: объединение сетевых интерфейсов
25.11.2008
Для повышения надежности сетевых соединений в 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
24.11.2008
Одностраничные шпаргалки по vxvm и vxfs. Датированы 2002 годом, но актуальность не потеряли ;)
Quick references:
И снова о команде find и напоминалке опций
12.11.2008
Напоминалка опций unix команды find теперь и на русском языке. Удобный online интерфейс поможет вспомнить самые нужные опции и построить свою команду для поиска файлов.
Как и было обещано, перевел свой скриптик на русский язык, добавил немножко ссылок на русскоязычные документы по синтаксису команды, исправил несколько ошибок.
Update: 2013.08.02 Переехал на новый домен, изменился интерфейс и главное — напоминалка опций не только для find, но и для grep, fuser, итд