вторник, 7 мая 2013 г.

Логинация агентов коллцентра с телефона на Asterisk

У клиента возникло желание логинить коллбэк агентов колл-центра с телефона, дабы не запутывать народ с веб интерфейсом. Итак, приступим к выполнению поставленной задачи.
Откроем файл /etc/asterisk/extensions_custom.conf, добавим 2 строки в инклюд, закоментируем контекст [agentlogin] и ниже пропишем контекст агент-логин и агент-логоф. Выглядить это все должно вот так:


[from-internal-custom]
exten => 1234,1,Playback(demo-congrats)         ; extensions can dial 1234
exten => 1234,2,Hangup()
exten => h,1,Hangup()
include => custom-login
include => custom-logoff
include => conferences
include => calendar-event
include => weather-wakeup

пятница, 26 апреля 2013 г.

Бэкап конфигов роутеров и цисок средствами системы


Копирование конфига рутера или циски на внешний tftp сервер
то есть есть последовательность команд которые при выполнении bash отправляет телнету, например echo - команда баша,а open 172.25.26.40 - команда телнета, получается echo отправляет команды друг за другом телнет клиенту, который этими командами и лезет в роутер, причем после каждой отправленной команды средствами sleep bash'а мы некоторое время ожидаем для предотвращения таймаута ответа.

(
echo open 172.25.26.40
sleep 2
echo "sandi"
sleep 1
echo "copy startup-config tftp://172.25.26.38/conf"
sleep 5
echo "exit"
) | telnet

пятница, 22 марта 2013 г.

Перевели UTM5 с 32 битной системы на 64-битную и пиздец??


UTM5. URFAclient на PHP. Error calling function.



Для 64-х битных систем, если при вызове пользовательских функций возникает ошибка "Error calling function"
Всему виной php-функция unpack. Костыль нашел на форуме netup.ru.
Нужно поправить функцию AttrGetInt в файле URFAClient_Packet.php

  function AttrGetInt($code)
    {
                if (isset($this->attr[$code]['data'])) {
                    $x = unpack("N", $this->attr[$code]['data']);
                    if ($x[1]>2147483647) return $x[1]-4294967296;
                    return $x[1];
                } else {
                        return FALSE;
                }
    }

если же после переноса или установке присуствует ошибка
 Warning: Cannot modify header information - headers already sent by...  

 проверьте наличие директивы output_buffering в файле php.ini и включите ее (on поставьте или 4096) 

четверг, 21 марта 2013 г.

Цикл выполняет действие при определенном выражении в логе

Цикл while построчно проверяющий лог на наличие определенного выражения, как только выражение найдено, выполняется нужная команда

Также после выполнения команды скрипт посылает письмо на почтовый ящик


while [ 1=1 ]; do
tail -F  /var/log/httpd-error.log | grep -m 1 "exit signal Segmentation fault"
/usr/local/etc/rc.d/apache22 restart
sleep 5;
S=/tmp/apache_restart.succes
 echo "Apache has restarted succesfully!">$S
 echo "Hostname: $(hostname)">$S
 echo "Apache has restarted succesfully!">>$S
 mail -s "APACHE HAS RESTARTED!" "s@it-lab.md" <$S
 rm -f $S
done

среда, 20 марта 2013 г.

Скрипт массового пинга хостов

CMD Скрипты, которые проверяют ip адреса из текстового файла и на выходе выдают 2 списка, alive и dead.


check.cmd

@Echo off
for /F %%i in (c:\ip.txt) do call report.cmd %%i

report.cmd
@Echo off
ping -n 1 -w 1000 %1 >nul
if %errorlevel%==0 goto good
goto bad
:good
echo %1>>alive.txt
goto fin
:bad
echo %1>>dead.txt
:fin

P.S. пути подправить под себя.

Скрипт удаляет все сообщения из очереди Postfix

скрипт удаляет все сообщения почтового ящика из очереди, куда идет спам

вторник, 12 февраля 2013 г.

Скрипт записи mac адреса в ARP таблицу на CISCO


Часто бывает, что необходимо отправлять команды на cisco извне. В моем случае необходимо отключать доступ юзеров в интернет, один из способов - это подставление липовых mac'ов в ARP таблицу маршрутизатора. NetUP UTM5 Billing умеет работать с cisco на уровне добавления записей в динамический access-list, но не все cisco поддерживают эти динамические листы. Итак, отправляем из биллинга команду, которая вызывает нижеописанный скрипт.
Скрипт написан на Bash с использованием Expect.

#!/bin/bash
prompt="*#"
promptconf="*(config)#"

четверг, 7 февраля 2013 г.

Скрипт, который копирует код сайта и дамп базы на удаленный фтп


#!/bin/sh

