середу, 10 вересня 2008 р.

Отключение режима hiberfil

Открыл для себя новую приблуду. Нужно было отключить режим сна на компе где вкладка электропитания была заменена приблудой от Acer. После поиска в инете нашёл команду
powercfg -h off
Просто и со вкусом :-) в ней есть хелп и куча параметров.

середу, 6 серпня 2008 р.

Контроль запуска служб Exchange 2007

При перезагрузке сервера, выполняющего роль сервера Exchange 2007, надо убедиться, что все службы Exchange 2007 поднялись.

Для этого нужно запустить командную консоль Exchange (powershell) и в ней выполнить команду

> get-service *exchange*

На примере ниже существует ошибка: не запущена служба хранилища:

[PS] get-service *exchange*

Status Name DisplayName
—— —- ———–
Running MSExchangeADTop… Служба топологии Microsoft Exchange…
Running MSExchangeAntis… Обновление средства защиты от нежел…
Running MSExchangeEdgeSync Microsoft Exchange EdgeSync
Running MSExchangeFDS Рассылка файлов Microsoft Exchange
Running MSExchangeImap4 Microsoft Exchange IMAP4
Stopped MSExchangeIS Банк данных Microsoft Exchange
Running MSExchangeMailb… Помощники по обслуживанию почтовых …
Running MSExchangeMailS… Отправка почты Microsoft Exchange
Stopped MSExchangeMonit… Наблюдение Microsoft Exchange
Stopped MSExchangePop3 Microsoft Exchange POP3
Running MSExchangeRepl Служба репликации Microsoft Exchange
Running MSExchangeSA Системный помощник Microsoft Exchange
Running MSExchangeSearch Индексатор поиска Microsoft Exchange
Running MSExchangeServi… Microsoft Exchange Service Host
Running MSExchangeTrans… Транспорт Microsoft Exchange
Running MSExchangeTrans… Поиск журналов транспорта Microsoft…
Running MSExchangeUM Единая система обмена сообщениями M…
Running msftesql-Exchange Microsoft Search (Exchange)
Столбец display-name указывает на имя службы в соответствующей оснастке. Поэтому, запускаем Администрирование/Службы и пытаемся стартовать Банк данных Microsoft Exchange. Если не хочется лишних телодвижений – тут же, в консоли PowerShell, пишем
> start-service MSExchangeIS
Когда стартует – расслабляемся =) POP3 запускать не надо – он по умолчанию выключен и не используется.

Кстати: данный конкретный случай виден еще и по ошибке 4001 источника MSExchange System Attendant Mailbox, возникающей при запуске сервера и повторяющейся раз в минуту в журнале “Приложение” сервера.

вівторок, 29 липня 2008 р.

Синхронизация времени в Windows

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

Как настроить через реестр я нашёл в этой статье, но напишу и тут.
Открываем реестр, находим ветку
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type
Меняем параметр на "NTP"
Меняем параметр и здесь
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
С "10" на "5"
Тут
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer
Пишем адрес или IP сервера с которого будем обновляться (у меня это мой шлюз на фре). Если записываем адрес то в таком виде
time.windows.com,0x1
Перезапускаем службу времени
net stop w32time
net start w32time

Готово.
Посмотрим синхронизацию в домене
w32tm /monitor /domain:mydomain.local
Если мы хотим синхронизировать с контролёром домена
w32tm /config /syncfromflags:DOMHIER
Ну и если что всегда есть хелп :-)
w32tm /?

пʼятницю, 25 липня 2008 р.

День Системного Администратора

Пользователя делятся на дятлов

И туканов


Так вот в этот профессиональный праздник я хочу пожелать чтобы вам попадались только дятлы :-)

понеділок, 18 лютого 2008 р.

Изменение пароля root в MySQL сервера

Достался мне сервер с базой, а доступа небыло, надо было исправлять эту ситуацию

1. Подключаемся к серверу с правами root
2. Останавливаем сервер MySQL
3. Открываем скрипт запуска сервера. Этот файл мы вызывали для остановки сервера.
4. Находим строчки которая содержит текст mysqld_safe и добавляем новый параметр --skip-grant-tables
5. Запускаем MySQL сервер
6. Логинимся на mysql сервер и перезадаём пароль:

# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newrootpassword') WHERE User='root';
mysql> FLUSH PRIVILEGES;

