Nobody about something

Простейший текстовый редактор

Написано 23 ноября 2008 в 3:46 - Рубрики: *nix
tuupic@localhost ~ $ cat >> test.txt << END
> srt1
> str2
> str3
> END
tuupic@localhost ~ $ cat test.txt
srt1
str2
str3
tuupic@localhost ~ $

Если нету ни одного текстового редактора, то файл с текстом можно создать таким образом.
Такие рекомендации встречаются во всяких бородатых книгах “unix для чайников”

Думы об антиспаме

Написано 15 ноября 2008 в 3:19 - Рубрики: *nix, my life

Выкачивая каждый день по несколько мегабайт спама, пришёл к выводу, что мне это надоело.
99% спама честно фильтруется моим bogofilter`ом в kmail`е и кладётся в корзину.
Но, во-первых у меня есть вредная привычка читать иногда этот спам от скуки (кто-то логи от прокси читает, а я вот спам). А во-вторых я просто не хочу даже видеть эту гадость у себя на компе.

Выход – фильтрация спама на сервере.
Но тут есть одна проблема – 99% почты я получаю не на сам этот сервер. На него идёт лишь пересылка. Поэтому простые традиционные методы (dnsbl и greylisting) мне не подходят. Сижу думаю, что можно придумать.
Хочу прикрутить тот же bogofilter, но надо это сделать так, чтобы не делать потом лишних телодвижений для его переобучения или для вытаскивания нужной почты из спама.

Конфигурация сервера teamspeak с mysql5

Написано 4 ноября 2008 в 6:30 - Рубрики: *nix

Пример установки на Debian 4

  1. Ставим TeamSpeak как обычно:
    Скачиваем с официального сайта (http://www.goteamspeak.com/)
    Создаём пользователя teamspeak командой adduser
    Скопируем архив с teamspeak в домашнюю директорию пользователя.
    Затем (все дальнейшие действия следует выполнять как пользователь teamspeak), распакуем архив:

    $ tar xjvf ts2_server_rc2_202319.tar.bz2

    И запустим сервер

    $ cd tss2_rc2
    $ ./teamspeak2-server_startscript start

    Конфигурацонный файл server.ini создался, тимспик останавливаем

  2. Создаём mysql базу для тимспика. Создаём пользователя базы данных, которым будем в эту базу ходить.
    Предположим база называется ts, и пользователь ts
  3. Теперь надо сменить пароль для этого пользователя.
    заходим в shell,заходим рутом в mysql

    mysql -p

    и выполняем следующие команды:

    SET PASSWORD FOR 'ts'@'localhost' = OLD_PASSWORD('пароль');
    FLUSH PRIVELEGES;

    Для чего это нужно, обЪяснено будет позже

  4. Копируем библиотеку /usr/lib/libmysqlclient_r.so.10.0.0 в директорию, где находится TeamSpeak
  5. Приступаем к настройке. Редактируем файл server.ini.
    Нас интересует секция [DBEXPRESS]

    [DBEXPRESS]
    sqldir=./mysql_sql/
    Drivername=mysql
    Database=ts
    Hostname=localhost
    User_name=ts
    Password=пароль
    GetDriverFunc=getSQLDriverMYSQL
    VendorLib=./libmysqlclient_r.so.10.0.0
    LibraryName=./libsqlmy.so
    Active=1

    Приблизительно так это должно выглядеть

  6. Отступление:
    TeamSpeak рабоет с mysql только с 3-й версией. Соответственно клиентскую библиотеку он может использовать только от третьей версии (libmysqlclient_r.so.10.0.0).
    Также по непонятной причине он работает, только если библиотека расположена в его же директории.
    В третьей версии пароли шифровались другим методом, поэтому мы и задали пользователю пароль функцией OLD_PASSWORD. Эта функция шифрует пароль как раз старым методом.
  7. Теперь начинается колдунство.

    ls /usr/share/mysql/charsets/ | grep xml | awk '{print "ln -s /usr/share/mysql/charsets/" $1, "/usr/share/mysql/charsets/" $1 "conf"}' | sh
    echo "cp1251.xml 33" >> /usr/share/mysql/charsets/Index

    Этим мы скопировали xml файлы кодировок в xml.conf, и содали Index файл для одной из них. Вообще 33 – это utf8 кодировка, но почему то файла utf.xml не было.
    Это всё нужно опять же из-за клиента от mysql 3

  8. Запускаем TeamSpeak. Если всё было сделано правильно, то он стартует. Если база была пуста, то смотрим пароль суперадминистратора в логе.

DB->get: method not permitted before handle’s open method

Написано 4 ноября 2008 в 2:30 - Рубрики: *nix

Такая ошибка стала сегодня вылазить при любых действиях в шелле.
При старте системы появлялась даже до запуска всех сервисов.
Гугл не помог.
Но find /usr -name "*db" и qfile выдали предателя.
Подозрение вызвал файл
/usr/share/terminfo.db
qfile сказал, что он входит в ncurses.
А вчера ncurses обновлялся. Обновил портежи, начал ставить ncurses -
тот даунгрейдился.
Всё стало нормально.

sl

Написано 23 октября 2008 в 23:00 - Рубрики: *nix

Есть такая прикольная прога в почти любой unix системе.
sl
Просто паровозик :)

Советую man к нему почитать ещё и попробовать все сочетания параметров

Ошибка в phpMyAdmin