DIR=/backup
DATA=`date '+%Y%m%d'`
FTPU="user"
FTPP="password"
FTPS="ftp-host"
NOW=$(date +"%d-%m-%Y")
cd $DIR
find $DIR/* -mtime +1 -exec rm -f {} \;
mysqldump -uroot --password='password' base  > base-$DATA.sql
tar -czf hostname-$DATA.tar.gz /path/to/folder
for file in *-$DATA.*
do
echo "$file" >> $DIR/current
done
rm -f $DIR/current
/usr/local/bin/lftp -u $FTPU,$FTPP -e "mkdir backup/$NOW;cd backup/$NOW; mput $DIR/*; quit" $FTPS
echo "Backup Server $DATA" | mail -s "Backup Server $DATA" s@it-lab.md < $DIR

Как выявить медленные SQL запросы?

Это случалось с каждым из нас при разработке веб-сайтов или приложений, использующих MySQL в качестве базы данных. Производительность внезапно сильно падала, и вы не имели понятия, почему это случилось. Этому могут быть причиной многие факторы (сильная загрузка CPU, нехватка дискового пространства, или слабая пропускная способность канала), но также это может быть и неоптимизированный запрос, выполняемый намного дольше, чем должен.

Как узнать, какие из запросов выполняются дольше всего?
В MySQL есть встроенный функционал для ведения логов медленных запросов.

Для включения этого функционала необходимо произвести одно из действий:
  1. добавить следующие строки в /etc/my.cnf:
    log-slow-queries=/tmp/slow_queries.log
    long_query_time=1

Такая знакомая команда cat


Такая знакомая команда cat

Алексей Дмитриев, 17апреля 2009

Статья из серии HuMan

Команда cat, без сомнения, одна из самых употребительных. С ее помощью просматривают содержимое текстовых файлов. Но не все знают о еще двух "способностях" этой команды: комбинировать и объединять копии файлов и создавать новые файлы.
Наше невежество простирается и на само название этой команды: по-русски оно всеми произносится как "кат", хотя по-английски оно звучит как "кэт", так же как кошка. Из-за этого в англоговорящем мире название команды считается не интуитивным (хотя происходит от слова concatenatе - объединять) и вызывает множество шуток и нареканий. Кстати говоря, русскому произношению "кат" соответствует команда cut, служащая совсем для других целей.

вторник, 5 февраля 2013 г.

Небольшой тюнинг и рекомендации для mysql


В статье будет рассмотрено несколько рекомендаций по тюнингу и улучшении работыmysql. Замечу сразу, что численные значения для каждого сервера будут свои (подбираются путём экспериментов) и простое бездумное копирование, может не только ничего не дать, но и напротив – ухудшить производительность.

четверг, 31 января 2013 г.

Using esxtop to identify storage performance issues


Using esxtop to identify storage performance issues

Details

This article provides information about esxtop and latency statistics that can be used when troubleshooting performance issues with SAN-connected storage (Fibre Channel or iSCSI). To view the complete NAA identifier for each disk device in esxtop.

Solution

The interactive esxtop utility can be used to provide I/O metrics over various devices attached to a VMware ESX host.

Configuring monitoring using esxtop

 To monitor storage performance per HBA:
  1. Start esxtop by typing esxtop at the command line.
  2. Press d to switch to disk view (HBA mode).
  3. Press f to modify the fields that are displayed.
  4. To view the entire Device name, press SHIFT + L and enter 36 in Change the name field size.
  5. Press b, c, d, e, h, and j to toggle the fields and press Enter.
  6. Press s, then 2 to alter the update time to every 2 seconds and press Enter.
  7. See Analyzing esxtop columns for a description of relevant columns.
Note: The following options are only available in VMware ESX 3.5 and later.

вторник, 29 января 2013 г.

Setting Up Postfix As A Backup MX


In this tutorial I will show how you can set up a Postfix mailserver as a backup mail exchanger for a domain so that it accepts mails for this domain in case the primary mail exchanger is down or unreachable, and passes the mails on to the primary MX once that one is up again.
I do not issue any guarantee that this will work for you!

1 Preliminary Note

I want to set up a backup MX for the domain example.com. In this example the primary MX for example.com is called mx1.example.com (IP address 1.2.3.4), so I call the backup MX mx2.example.com (IP address 1.2.3.5).
I have created MX records for example.com that look like this:
example.com.               86400   IN      MX      10 mx1.example.com.
example.com.               86400   IN      MX      20 mx2.example.com.
It's important that the primary MX has a lower number (10) and therefore a higher priority than the backup MX (20).
I'm assuming that the Postfix on mx2.example.com is already installed and working.

Поднимаем FreeBSD 8.2+ на ZFS root с зеркалированием используя GPT с помощью Rescue-System в Hetzner

Не так давно один из моих клиентов решил перенести свои проекты из российского датацентра в Германию в компанию Hetzner. Им был выбран выделенный сервер в конфигурации EX 4S (i7 2600, 32Gb ram, 2x3Tb), за какие то совершенно смешные деньги.
И так как и в дальнейшем планировалось еще докупать аналогичные сервера, решил собрать нужную информацию в единую заметку. Данная заметка является скорее компиляцией и переводом нескольких статей которые мне пришлось использовать когда первый сервер был установлен + что немного от себя.

Наверное не так мало системщиков, которые бы не знали компанию Hetzner. По мимо низких ценников, у них довольно интересно реализована замена недешевой KVM-IP, в виде загрузочных образов систем названных Rescue System. И так как FreeBSD при заказе сервера они сами не устанавливают, то единственный способ установить систему это воспользоваться данной возможностью.

пятница, 25 января 2013 г.

УСТАНОВКА VMWARE TOOLS НА CENTOS

Ситуация
Есть установленная CentOS в среде VMware для комфортной и правильной
работы ОС необходимо установить VMware Tools на данную машину.
Решение
Необходимо выбрать из меню свойств виртуальной машины - Install VMware Tools...
Образ автоматически "вставляется" в CDRom который необходимо смонтировать
(в нашем случае в каталог mnt):


Тюнинг файловой системы Linux


Достаточно интересный материал об оптимизации Linux-системы
ЧАСТЬ 1 — Оптимизация винчестера
Корневой раздел, на который у вас установлен Linux, скорее всего, содержит файловую систему ext3/ReiserFS/XFS. Сведения о монтируемых при загрузке разделах содержатся в файле /etc/fstab, где обязательно присутствует корневой раздел (/). Обратите внимание на пункт defaults, обозначающий стандартный набор параметров монтирования. Однако мы можем указать их и вручную, поставив после defaults запятую и перечислив ряд настроек, которые сделают файловую систему быстрее.