newrootpassword - это ваш новый пароль, его можна даже поменять на свой :-)
7. Выходим с консоли mysql с помощью команды \q
8. Останавливаем сервер mysql
9. Снова открываем скрипт запуска сервера и удаляем параметр --skip-grant-tables
10. И теперь окончательно запускаем сервер.
Готово

Установка Asterisk. Часть 2. H323

Эта статья является продолжением статьи Установка Asterisk
По производственной необходимости необходимо было настроить ещё один сервер с Asterisk в удалённый офис. Причём связь с местной городской сетью осуществляться должна была через H323 кодек. И настала мне пора заняться этим.

Первым, чем я занялся, это сравнил имеющиеся варианты кодеков H323 и OOH323, честно говоря разница между ними мне не критична, полными наворотами протокола я не пользуюсь. Поэтому я решил ставить H323, так как его поставить проще.
Уточню, проще всего подготовить все настройки для этого кодека, а потом при установке, Asterisk он сам обнаружит что кодек готов для установки и установит его.

Первым делом займёмся скачиванием исходников. Тут есть один неслабый нюанс. Не все версии совместимы со всеми. Когда я ставил Оптимальным вариантом были: pwlib версии 1.11.0 и openh323 версии 1.19.0.1
Брать здесь SourceForge.net
Я распаковывал всё в папку /usr/src/

Компилим сначала pwlib. Он должен откомпилироваться без проблем.

./configure
make

Тут у меня образовался затор, пока я не прописал это:

export PWLIBDIR=/usr/src/pwlib_v1_11_0
export OPENH323DIR=/usr/src/openh323_v1_19_0_1
export LD_LIBRARY_PATH=$PWLIBDIR/lib:$OPENH323DIR/lib

Теперь компилируем OpenH323:

./configure
make opt

Откомпилированые библиотеки:

libh323_linux_x86_d.so.1.19.0
libpt_linux_x86_d.so.1.11.0

я закинул в папку /usr/lib, чтобы они были доступны без прописывания дополнительных путей и при перезагрузке системы.

Дальше идём как всегда, устанавливаем нужные пакеты:

yum -y install kernel-devel gcc ncurses-devel openssl-devel gcc-c++ gnutls-devel make
ln -s /usr/src/kernels/2.6.18.-53.1.4.e15-i686/ /usr/src/linux
yum -y install iftop
yum -y install libtool-ltdl libtool-ltdl-devel
yum -y install iksemel
yum -y install curl curl-devel newt newt-devel net-snmp net-snmp-libs
yum -y install glibc-devel kernel-header db-devel gcc cpp binutils bison expat-devel ncurses openssl openssl-devel

Устанавливаем Zaptel

cd /usr/src/zaptel-1.4.7.1/
make clean
make
make install
make install-udev
make config

Во время зборки может произойти ошибка пофиксить ее просто заменив в файле /usr/src/zaptel-1.4.7.1/xpp/xbus-core.c следущющую строку

#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) на
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)

Запускаем zaptel

/etс/init.d/zaptel start

Устанавливаем LibPRI

cd /usr/src/libpri-1.4.1/
make clean
make
make install

Устанавливаем Asterisk, вот здесь установка запросит перезапустить себя, так как увидит H323 кодек.

cd /usr/src/asterisk-1.4.11/
make clean
./configure
make
make install
make samples
make progdocs
make config

Устанавливаем Perl Модуль
скачиваем с сайта http://asterisk.gnuinter.net/files/ последнюю версию asterisk-perl-0.10

cd /usr/src/asterisk-perl-0.10
perl Makefile.PL
make all
make install

Далее собираем дополнения

cd /usr/src/asterisk-addons-1.4.5
./configure
make
make install

пʼятницю, 15 лютого 2008 р.

Использование tcpdump

Примеры использования tcpdump

посмотреть трафик на интерфейсе:

tcpdump -i fxp1

посмотреть трафик одного хоста:

tcpdump host 1.2.3.4

посмотреть трафик на порте:

tcpdump src port 80

посмотреть IP трафик на хост:

tcpdump ip host 1.2.3.4

посмотреть ARP трафик на хост:

tcpdump arp host 1.2.3.4

посмотреть RARP трафик на хост:

tcpdump rarp host 1.2.3.4

посмотреть трафик, кроме хоста unixserver:

tcpdump not host unixserver

посмотреть трафик на server1 и server2

tcpdump host server1 or host server2

посмотреть содержимое пакетов на интерфейсе tun0 на хост ya.ru