Написано 22 октября 2008 в 21:06 - Рубрики: *nix

Обновился phpMyAdmin до версии 3.0
Вылезла кака
PHP Fatal error: Class 'ArrayObject' not found in /usr/local/www/phpMyAdmin/libraries/List.class.php on line 14
Выяснилось, что теперь phpMyAdmin юзает расширение SPL.SO, которое в свою очередь требует SIMPLEXML.SO

Клавиатура с подсветкой 2

Написано 14 октября 2008 в 14:07 - Рубрики: *nix, железо

После смены Mandriva на Gentoo нужно заново было сделать включение/выключение подсветки. (клавиатура с подсветкой) Включается она при включении лампочки Scroll Lock, но в иксах сам ScrollLock отключён. Для включения лампочки используется

xset led 3

для включения и

xset -led 3

для выключения.

В этот раз решил сделать проще. Поместил в ~/.kde/Autostart/ скрипт settings.sh с текстом

#!/bin/sh
echo '0' > ~/.led

Далее сделал скрипт ~/bin/led.sh. В нём написал

#!/bin/sh
LED=`cat ~/.led`;
if [ $LED = 1 ]; then
  /usr/bin/xset -led 3
  echo '0' > ~/.led
else
  /usr/bin/xset led 3
  echo '1' > ~/.led;
fi

Добавил этот скрипт в меню KDE, и назначил ему хоткей ScrollLock. Теперь подсветка включается как и должна – по ScrollLock

UPDATED: После обновления иксов до xorg-1.7, данный вариант работать отказался. Скролл лок более не являлся 3-й лампочкой :) . Но есть возможность зажигать лампочку по имени. В настоящее время команда выглядит так: /usr/bin/xset led named "Scroll Lock"

Gentoo

Написано 7 октября 2008 в 16:40 - Рубрики: *nix, my life

Вот и переехал я на генту на домашнем компе. Освоюсь – перееду и на ноуте. Ибо работает генту в разы быстрее чем и мандрива и кубунту. Установка и настройка затруднений не вызвала, так как почти вся установка производилась из рабочей системы, а значит и с интернетом.
Последним шагом было монтирование раздела /home в новую систему. Пришлось некоторые конфиги удалить, но в общем всё прошло без проблем.

Одно но – в дереве портежей нету антиспам плагина для kopete. Но и это было быстро решено.
Найден ebuild (сценарий сборки пакета) и написан Manifest (контрольные суммы)
Ссылка на ebuild
Готовый архив с ебилдом. Распаковать в /usr/portage

Про линукс…

Написано 2 октября 2008 в 2:44 - Рубрики: *nix

2-а интесных факта/новости.

  1. Я решил себе поставить gentoo. При разбивке диска я давно выделил 30 Гб под эксперименты. Вот этот эксперимент и настал. Если он окажется удачным, то корневой раздел у меня сменится с /dev/sda2 (Mandriva) на /dev/sda1 (Gentoo). /home у меня на /dev/sda4 – он останется.

    Установку делаю почти по хэндбуку. За одним исключением. Я не гружусь со специального гентушного загрузочного диска. Я всю установку делаю из рабочей системы (!). Причём 80% времени по SSH. Каково это представить себе?

    Самое интересное – теоретически, если не возникнет непредвиденных трудностей, после завершения установки можно по SSH же отправить комп в ребут, и зайти по SSH уже в новую систему (!) Никакие мандривы и убунты так не могут. Про виндузоидов вообще молчу

  2. Не так давно я писал о переносе системы на новый винт. Старый винт, причём, я оставил (лень винт форматить и системник из под стола вытаскивать) Загрузчик я правил через Гуй. Так вот этот гуй, внутренние пути к дискам помеял (с sdb5 на sda2, к прмеру). Но взагрузчике пути к ядру оставил старые (hd1,4). Так вот система при этом работает!!

    То есть при заргузке, загрузчик, находящийся на первом винте, видит в своём конфиге, что ядро надо грузить с каго-то “левого” раздела, идёт на этот “левый” раздел “левого” винта, берёт ядро и initrd, грузит их в память, и продолжает дальше работу на “своём” винте. Вот это я понимаю – “работать через жопу”. Номера винтов поправил теперь руками.

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

Cброс рут пароля PgSql (PostgreSql)

Написано 24 сентября 2008 в 0:55 - Рубрики: *nix

Вот встала задача собросить пароль администратора в PostgreSql.

OS FreeBSD.
Делается это дело так.

  1. Открывается файл /usr/local/pgsql/data/pg_hba.conf
    Смотрим, чтобы там была подобная строка.

    local all pgsql trust

    Если нету, то записываем. Эта строка означает, что системный пользователь pgsql с локального компьтера может делать что угодно с любыми базами без пароля.

  2. Перезагружаем постгрес
    /usr/local/etc/rc.d/postgresql restart
  3. Заходим от имени пользователя pgsql

    su pgsql
  4. Заходим в postgres и меняем пароль

    psql postgres
    ALTER USER pgsql PASSWORD 'pass';
    \q
    
  5. Вот и всё. В других системах имена пользователей и баз могут отличаться. По умолчанию для PostgreSql пользователь-администратор – postgres, а системная база называется pgsql
    Посмотреть пользователей и названия баз можно в файлах

    /usr/local/pgsql/data/global/pg_auth
    /usr/local/pgsql/data/global/pg_database