Сколько же памяти занимает ядро?
28.09.2009
Несколько скриптов-однострочников для быстрого взгляда на то, как используется память в Solaris:
Физическая память:
kstat -n system_pages | nawk 'BEGIN{ "/usr/bin/pagesize" | getline pgsize ; } /physmem/ { print "Physical memory = " $2 * pgsize/1073741824 "Gb"}'
Память ядра:
kstat -n system_pages | nawk 'BEGIN{ "/usr/bin/pagesize" | getline pgsize ; } /pp_kernel/ { print "Kernel memory = " $2 * pgsize/1073741824 "Gb"}'
Разделяемая (shared) память:
ipcs -mb | awk '/^m/ {sm=sm+$7}END{ print "Shared memory " sm/1073741824 "Gb"}'
Свободная память:
kstat -n system_pages | nawk 'BEGIN{ "/usr/bin/pagesize" | getline pgsize ; } /freemem/ { print "Free memory = " $2 * pgsize/1073741824 "Gb"}'
И еще, если присмотреться, то можно увидеть, как в awk можно выполнить команду shell и прочитать ее вывод ;)
Updated: 29.09.2009/Добавлен однострочник для свободной памяти. Вообщем-то получился не плохой скриптик — все однострочники в одном файле:
solarismem
Пример вывода:
# ./solarismem.sh
Physical memory = 31.2031Gb
Kernel memory = 3.29826Gb
Shared memory 12.9697Gb
Free memory = 13.5944Gb
И снова grep
05.08.2009
Иногда есть данные и шаблоны, и чтобы выбрать данные — обычно используют цикл, в котором грепают по шаблону. Но тут недавно внимательно перечитал man grep и нашел интересный момент ;) Можно в одну команду вывести список строк, которые попадают (или не попадают) под шаблон
cat data.txt
111
222
333
112
122
233
444
cat template.txt
2
1
/usr/xpg4/bin/grep -f template.txt data.txt
111
222
112
122
233
Или не попадают
/usr/xpg4/bin/grep -v -f template.txt data.txt
333
444
Для чего это можно использовать? Ну например, список новых томов в VxVM, список новых файлов в каталоге — удобно динамически формировать список и сравнивать его со старым списком.
Старый дедовский способ достаточно быстро забакапить файловую систему ufs.
Способ поднятый из манов ;) Решил запостить, чтобы легче было искать.
Но и вдруг кому пригодится? ;)
Создание клона загрузочного диска в VxVM
06.05.2009
Ну и в продолжении предыдущей статьи добавляю сюда еще и скрипт для создания клона загрузочного диска в 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"
Создание клона загрузочного диска в SVM
24.04.2009
О необходимости живого и загружабельного клона root-диска, надеюсь, никому объяснять не надо.
Помогает он очень часто, после неудачных патчей, после пользовательских факапов и прочих некайфов, которые могут произойти как по ошибке, так и в процессе плановых работ.
Компания Sun Microsystems (Ныне принадлежащая Oracle) настойчиво рекомендует использовать Solaris Volume Manager для загрузочных устройств. Он достаточно прост в управлении и стоит ноль рублей ноль копеек.
Автором сайта, с моей подачи, был разработан шелл-скрипт, который создает клон рутового диска без особых усилий, нужно только выставить правильные настройки в самом начале скрипта. Скрипт размечает диск, последовательно копирует разделы, чекает их fsck, правит vsftab, пишет деятельность в лог.
Скрипт проверен лично мной на живой системе и отдан в продуктив.
Качаем скрипт makeclonesvm
Сравнить содержимое файлов в каталогах
27.02.2009
На днях пришлось анализировать два Sun Explorer-а, собранных с одного сервера с периодом в полгода. Так как ничего unix-ового под рукой не было, то попробовал с ходу найти программку, которая сравнивает 2 каталога и выводит отсутствующие файлы и сообственно различия. Вот… сходу бесплатных утилит не нашлось, пришлось написать на perl. Итак, скрипт, который
- находит файлы, отсутствующие во втором каталоге
находит файлы, отличающиеся по дате модификации и размеру
находит файлы, отличающиеся по содержанию
Так как написан на perl, то под Windows требует установленного perl (ActivePerl, например) или можно скачать скомпилированный бинарник.
Шпаргалки по 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 вычислить md5 файлика, если не установлена утилитка md5sum (обычно идет в состве gnu textutils)?
На это есть стандартная утилитка digest:
$ digest -v -a md5 /usr/bin/vi
md5 (/usr/bin/vi) = e4e3588c5212903847c66d36b1a828a5
Также доступны и другие алгоритмы:
$ digest -l
sha1
md5
sha256
sha385
sha512
И снова о команде find и напоминалке опций
12.11.2008
Напоминалка опций unix команды find теперь и на русском языке. Удобный online интерфейс поможет вспомнить самые нужные опции и построить свою команду для поиска файлов.
Как и было обещано, перевел свой скриптик на русский язык, добавил немножко ссылок на русскоязычные документы по синтаксису команды, исправил несколько ошибок.
Update: 2013.08.02 Переехал на новый домен, изменился интерфейс и главное — напоминалка опций не только для find, но и для grep, fuser, итд