8 окт. 2008 г.

Увеличиваем память больше 4Гб в ОС SCO Unixware 7.1.3

Возникла необходимость нарастить серверу память до 8Гб.

Для того чтобы SCO Unixware пыталась определить больше 4Гб ОЗУ необходимо в файле /stand/boot указать ENABLE_4GB_MEM=YES (см. boot parameters).

перезагружаем машину и смотрим как ОС определяет ОЗУ.

Может понадобится настройка параметров распределения ОЗУ (см. Virtual memory (VM) parameters)

29 июл. 2008 г.

Меняем сетевую карту на машине с ОС UnixWare 7.1.3

Случилось несчастье - сдохла материнская плана.

Сетевая карта была встроенная. Заменили плату, изменился и чип сетевой карты - стала RTL8101L, вместо Intel.

Пляски с бубном вокруг установки драйверов на карту от производителя ничего не дали - драйвера исправно встают, но ОС карту Cвидеть отказывается.

На сайте SCO информацию по данному вопросу найти не удалось.

Сети нет, а машина нужна в работе. Решено было попробовать поставить другую карту, под рукой была 3COM - 3C905C-TX.

Запускаем netcfg, в меню "Hardware" выбираем пункт "Add..", ОС определила карту, спросила какой транспортный протокол использовать на этой карте, спросила настройки TCP/IP протокола и все заработало :)

24 июл. 2008 г.

Ищем кто занимет дисковое пространство

Часто возникает вопрос куда делось свободное дисковое пространство. Такие ситуации возникают не только на системах в которых работает несколько пользователей, но и на домашних компьютерах.

Особенно остро эта проблема стоит на сетевых файл-серверах.

Наиболее гибким решением будет конечно написание скрипта, по результатам работы которого можно составлять графики и делать сравнения по динамике роста.

Однако это процесс трудоемкий, требующий много времени и знаний ОС.

Когда необходимо быстро выяснить какая папка (и ее подпапки) заняла большое пространство диска можно применить графический инструмент WinDirStat.

Очень удобный графический инструмент, позволяющий легко найти "проблемные" папки и файлы.

4 июл. 2008 г.

Visual WGet - менеджер закачек под винду

Пока приходится на работе сидеть под виндой.

И вот сегодня решил озаботиться менеджером закачек - накопал Visual WGet

Эта штука даже умеет интегрироваться в IE! :)

Интерфейс минималистичен - есть все (или почти все) нужное и ничего лишнего.

Пробую...

2 июл. 2008 г.

Делаем образы дисков с помощью dd и gzip

Многие знают про утилиту dd - очень удобный инструмент.
В частности очень хорошо подходит для клонирования дисковых разделов (или целых дисков).

Недавно в ходе нескольких экспериментов выяснил, что такой образ диска можно сильно сжать с помощью GZip.

Например, заполненный на около 5Гб NTFS-раздел объемом 31Гб в сжатом состоянии занимает всего 1.7Гб. Единственное неудобство в том что на моем AMD Athlon 1700+ создание этого образа заняло 50 минут, а подсчет md5-суммы раздела-оригинала и упакованного образа по 12 минут. На системах с более производительным центральным процессором данный процес займет гораздо меньше времени.

Так как основной объем информации на системных жестких дисках (конечно за исключением медиа-данных) очень хорошо поддается сжатию, и часто многие выделяют несколько разделов под ОС, таким образом можно быть уверенным что образ раздела удастся сжать.

В ходе тестов на различных разделах степень компрессии несколько шокировала. Например, FAT-16 раздел размером 40Гб был сжат до 30МБ (контрольные суммы проверил - они совпали)!!!

Создаем образ:
#dd if=/dev/sda1 bs=8096 | gzip -9cf > sda1.dd-image.gz

Это занимает время. За процессом можно наблюдать на той же консоли с помощью периодической посылки USR1 сигнала процессу dd.
Для этого на другой консоли выполняем:

#ps | grep dd
определяем pid процесса dd и подставляем его в следующую команду
#watch -n 15 "kill -USR1 $pid_of_dd"

