Недавно пришлось анализировать проблемы с переездом ресурсной группы в кластере. При том, что клиент умудрился удалить большую часть логов. Вообще, sun cluster помимо /var/adm/messages пишет логи еще в /var/cluster/logs . Но логи туда пишутся в закрытом бинарном формате. Вот, на днях в блоге у Dongsu нашел полезную утилитку анализа этих eventlog. Утилитка, к сожалению только под sparc. Думаю, что логи «sun cluster x86» сможет прочитать тоже.
Читать полностью »

Маленькие полезные командочки для поиска:

Поиск по содежимому файлов grep -l, например, найти строку «10.1.2.3» во всех файлах в каталоге /etc :

# grep -l 10.1.2.3 /etc/*

Поиск по регулярному выражению выполняет команда egrep. Например: найти, игнорируя регистр (опция -i) в выводе команды ls  все файлы, начинающиеся с ‘t’ или содержащие ‘Ze’:

# ls | egrep -i '^t|Ze'
gconfd-zenoss
mapping-zenoss
orbit-zenoss
trtmpP6aOeP
trtmpZ6aWeP

Найти в файлах /etc/pa* те, которые содержат строку ROT или ROOT, или ROOOT итд, игнорируюя регистр:

# egrep -li '^RO+T' /etc/pa*
/etc/passwd

Пропустить все пустые строки:

# cat /tmp/file.txt | grep -v ^$
# cat /tmp/file.txt | grep -v .

Смотри также Регулярные выражения в unix.

При добавлении новых загрузочных устройств или нового оборудования (dynamic reconfiguration, е-мое) — можно обновлять список алиасов устройств не выходя в {ok} boot prompt и соответственно без перезагрузки:

# eeprom nvramrc | sed 's/nvramrc=//' > /tmp/nvramrc.tmp
# vi /tmp/nvramrc.tmp
Редактируем список устройств

Получиться файл типа :

# cat /tmp/nvramrc.tmp
devalias cdrom /ssm@0,0/pci@19,600000/pci@1/scsi@2/disk@6,0:f
devalias disk /ssm@0,0/pci@19,600000/pci@1/scsi@2/disk@0,0:a
devalias mirrordisk /ssm@0,0/pci@1d,600000/pci@1/scsi@2/disk@0,0:a

Применяем новый список:

eeprom "nvramrc=`cat /tmp/nvramrc.tmp`"
Ну и конечно, проверить - включено ли использование nvramrc:
eeprom | grep use-nvramrc
use-nvramrc?=true

[ Solaris ] [ Linux ] [ HP-UX ] [ Tru64 ]

Solaris

Список всех интерфейсов ifconfig -a
Добавить «виртуальный» интерфейс (alias) ifconfig hme0:1 plumb
ifconfig hme0:1 192.168.100.100 \ netmask + broadcast + up
Удалить «виртуальный» интерфейс (alias) ifconfig hme0:1 unplumb
Восстановление параметров после перезагрузки echo ‘192.168.100.100 myhostname1’\ >> /etc/hosts
echo ‘myhostname1’ > /etc/hostname.hme0:1
Маска подсети cat /etc/netmasks
Роутер по умолчанию cat /etc/defaultrouter

Linux

Список всех интерфейсов ifconfig -a
Добавить «виртуальный» интерфейс (alias) ifconfig eth0:1 192.168.100.100 up
ifconfig eth0:1 192.168.255.254 \
netmask 255.255.255.0 broadcast 192.168.255.255 up
Удалить «виртуальный» интерфейс (alias) ifconfig eth0:1 down
Восстановление параметров после перезагрузки cd /etc/sysconfig/network-scripts
cp ifcfg-eth0 ifcfg-eth0:1
vi ifcfg-eth0:1
Маска подсети Указывается в настройках интерфейса
cat /etc/sysconfig/network-scripts/ifcfg-eth0
Роутер по умолчанию cat /etc/sysconfig/network

HP-UX

Список всех интерфейсов netstat -in
ifconfig lan0:30
или аналог ‘ifconfig -a’:
# netstat -in | tail +2 | awk ‘{print «ifconfig «$1}’ | sh
Добавить «виртуальный» интерфейс (alias) ifconfig lan0:1 plumb
ifconfig lan0:1 192.168.100.100 up
Удалить «виртуальный» интерфейс (alias) ifconfig lan0:1 down
ifconfig lan0:1 0.0.0.0
Восстановление параметров после перезагрузки cat /etc/rc.config.d/netconf
Маска подсети cat /etc/rc.config.d/netconf
Роутер по умолчанию cat /etc/rc.config.d/netconf

Tru64

Список всех интерфейсов ifconfig -a ifconfig -l
Добавить «виртуальный» интерфейс (alias) ifconfig ee0 alias 192.168.196.196/24
Удалить «виртуальный» интерфейс (alias) ifconfig ee0 -alias 192.168.196.196 abort
Восстановление параметров после перезагрузки echo ‘ifconfig ee0 alias 192.168.196.196/24’\
>> /etc/inet.local
Маска подсети cat /etc/rc.config
Роутер по умолчанию cat /etc/routes

[ Solaris ] [ Linux ] [ HP-UX ] [ Tru64 ]

Иногда в Solaris возникает необходимость определить, что за процесс висит на порту. Как то мне попадался скриптик на эту тему — whohassocket.sh . Выводил все в страшном виде ;) Потом попались два скриптика на sun.com — кривые (эти скрипты не различают последние цифры в номере порта ): первый, второй

Пришлось переписать ;)
Читать полностью »

При множественных изменениях конфигурации устройств ввода-вывода серверов Sun, в том числе с помощью динамической реконфигурации, состояние файла /etc/path_to_inst не соответствует реальному состоянию оборудования. Это может вызывать проблемы типа — не загружается ОС, бесконечный цикл перезагрузки, итд. В таких ситуациях необходимо пересоздать /etc/path_to_inst . В наличии 2 метода. Второй более правильный — не спрашивает ничего, просто пересоздает файлик при перезагрузке:
Читать полностью »

Для solaris:

$ pkgchk -l SUNWdoc | grep "Pathname:" | more

Как ввести символ табуляции в командной строке? Волшебная комбинация —

Ctrl-v затем Ctrl-i

Пример:

$  cat /tmp/syslog.conf  | egrep -v -e '^[ ^v^i]*#' | sed 's/ /^v^i/g'

ЗЫ Естественно, замените ^v^i соответствующими нажатиями клавиш ;)

Данные метод используется обычно при резервном копировании на удаленную машину.

Сделать бэкап tar-ом:
Читать полностью »

Малоизвестные, но полезные команды для работы с файловыми системами в solaris.

/usr/sbin/devnm  name [name...]

выводит устройство, на котором смонтирована файловая система, указанная в аргументе.

$ devnm / /var
/dev/md/dsk/d10 /
/dev/md/dsk/d30 /var

/usr/sbin/fstyp [-v] special

выводит тип файловой системы устройства special. Полезная команда, чтобы узнать метод оптимизации файловой системы, какой процент места зарезервирован и может быть использован только root-ом.

# fstyp -v /dev/md/dsk/d30 | grep minfree
minfree 10%      maxbpg  2048    optim   time

Исправить метод оптимизации файловой системы и процент резервированного места можно командой /usr/sbin/tunefs:

# tunefs -o space /dev/md/rdsk/d10
# tunefs -m 1 ; # оставить 1% зарезервированным для root-а