понедельник, 19 мая 2008 г.
полезные утилиты
cairo-clock - прикольные гномовские часы
darkstat - статистика по трафику интерфейса ( после установки в конфиге подправить первую строку на yes
iptraf просмотр трафика с консоли
воскресенье, 30 марта 2008 г.
Если завис Linux
Бывает такое, что система зависает. Или иксы не выходят из свопа, или некий процесс отъел всю память и обработчик клавиатуры не может получить управление, или придётся признать, что у броузера медленно подтекает крышак, ну в общем, ничего не сделать, кроме ребута.
А вот как его сделать, чтобы не повредить
причёскуфайловую систему. Прибегнем к так называемой магической ядерной кнопке, а именно сочетанию Alt-SysRq (он же PrintScreen) с разными буквами. Понадобятся нам такие, в этом порядке, с учётом, что у нас клавиатура qwerty:
Alt-Sysrq-R переключить клавиатуру в режим XLATE (перехватить управление у иксов)
Alt-Sysrq-E послать всем процессам, кроме инита, решительный привет, то есть SIGTERM
Alt-Sysrq-I послать всем процессам, кроме инита, окнчательный привет, то есть SIGKILL
Alt-Sysrq-S sync. Для последователй старой школы: нажать дважды
Alt-Sysrq-U перемонтировать все файловые системы в read-only
Alt-Sysrq-B начать загрузку
Говорят, что эту последовательность (Alt-SysRq-REISUB) можно запомнить как слово BUSIER наоборот. От себя можно добавить, что если хочется освежить в голове эту краткую мнемонику, то можно на консоли нажать Alt-SysRq-H, и будет выдана краткая справка. Для тех, кто не уверен, где у него консоль: надо нажать Ctrl-Alt-F1.
Взято отсюда
Скрипты с интерфейсом

Для работы с удалёнными машинами я давно уже пользовался утилитой dialog, позволяющей создавать человеческого вида интерфейсы в скриптах. Как это выглядит знают все, кто устанавливал FreeBSD. Кому интересно: краткое описние dialog на русском и на английском, с большими картинками.
Автоматизируя работу на своём домашнем/рабочем компьютере с GNOME я обнаружил новое, ещё более увлекательное средство для создания интерфейсов в скриптах:
Zenity (Русскоязычное руководство в GNOME Documentation Library)
Освоив этот инструмент, правильный администратор/разработчик может облегчить жизнь себе любимому, своим близким, вынужденным терпеть Linux на домашнем компьютере, сотрудникам в офисе, куда стремительно рвутся всё более удобоваримые дистрибутивы свободной ОС. Удобство скриптования в unix-системах эта программа легко подружит с удобством использования. Не берусь даже обрисовать все возможные применения.
Пример номер 1:
Пропишем себе в crontab:
*/15 0-3 * * * DISPLAY=:0.0 /usr/bin/zenity --warning --title="Пора спать" --text="Завтра на работу"
И система заботливо и настойчиво будет нас клонить ко сну каждые 15 минут с 0 до 3 ночи.
Пример номер 2:
Статус ppp соединения плюс статистика в трее от Злого Ананаса.
Пример номер 3:
Сканируем тучи документов и выполняем обработку изображений офисных документов в пару кликов. Секретарша будет на вас молится. Конечный документ А4 в 200dpi обычного вида (типа счёта с синей печатью и подписью) имеет типичный вес от 60 до 200 килобайт и формат png. Нужны установленные sane-utils и ImageMagic.
#!/bin/sh
TMP="image$$"
while true; do
scanimage \
-p \
--format tiff \
--resolution 200 \
-x 215 -y 297 \
2> ~/$TMP.tiff \
3>&1 1>&2 2>&3 \
| perl -e '$/="\r";$|=1;while(<>){s/^\D+(\d+)\D.*$/$1\n/g;print;}' \
| zenity \
--progress \
--title="Сканирование" \
--text="Сканирую изображение. Пожалуйста, подождите..."
if [ $? -eq 0 ]; then
FILE=""
while [ -z "$FILE" ]; do
FILE=`zenity \
--entry \
--title="Обработка" \
--text="Укажите имя файла для сохранения"`
done
convert $TMP.tiff -level 20%,80%,0.4 -format PNG8 -colors 8 $FILE.png
else
killall scanimage
fi
rm -f $TMP.tiff
zenity \
--question \
--title="Продолжим?" \
--text="Вы желаете продолжить сканирование? Не забудьте положить в сканер новый лист." \
|| return
done
Настройка framebuffer в Ubuntu 7.10
Итак, посмотрим, чем же отличается настройка framebuffer'а в версии 7.10 от предыдущих версий.
А вот чем...
В предыдущих версиях - framebuffer был включен по умолчанию и нам оставалось лишь добавить параметр vga=xxx в строку загрузки kernel в файле /boot/grub/menu.lst . Где xxx=цифра - специальное сочетание разрешения экрана и глубины цвета, посмотреть расшифровку можно в wikipedia.
В версии 7.10 - framebuffer выключен по умолчанию. Так что прийдется немного повозиться, чтобы включить его.
1. Открываем файл /etc/modprobe.d/blacklist-framebuffer:
#
nano /etc/modprobe.d/blacklist-framebuffer
теперь закомментируем строку:
#vesafb
и сохраняем файл.
2. Открываем файл /etc/initramfs-tools/modules:
#
nano /etc/initramfs-tools/modules
добавляем строчки:
fbcon
vesafb
и сохраняем файл.
3. Пересобираем initramfs image
#
update-initramfs -u
4. Открываем файл /boot/grub/menu.lst
#
nano /boot/grub/menu.lst
В опции ядра добавляем нужные параметры. Находим строку начинающуюся примерно на kernel /boot/vmlinuz-2.6.22-14-386 root=... . Дописываем туда параметр vga=0x31b (здесь я использовал параметр для экрана 1280х1024) Если у вас другое разрешение используйте значения из таблицы приведенной ниже:
640x480 800x600 1024x768 1280x1024
256 0x301 0x303 0x305 0x307
32 тыс 0x310 0x313 0x316 0x319
64 тыс 0x311 0x314 0x317 0x31A
16 млн 0x312 0x315 0x318 0x31B
Если вашего разрешения нет в таблице (например, у вас широкоформатный монитор), то воспользуйтесь следующим способом:
5. Устанавливаем программу hwinfo
#
apt-get install hwinfo
6. Запускаем ее с ключем --framebuffer
#
hwinfo --framebuffer
в появившемся списке выберите нужный Mode для вашего разрешения и добавьте его в vga= , как описано выше, в четвертом пункте.
Теперь перегружаемся, переходим в консоль и лицезреем красоту.
by Leolik at 19.02.2008 10:03:18
Логи в отдельной консоли
Чтобы быстро посмотреть последние сообщения в логах - не обязательно писать в командной строке "tail /var/log/messages". Можно вместо этого выводить нужные сообщения в отдельную консоль. Для этого пропишите в файле /etc/syslog.conf
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none /dev/tty8
Отредактируйте эти строки так, чтобы получать только нужные сообщения. У меня эта запись просто скопирована с той, что направляется в /var/log/messages. После этого перезапустите сервис syslogd или дайте ему команду перечитать конфиг.
Параметр "/dev/tty8" означает, что соответствующие сообщения будут направлены на 8-ю консоль. Теперь вы можете просто нажимать Alt+F8 (Alt+Ctrl+F8 если вы находитесь в иксах) чтобы увидеть конец лога.
Вместо "/dev/tty8" вы можете ещё написать "|/dev/xconsole" и тогда вы сможете читать лог из иксов командой "xconsole -file /dev/xconsole".
Лично я использую сразу оба варианта.