Срочно нужно поднять httpd? Ну там отдать на скачивание что-нибудь, простой скрипт толкнуть, для инсталлятора подсунуть диски, да мало ли для чего нужно вэб-сервер?

Запускаем вэб-сервер в одну строку
$ python -m CGIHTTPServer 8000 >/tmp/httpd.log 2>&1 &

Поднимает сервер на порту 8000 с каталога, в котором запущен, исполняет скрипты из каталога cgi-bin и htbin

Посмотреть файлик в виде 16-ричного дампа можно командой od (octal dump)
od -x filename

в 8-ричном виде
od filename

в виде символов
od -c filename

отступить от начала (-j) байт и вывести определенное кол-во данных (-N)
cat filename | od -j 1024 -N 4096 -x > outfile.txt

Пришлось наконец столкнуться на практике с передачей сравнительного большого
снимка ZFS по сети. В учебных материалах и официальной документации сказано, что
для передачи по сети следует использовать команды send\recv в сочетании с ssh
через пайп. На практике же это решение оказывается абсолютно не работоспособным
для больших объемов. Лично у меня скорость передачи уперлась примерно в 8 MB/sec
по гигабитной сети, что привело к тому что за 12 часов скопировалось лишь 300
гигабайт данных.
Что же делать?

Читать полностью »

На серверах c ILOM (это сервера Sun/Oracle T5x40, T3-x, T4-x, X22x0 итд ) можно смотреть и администрировать сообщения fma (Fault Management) как из Solaris (команды fmadm, fmdump, итд), так и из ILOM.  Если вдруг после сбоя система не грузится, то диагностировать можно с системного контроллера:
Читать полностью »

Век живи — век учись ;)

Многие (в том числе я) обычно пользуются самым простым набором команд в vi для удаления и вставки:

dd — удалить строку

yy — скопировать строку в буфер

p — вставить из буфера

итд

Откройте для себя маркер — поставили в любом месте и применили уже изученные команды для вставки и удаления:

ma — поставить маркер

d’a — удалить все от текущей строки до маркера

y’a — скопировать строки от текущей до маркера в буфер

p — вставить из буфера после текущей строки

‘a — перейти к маркеру a

ЗЫ: на самом деле маркеров можно установить 26 — по количеству символов латинского алфавита, например:

ma — поставили один маркер

mb — поставили второй маркер

mc — поставили третий маркер

и соответственно

‘b — перейти к маркеру b

d’c — удалить от текущей строки до маркера с

Ссылки в тему:

Справка по редактору vi

В продолжение этой заметки — та же задача, для x86-й версии соляриса.

Идеология немного другая — вначале создаём MBR-раздел на сыром диске,  и уже в нём нарезаем привычные слайсы.

1. Создаём раздел с помощью fdisk. Raw-устройство в формате cxtxdxpx:

fdisk -B /dev/rdsk/c0t0d0p0

2. Создаём слайс(ы) с помощью format, либо копируем их посредством fmthard. В качестве аргументов нужно уже использовать формат cxtxdxsx:

echo label | format /dev/rdsk/c0t0d0s2
prtvtoc /dev/rdsk/c0t0d0s4 | fmthard -s - /dev/rdsk/c1t0d0s4

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, но если дисков много, то это первращается в гемор. Итак, быстрый метод:


# 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

Обычно, когда заканчивается место на файловой системе — ищем растущие файлы (обычно это логи всякие) и удаляем их.
Итак, как правильно удалять файлы? ;)
Проверяем, что этот файл не открыт каким-нибудь процессом:
fuser /dir/filename

Если файл занят, что прибиваем процесс (или делаем корректные действия, чтобы процесс отпустил файл), после этого удаляем.

А что делать, если никто ничего не проверял, файлик грохнули, а вот место не освободилось?
Читать полностью »

Несколько скриптов-однострочников для быстрого взгляда на то, как используется память в 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