Распаковка образа:
#gunzip -c sda1.dd-image.gz | dd of=/dev/sda1 bs=8096

также можно подсчитать md5-сумму для раздела, чтобы после восстановления проверить правильность распаковки образа:
#dd if=/dev/sda1 bs=8096 | md5sum - > sda1.dd-image.md5

Параноики (бывают ситуации когда лучше потратить время на еще одну перепроверку) могут еще и проверить правильность создания образа:
#gunzip -c sda1.dd-image.gz | md5sum

Приятной всем работы ;)

27 мая 2008 г.

Закрываем IceCast в CHROOT и регистрируем в каталоге dir.xiph.org

Задача изоляции IceCast в CHROOT решается больее чем просто:
1. копируем в директорию изоляции IceCast директории /admin /log /web и их содержимое;
2. правим /etc/icecast/icecast.xml

Решение вопроса с регистрацией в каталоге оказалось мнее простым.
Необходимо добавить в директорию изоляции еще и все подключаемые библиотеки, и возможно некоторые файлы из /etc.

В первую очередь сделал:
# ldd `which icecast`
linux-gate.so.1 => (0xffffe000)
libcurl.so.4 => /usr/lib/libcurl.so.4 (0xb7eba000)
libidn.so.11 => /usr/lib/libidn.so.11 (0xb7e8a000)
libssl.so.0 => /usr/lib/libssl.so.0 (0xb7e4a000)
libcrypto.so.0 => /usr/lib/libcrypto.so.0 (0xb7d0c000)
libtheora.so.0 => /usr/lib/libtheora.so.0 (0xb7cd2000)
libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0xb7ca9000)
libogg.so.0 => /usr/lib/libogg.so.0 (0xb7ca4000)
libxslt.so.1 => /usr/lib/libxslt.so.1 (0xb7c71000)
libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7b58000)
libdl.so.2 => /lib/libdl.so.2 (0xb7b54000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7b3f000)
libm.so.6 => /lib/libm.so.6 (0xb7b18000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb7b01000)
libc.so.6 => /lib/libc.so.6 (0xb79bf000)
/lib/ld-linux.so.2 (0xb7efd000)

и затем скопировал все необходимые библиотеки в соответствующие директории в CHROOT.

Как в процессе выяснилось, для регистрации нашего севера в каталоге также необходимо скопировать билиотеку /lib/libresolv.so

Далее создаем в CHROOT директорию /etc и размещаем там файлы:
/etc/host.conf
/etc/hosts
/etc/resolv.conf
/etc/nsswitch.conf

Теперь настраиваем наш source-клиент на регистрацию, заполняем информацию и проверяем как прошла регистрация.

Для тех кто за файерволом необходимо открыть нашему серверу порт 80 на исходящее соединение с dir.xiph.org.

У меня так и не получилось добится от IceCast'a разрешать имена хостов через DNS. Пришлось прописать адрес в /etc/hosts:

# For loopbacking.
127.0.0.1 localhost
192.168.0.21 icecast.rest.str.ru

# End of hosts.

193.218.105.163 dir.xiph.org

23 апр. 2008 г.

Скрипт записи эфира онлайн радио (для использования на радиостанциях)

Продолжаю публикацию своих скриптов.

Была поставлена задача записывать эфир собственного онлайн вещания. И хранить записи соответственно нужно часовыми кусками.

Для чего и изготовил этот скрипт.

Зависимости:
1. нужен собственно Shell;
2. для записи http-потока использован wget.

Протестирована работа с сервером IceCast, думаю будет работать и с другими серверами отдающими звук по http.

Формат вещания он ест любой - напрямую сохраняет часовые (или любой другой продолжительности) куски потока на жесткий диск.

На случай обрыва связи предусмотрена логика востановления соединения через пятисекундные интервалы.

Для записи эфира в режиме 24/7 достаточно прописать его запуск в crontab и добавить логику организации файлов в папки (если есть желание конечно ;) ).

У нас собственно складывается по дням, храним записи 40 дней, для чего используется как раз Скрипт удаления старых файлов и папок

Прошу смотреть и ругать ;)