7zip в Solaris
20.08.2010
Оказывается, что помимо стандартных compress, zip, gzip ,bzip2 в Solaris 10 входит еще и 7zip, что не может не радовать. Chapter 4 What’s New in the Solaris 10 5/08 Release
# 7z -?
7-Zip 4.55 beta Copyright (c) 1999-2007 Igor Pavlov 2007-09-05
p7zip Version 4.55 (locale=C,Utf16=off,HugeFiles=on,256 CPUs)
Solaris format: быстро пролейблить диски
15.06.2010
После добавления новых дисков в Solaris их нужно пролейблить (пример). Обычно это делают руками в команде format, но если дисков много, то это первращается в гемор. Итак, быстрый метод:
# devfsadm
# echo label > /tmp/cmd.txt
# echo quit >> /tmp/cmd.txt
# for i in /dev/rdsk/*s2; do format -f /tmp/cmd.txt $i; done
UPDATE 20100728
Самый простой и быстрый способ:
for i in /dev/rdsk/*s2 ;do echo label | format $i ;done
Ссылки
Первоисточник: Labeling large number of LUNs in Solaris
man format
Прибил файл, а место не освобождается?
21.01.2010
Обычно, когда заканчивается место на файловой системе – ищем растущие файлы (обычно это логи всякие) и удаляем их.
Итак, как правильно удалять файлы? ;)
Проверяем, что этот файл не открыт каким-нибудь процессом:
fuser /dir/filename
Если файл занят, что прибиваем процесс (или делаем корректные действия, чтобы процесс отпустил файл), после этого удаляем.
А что делать, если никто ничего не проверял, файлик грохнули, а вот место не освободилось?
Читать полностью »
Сколько же памяти занимает ядро?
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-программера ;)