tcpdump -X -i tun0 host ya.ru

подсмотреть номера и пароли к icq

tcpdump -X -i fxp1 port aol

посмотреть содержимое пакетов на интерфейсе tun0 на хост ya.ru, при этом прочитать из каждого пакета по 1500 байт и не преобразовывать IP в имя хоста

tcpdump -X -s 1500 -n -i tun0 host ya.ru

четвер, 31 січня 2008 р.

Рабочее место

Чего-то пробило меня сфоткать своё рабочее место :-)



Posted by Picasa

понеділок, 28 січня 2008 р.

Добавление новых пользователей в MySql

Вся информация взята из сайта www.mysql.ru


Пользователей можно добавлять двумя различными способами - при помощи команды GRANT или напрямую в таблицы назначения привилегий MySQL. Предпочтительнее использовать команду GRANT - этот способ проще и дает меньше ошибок.
В приведенных ниже примерах демонстрируется, как использовать клиент mysql для задания новых пользователей. В примерах предполагается, что привилегии установлены в соответствии с принятыми по умолчанию значениями.
Это означает, что для внесения изменений на том же компьютере, где запущен mysqld, необходимо подсоединиться к серверу как пользователь MySQL root, и у пользователя root должна быть привилегия INSERT для базы данных mysql, а также административная привилегия RELOAD. Кроме того, если был изменен пароль пользователя root, его необходимо указать здесь для команды mysql.

Новых пользователей можно добавлять, используя команду GRANT:
shell> mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql> GRANT USAGE ON *.* TO dummy@localhost;

Эти команды GRANT создают трех новых пользователей

  • monty
    Полноценный суперпользователь - он может подсоединяться к серверу откуда угодно, но должен использовать для этого пароль some_pass. Обратите внимание на то, что мы должны применить операторы GRANT как для monty@localhost, так и для monty@"%". Если не добавить запись с localhost, запись анонимного пользователя для localhost, которая создается при помощи mysql_install_db, будет иметь преимущество при подсоединении с локального компьютера, так как в ней указано более определенное значение для поля Host, и она расположена раньше в таблице user.

  • admin
    Пользователь, который может подсоединяться с localhost без пароля; ему назначены административные привилегии RELOAD и PROCESS. Эти привилегии позволяют пользователю запускать команды mysqladmin reload, mysqladmin refresh и mysqladmin flush-*, а также mysqladmin processlist. Ему не назначено никаких привилегий, относящихся к базам данных (их можно назначить позже, дополнительно применив оператор GRANT).

  • dummy
    Пользователь, который может подсоединяться к серверу без пароля, но только с локального компьютера. Все глобальные привилегии установлены в значение 'N'-тип привилегии USAGE, который позволяет создавать пользователей без привилегий. Предполагается, что относящиеся к базам данных привилегии будут назначены позже.



