Category: Pазное

Сен 28 2010

Router Board 450, сброс пароля.

Mikrotik выпускает довольно большую разновидность коробочных маршрутизаторов. Главное достоинство таких коробок — один раз настроил и офис работает в интернете фактически без обслуживания. ну по крайней мере эти коробки трогать не надо, максимум передернуть питание.
На одном из таких офисов коробка простояла года 3 и в конце концов, когда решили поменять провайдера выяснилось, пароля никто не помнит, роутер настраивал человек, имя которого кануло в веках. Пришлось ресетить, к недостатку следует сразу отнести то, что ресет нельзя сделать только на пароль, трется полностью конфигурация. А сам ресет делается путем закорачивания контактов помеченных как ресет внутри самого маршрутизатора. Read more »

Авг 03 2010

Состояние memcached, статистика его использования.

Memcached довольно популярен последнее время. Все чаще и чаще приходится ставить его вместе с вебсервером. Установка не сложная, но затем, случается возникают вопросы насколько он занят, как часто им пользуется вебсайт и тп. Ответ заложен в сасмом memcached. У него есть встроенный механизм сбора статистики и отдает он эту статистику по команде stat. Осталось ее послать. Можно с помощью разных скриптов на php или на perl или на python, без разницы на чем. Другое дело, что писать или искать этот скрипт нет никакой нужды. Получить статистику можно из шелла с помощью nc.
Вот так вот:

echo stats | nc 127.0.0.1 11211

Это мы собираем статистику с локального memcached на стандартном порту 11211.
Read more »

Июн 07 2010

Доработанный скрипт бекапа конфигурации свитчей Edge-Core

Не так давно я написал скрипт бекапа конфигурации свитчей Edge-Core. Я его приводил в статье Скрипт бекапа свитчей EdgeCore. В этом скрипте есть один недостаток, в случае недоступности одного из свитчей, на работе с ним скрипт вылетит. И все остальные свитчи не будут забекаплены. Но поскольку я писал скрипт на Ruby, воспользуемся его средствами для обработки этой ситуации. Перехватим ошибку.
Доработанный скрипт выглядит так:

#!/usr/local/bin/ruby
require '/root/bin/telnet'
require 'date'
today=Date.today.to_s
file = File.new("/root/bin/switches.txt", "r")
while (line = file.gets)
        (name, ip, tftp, logins, pass)=line.split
        name="#{name}-#{today}.txt"
        begin
                tn = Net::Telnet::new("Host"=>ip, "Timeout"=>80, "Prompt"=> /Vty/ )
        rescue Exception => e
                puts "Switch #{name} unreach"
                next
        end
        tn.login(logins, pass) {|c| print c }
        tn.cmd("copy running-config tftp\n#{tftp}\n#{name}\n")  { |c| print c }
end
file.close

Этот скрипт забекапит все свитчи, и не вылетит в случае недоступности одного из них.

Май 21 2010

Установка и настройка sphinx.

Sphinx — поисковая машина. Абсолютно бесплатная. Sphinx достаточно активно используют некоторые вебмастера при создании своих сайтов. Установка из портов достаточно проста.

cd /usr/ports/textproc/sphinxsearch
make install clean

Перед сборкой появляется небольшой диалог опций.

┌────────────────────────────────────────────────────────────────────┐
│                  Options for sphinxsearch 0.9.9                    │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │     [X] MYSQL             MySQL support                        │ │
│ │     [ ] PGSQL             PostgreSQL support                   │ │
│ │     [X] ICONV             Iconv support                        │ │
│ │     [X] OPTIMIZED_CFLAGS  Use compiler optimization (-O3)      │ │
│ │     [X] ID64              use 64-bit document and word IDs     │ │
│ │     [ ] UNIXODBC          unixODBC support                     │ │
│ │                                                                │ │
├─└────────────────────────────────────────────────────────────────┘─┤
│                       [  OK  ]       Cancel                        │
└────────────────────────────────────────────────────────────────────┘

