Очень часто смотришь на текст какого-нибудь 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. Ниже по тексту — шпаргалка по IPMP.
Читать полностью »

Для повышения надежности сетевых соединений в 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:

Как процессу в Solaris 10 «на ходу» изменить пользовательский UID?
Используйте команду pcred:

# ps -ef | grep sleep
vasya 4088 4081 0 09:50:53 pts/11 0:00 sleep 10000000
# pcred -u 123 4088
# ps -ef | grep sleep
kolya 4088 4081 0 09:50:53 pts/11 0:00 sleep 10000000

PS. Эта команда была и в предыдущих версиях Solaris, но раньше она только выводила информацию о процессе, а начиная с Solaris 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

Быстрые ссылки для быстрой навигации:

Скачать бесплатные программные продукты:

Недавно я затрагивал темы загруженности устройств ввода-вывода Oracle и создания Ram-дисков.
Итак, в системе есть достаточно свободной памяти, менеджер томов — vxvm и есть приложение с высокой нагрузкой по вводу-выводу (например Oracle). А если у нас современный сервер, а Oracle standard edition, то так оно и будет (так как standard edition не может использовать более 2Гб памяти). Такая ситуация часто возникает, например на SAP серверах, когда используются 32-разрядные приложения.
Итак, идея такая:
Читать полностью »

Каким образом можно узнать значения, которые поддерживает драйвер сетевой карты в Solaris и список его свойств ?

Узнать свойства и выставить скорость сетевого интерфейса можно через ndd
# ndd /dev/eri \?
..
link_speed (read only)
link_mode (read only)
adv_autoneg_cap (read and write)
adv_100T4_cap (read and write)
adv_100fdx_cap (read and write)
adv_100hdx_cap (read and write)
adv_10fdx_cap (read and write)
adv_10hdx_cap (read and write)
instance (read and write)
..

instance — это номер драйвера (т.е. для eri1 — instance установить в 1)
Пример — отключить на устройстве eri1 автоопределение скорости порта и включить 10Mb/s

# ndd -set /dev/eri instance 1
# ndd -get /dev/eri adv_autoneg_cap
# ndd -set /dev/eri adv_autoneg_cap 0
# ndd -set /dev/eri adv_100fdx_cap 0
# ndd -set /dev/eri adv_10fdx_cap 1

Ну и посмотреть список свойств:
# kstat eri:1