Можно напрямую добавить точно такую же информацию о пользователе при помощи оператора INSERT, а затем дать серверу команду перезагрузить таблицы назначения привилегий:
shell> mysql --user=root mysql
mysql> INSERT INTO user VALUES('localhost','monty',PASSWORD('some_pass'),
-> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO user VALUES('%','monty',PASSWORD('some_pass'),
-> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO user SET Host='localhost',User='admin',
-> Reload_priv='Y', Process_priv='Y';
mysql> INSERT INTO user (Host,User,Password)
-> VALUES('localhost','dummy','');
mysql> FLUSH PRIVILEGES;

В зависимости от версии MySQL в примере, приведенном выше, может указываться различное количество значений 'Y' (в версиях до Version 3.22.11 было меньше столбцов привилегий). Для пользователя admin используется более удобочитаемый расширенный синтаксис команды INSERT, который доступен начиная с версии 3.22.11.

Если необходимо предоставить определенному пользователю доступ с любого компьютера к определенному домену, можно воспользоваться оператором GRANT следующим образом:
mysql> GRANT ...
-> ON *.*
-> TO myusername@"%.mydomainname.com"
-> IDENTIFIED BY 'mypassword';

понеділок, 21 січня 2008 р.

Настройка internet-radio как MusicOnHold для Asterisk

В конце концов всё оказалась просто как 5 копеек, но для этого надо было дойти, чтобы вдруг ещё кто-то не тупил, напишу эти 5 копеек здесь.

У меня музыка проигрывается когда с Asterisk звонят во внешний мир.
В файле musiconhold.conf дописываем следующие строки:

[radio]
mode=custom
directory=/var/lib/asterisk/mohmp3
application=/usr/local/bin/mpg123 -q -r 8000 -f 8192 -b --mono -s http://live.radiorelax.kiev.ua:7200/relax_lo

А в файле extensions.conf в разделе где прописаны внешние звонки делаю
exten=>s,n,SetMusicOnHold(radio)

Вот как бы и всё, если вы хотите на определённый номер поставить прослушивание радио (а на разные номера можно разные радиостанции) то во первых проверьте что у вас канал анлимный, а во вторых пишем так:

exten => 922,1,Ringing
exten => 922,2,Wait,2
exten => 922,3,Answer
exten => 922,4,MusicOnHold(radio)
exten => 922,5,Playback(vm-goodbye)
exten => 922,6,Hangup

Всё выглядит просто, но я потратил своё время, и если эта статья поможет кому-то сберечь его, то я молодец и вообще :-)

середу, 16 січня 2008 р.

Добавление репозитария в yum

Хорошая штука всё-таки yum, позволяет устанавливать и обновлять пакеты и всё НАШАРУ
Но в стандартных репозитариях есть не всё что меня интересует, для такого случая есть хороший репозитарий DAG, как его устанавливать конечно-же есть в хелпе на сайте DAG. Но я всё-же напишу, чтобы потом самому не искать.


Я надеюсь что-вы не успели снести yum, если не успели - смотрим дальше.
1. Качаем пакет rpmforge под свою платформу. У меня стоит CentOS 5.1 поэтому я выбирал RedHat EL5-i386.
Я лично качал wget'ом сразу на систему.
Устанавливаем ключ
rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

Проверяем скачаный пакет rpmforge
rpm -K rpmforge*

Должно написать, что всё ОК
Теперь устанавливаем:
rpm -i rpmforge*

Тут вроде бы всё но у меня был один лаг связаный с настройкой сети лично у меня. Доступ в инет у меня через прокси с авторизацией, а так как я не знаю как указать прокси и логин/пароль для всей системы то ставил их отдельно для yum'a и для wget'a.
Для yum'a прописываем их так:

proxy=http://server_name:port_number/
proxy_name=user_name
proxy_password=your_password

Главное в этих строчках не поставить кавычки.
Для wget'а раскоментируем строчку и записываем в таком формате

http_proxy=http://proxy_user:proxy_password@server_name:port_number/


вівторок, 15 січня 2008 р.

Запись разговоров в Asterisk

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


Путем сложных поисков в гугле нашел несколько способов записи разговоров, но всё они записывали в wav и размер был соответствующим, а это меня не устраивало, как говорится в одном анекдоте: появился анлимный инет, осталось найти анлимный винт. Была у меня сначала идея регулярно переобжимать в mp3. Но потом нашёл параметры чтобы сразу после разговора обжималось с wav в mp3.

exten => 3,n, Set(CALLFILENAME=${STRFTIME(${EPOCH},,%y-%m-%d__%H-%M)}_${CALLERID(name)});
exten =>; 3,n, Set(monopt=nice -n 19 /usr/bin/lame -b 16 --noshort --silent "/var/spool/asterisk/monitor/${CALLFILENAME}.wav" "/var/spool/asterisk/monitor/${CALLFILENAME}.mp3" && rm -f "/var/spool/asterisk/monitor/${CALLFILENAME}.wav")
exten => 3,n, MixMonitor(${CALLFILENAME}.wav|b|${monopt});
exten => 3,n, Dial(SIP/7002&SIP/7003,20,tTm)
exten => 3,n, GotoIfTime(10:00-19:00|mon-fri|*|*?mobiln-admin,1)
exten => 3,n, StopMonitor;

По поводу параметров lame, эти были подобраны опытным путем, вроде как самый малый размер чтобы нормально послушать.
Да, кстати, разговор пишется только если на второй стороне взяли трубку, то есть файл не пустой.

понеділок, 14 січня 2008 р.

Маленькая настройка ssh

Не забываем что я ламер в линухе и поэтому пишу в основном для себя, вот здесь опишу хотя бы минимальные изменения в ssh для безопасной работы.

В принципе можно работать и со стандартной настройкой ssh, но лучше немного зачистить для безопасности.
1. И самое главное - изменить порт для ssh, его можно поменять в файле /etc/ssh/sshd_config просто раскоментируем строчку и меняем циферку:

Port 1936

2. Запрещаем root'у подключатся к серверу напрямую (мы же умные мы себе права судо дали). Для этого находим и раскоментируем в том же файле строчку:
PermitRootLogin no


Не забываем для поиска инфы пользоваться дядюшкой гуглом и таким суперским ресурсом как OpenNet. В частности эту инфу я выцепил со странички там же на ОпенНет'е

Упаковка/распаковка командой "tar" и монтирование cdrom

Так я только постигаю азы Линуха, то приходится шарится в поисках базовых знаний, так чтобы этого не делать, решил выложить из ссылок себе в блог архивирование tar и монтирование cdrom

Как запаковать/распаковать файлы/каталоги на сервере
1. запаковать файлы и каталоги

    tar czf имя_архива список_файлов - например: tar czf arch.tar.gz file.txt~/scripts

распаковать такой архив:
    tar xzf arch.tar.gz

2. запаковать один файл
    gzip file.gz file.txt

распаковать:
    gunzip arch.tar.gz

3. распаковать zip
    unzip arch.zip

4. распаковать tar
    tar xf arch.tar

5. распаковать bz2
    bunzip arch.bz2



Как правильно смонтировать CD-ROM?
В /dev можно сделать ссылку c названием cdrom на /dev/hdx, где x - IDE-устройство. Для scsi-устройств, или ide, работающих в режиме
эмуляции scsi это может быть scdX.

    /etc/fstab:
    /dev/cdrom /mnt/cdrom iso9660 user,unhide,noauto,owner,ro,users,iocharset=koi8-r 0 0

После этого cdrom можно монтировать командой mount /dev/cdrom.

Если используемая locale utf8, а не koi8-r, то iocharset=utf8.


Установка Asterisk



Когда я захотел установить Asterisk на CentOS пришлось перелопатить кучу инфы чтобы найти всё что мне надо.
Asterisk 1.4.17 on CentOS 5.1
Для начала скачиваем Asterisk c
http://downloads.digium.com/pub/asterisk/


И так приступаем к сборке Asterisk 1.4
Посмотрим на релиз ядра:
# uname -r
2.6.18-53.1.4.e15


Сперва устанавливаем пакеты необходимые для работы.
yum -y install kernel-devel gcc ncurses-devel openssl-devel gcc-c++ gnutls-devel make
ln -s /usr/src/kernels/2.6.18.-53.1.4.e15-i686/ /usr/src/linux
yum -y install iftop
yum -y install libtool-ltdl libtool-ltdl-devel
yum -y install iksemel
yum -y install curl curl-devel newt newt-devel net-snmp net-snmp-libs
yum -y install glibc-devel kernel-header db-devel gcc cpp binutils bison expat-devel ncurses openssl openssl-devel


ВНИМАНИЕ: у Вас может быть другой путь к исходникам ядра

Устанавливаем Zaptel
cd /usr/src/zaptel-1.4.7.1/
make clean
make
make install
make install-udev
make config

Во время зборки может произойти ошибка пофиксить ее просто заменив в файле /usr/src/zaptel-1.4.7.1/xpp/xbus-core.c следущющую строку

#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) на
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)

Запускаем zaptel

/etс/init.d/zaptel start


Устанавливаем LibPRI

cd /usr/src/libpri-1.4.1/
make clean
make
make install


Устанавливаем Asterisk

cd /usr/src/asterisk-1.4.11/
make clean
./configure
make
make install
make samples
make progdocs
make config


Устанавливаем Perl Модуль
скачиваем с сайта http://asterisk.gnuinter.net/files/ последнюю версию asterisk-perl-0.10

cd /usr/src/asterisk-perl-0.10
perl Makefile.PL
make all
make install


Далее собираем дополнения
cd /usr/src/asterisk-addons-1.4.5
./configure
make
make install


Всё готово, просматриваем всё-ли стартует при старте системы, команда "setup"

Мой блог

Наконец-то и я поддался всеобщей манечке создания блогов. Правда это для меня вынужденный ход. Я в последнее время заметил, что ссылки из моего избранного становятся недоступными, а там бывали и интересные статьи и ссылки, поэтому сюда я буду копировать статьи которые интересны мне или нужны мне для работы. Иногда, наверное, буду постить и собственные заметки, меня тоже иногда посещают умные мысли. Может этот блог будет интересен ещё кому-то.