Опции обеспечивают индексацию большого количества документов(ID64 позволяет пронумеровать большое число файлов), находящихся в базах MySQL, ICONV обеспечивает поддержку любых текстов в любых раскладках(это оптимистическое заявление).
Read more »

Май 07 2010

Backup с записью на ftp.

Хостинговые компании предлагают выделенные сервера, на которых бы владельцы серверов стоящих в датацентре могли бы хранить резервные копии(backupы) своих данных. Доступ к таким серверам возможен только по протоколу ftp.
Брать за основу практику, когда человек вручную выливает информацию на ftp не стоит. Даже рассматривать не стоит. Поэтому нужно писать скрипт. В качестве ftp клиента я использую lftp(/usr/ports/ftp/lftp/). А сам скрипт выглядит так:

#!/bin/sh
TO="/var/backup"
DATE=`/bin/date  +%d%m%y`
FTPU='hilik'
FTPP='hilik-123'
FTPS='backup.com'
/usr/bin/tar -jcf $TO/var-www-$DATE.tar.bz2 /var/www
/usr/local/bin/lftp -u $FTPU,$FTPP $FTPS -e "mput $TO/var-www-$DATE.tar.bz2;quit"
/bin/rm $TO/var-www-$DATE.tar.bz2

Скрипт простой, у меня работает нормально.

Апр 21 2010

MRTG. Мониторим очередь postfix.

Помимо параметров предоставляемых по SNMP существует еще масса параметров, которые нужно наблюдать в динамике. Первый из них — это мониторинг почтовой очереди.
Сделать это можно с помощью скриптов, вызываемых напрямую из MRTG.
Скрипт для мониторинга очереди Postfix из MRTG выглядят так:

#!/bin/sh
DATA=`/usr/bin/mailq  | /usr/bin/grep Request| /usr/bin/awk '{ print $5 }'`
echo $DATA
echo 0
echo 0
echo 0

В самом конфиге MRTG выглядит так:

Title[mailq]: Mail Queue (MB)
PageTop[mailq]: <H1>Mail Queue</H1>
Options[mailq]: nobanner,gauge,noinfo,nopercent,growright
Target[mailq]: `/root/bin/mailq.sh`
kMG[mailq]:
MaxBytes[mailq]: 10
AbsMax[mailq]: 2048
YLegend[mailq]: Mails in queue
Unscaled[mailq]: ymwd
LegendI[mailq]:
LegendO[mailq]:
Suppress[mailq]: y
Апр 05 2010

Asterisk. Перенаправление(transfer) звонков.

Допустим у нас есть 2 менеджера, подключенные по SIP, с такими настройками в sip.conf:

[manager1]
type=friend
secret=manager1
host=dynamic
username=manager1
context=sip-users
callerid=101
call-limit=2
 
[manager2]
type=friend
secret=manager2
host=dynamic
username=manager2
context=sip-users
callerid=102
call-limit=2

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

show features

в командной строке Asterisk(asterisk -r)
И мы должны увидеть:

Blind Transfer            #       #

Если эта кнопка не устраивает, вы можете переопределить ее в файле features.conf:

blindxfer => ##

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

exten => 102,1,Dial(SIP/manager2,,t)

Маленькая буква t в конце и разрешает этот трансфер. И не забудте, номер на который идет перенаправление, должен быть доступен в том контексте в котором абонент совершает звонок. То есть в нашем случае в sip-users.

Мар 12 2010

Smartmontools. Мониторим состояние дисков.

Самым ценным и в то же время самым уязвимым местом сервера — является жестский диск. На нем находится вся информация, но в то же время, он фактически единственный механический агрегат в компьютере. А механические движения — это повышенный риск выхода из строя. Иногда удается избежать использования жестских дисков, но это пока еще редкость. Поэтому остается один выход, бдить за состоянием жестского диска.
Read more »


Украинская Баннерная Сеть