=====Дополнительные программы===== Все дополнения расчитаны для установки в каталог /usr/abills/misc. ==== arping.pl ==== Универсальная внешняя утилита для ARP pingю Пока работает только с серверами доступа Mikrotik\\ **/usr/abills/Abills/modules/Dv/arping.pl** Usage: ./arping.pl ACCT_SESSION_ID=81809614 [DEBUG=1] [ L2=1 [ NAS_TYPES=mikrotik,mikrotik_dhcp ]] DEBUG - Выводит отладочную информацию L2 - Не использовать NAS сесии, а вычислить NAS, к которому привязан пул в том же влане, что и хост сесии NAS_TYPES - Типы серверов доступа, которые могут выполнить arping Установка: cd /usr/abills/libexec/ ln -s ../Abills/modules/Dv/arping.pl . chmod +x arping.pl Дописать в **config.pl**, чтоб в онлайне возле сесии появилась кнопка "ARPPING" $conf{DV_EXTERNAL_DIAGNOSTIC}='ARPPING:/usr/abills/libexec/arping.pl ACCT_SESSION_ID=%ACCT_SESSION_ID%'; ====autozh.pl==== Версия: 0.12; от 21.09.2013\\ [[http://abills.net.ua/misc/autozh.pl|autozh.pl]] Скрипт автозапа и отключения всех пользователей или выбранного пользователя системы из консоли. параметры: скидыват абонентов с негативным депозитом или тех у кого осталось до завершения услуги 5 дней ./autozh.pl DEBUG=1 HANGUP=1 DAYS2FINISH=5 NEGATIVE_DEPOSIT=1 ^ NAS_ID | Номер сервера доступа | ^ ACTION_EXPR= | Выражение (*). Програма просматривает определённое количество записей лога подключения (LAST_ACTIONS_COUNT) и если под данное выражение попадает логин определённо количество раз (ACTION_COUNT) система делает для данного аккаунта Zap \\ | ^ ACTION_COUNT= | Количество найденных попаданий. По умолчанию 20 | ^ NEGATIVE_DEPOSIT=1 | сбрасывать с линии только должников | ^ LAST_ACTIONS_COUNT= | Количество последний записей истории для просмотра. По умолчанию 250. | ^ HANGUP=1 | Отключить все активные сессии | ^ LOGIN=1 | Логин пользователя для отключения | ^DAYS2FINISH=xx| Дней до завершения услуги | ^ DEBUG=1..6 | Режим отладки | ^ help | справка | ====cisco_vlan.pl==== Версия: 0.02; от 21.08.2014\\ [[http://abills.net.ua/misc/cisco_vlan.pl|cisco_vlan.pl]] Утилита создания Vlan на коммутаторах Cisco для модуля [[abills:docs:modules:vlan:ru|Vlan]] ====radtest.sh==== abills/libexec/radtest.sh Консольная утилита тестирования радиус сервера Пример тестирования авторизации /usr/abills/libexec/radtest.sh auth -rad -u test -p 123456 Запрос Sending Access-Request of id 136 to 127.0.0.1 port 1812 User-Name = "test" User-Password = "123456" NAS-IP-Address = 127.0.0.1 NAS-Port = 1 Message-Authenticator = 0x00000000000000000000000000000000 Ответ радиус сервера rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=136, length=218 Filter-Id = "filter" Session-Timeout = 360 Framed-IP-Netmask = 255.255.255.255 Framed-IP-Address = 192.168.214.3 mpd-limit = "in#1=all rate-limit 2048000 384000 768000 pass" mpd-limit = "out#1=all rate-limit 12288000 2304000 4608000 pass" Acct-Interim-Interval = 90 mpd-table-static = "10=10.20.20.30 6000" mpd-table-static = "11=10.20.20.30 5000" Тестирование RADIUS пакета авторизации пакет авторизации **auth.cisco** User-Name = "85.132.9.244" User-Password = "ISG" Framed-IP-Address = 85.132.9.244 Cisco-Account-Info = "S10.200.28.225" NAS-Port-Type = Virtual Cisco-NAS-Port = "15/0/6/88" NAS-Port = 0 NAS-Port-Id = "15/0/6/88" Service-Type = Outbound-User NAS-IP-Address = 62.212.235.190 Acct-Session-Id = "3ED4EBBE02F8144F" запуск теста ./radtest.sh auth -rad -rad_file auth.cisco Запрос авторизации Sending Access-Request of id 120 to 127.0.0.1 port 1812 User-Name = "192.168.11.100" User-Password = "ISG" Framed-IP-Address = 192.168.11.100 Cisco-Account-Info = "S10.200.28.225" NAS-Port-Type = Virtual Cisco-NAS-Port = "15/0/6/88" NAS-Port = 0 NAS-Port-Id = "15/0/6/88" Service-Type = Outbound-User NAS-IP-Address = 192.168.1.1 Acct-Session-Id = "3ED4EBBE02F8144F" Ответ RADIUS rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=120, length=34 Reply-Message = "Not register" ====create_extbills.pl==== Версия: 0.2\\ [[http://abills.net.ua/misc/create_extbills.pl|create_extbills.pl]] Создание дополнительных счетов для пользователей. \\ Учтена возможность переноса определённой сумы с основного на дополнительный счёт (переменная $transfer_sum). Если у пользователя больше определённой сумы тогда определённая сума переноситься на доп. счёт с описанием об этом в журнале операций снятия и внесения денег. ====ipn_analize.sh==== Версия: 0.3\\ [[http://abills.net.ua/misc/ipn_analize.sh|ipn_analize.sh]] - Дополнительный анализатор flow-tools файлов. Есть возможность выборки суммарного трафика для определённого IP адреса. ====dhcp_tools.pl==== Версия: 0.7\\ [[http://abills.net.ua/misc/dhcp_tools.pl|dhcp_tools.pl]] **Набор дополнительных утилит для работы с DHCP**\\ * автоматическое занесения IP/MAC адресов пользователей в модуль Dhcphosts. Работает в двух режимах: - Занесение IP/MAC связок пользователей из файла. \\ Формат файла: LOGIN[TAB]IP[TAB]MAC[TAB]PORTS[TAB]NAS_ID[TAB]OPTION_82[TAB]VID[TAB]HOSTNAME - Режим ARP монитора система вытаскивает IP/MAC связки из arp таблицы сравнивает их с онлайн пользователями и заносит в базу\\ * Групповой перенос абонентов из одной сети в другую. # dhcp_tools.pl ADDRESS_SHIFT="NEW_NETWORK_ID:SRC_NET:DST_NET" ^NEW_NETWORK_ID| номер в какую сеть перенести абонентов | ^SRC_NET| Поточная сеть абонентов. Маска сети /24 (255.255.255.0) | ^DST_NET| Новая сеть абонентов. Маска сети /24 (255.255.255.0) | **Аргументы программы** ^ NETWORK | ИД сети для ARG grab. | ^ FILE | Режим парсера файла | ^ ADDRESS_SHIFT | Перенос абонентов из одной сети в другую | ^ DEBUG | Режим отладки. В режиме отладки выше 4 программа показывает действия на выполнения без реального выполнения их. | ====dv_disable.pl==== Версия: 0.5\\ [[http://abills.net.ua/misc/dv_disable.pl|dv_disable.pl]] - Блокирует должников Блокирует должников не плативших определённый период времени (по умолчанию 60 дней). При блокировании должники переводятся в статус "Слишком маленький депозит". В аргументах скрипта можно указать количество дней с последней оплаты и E-mail адрес администратора для получения отчётов о проведённых операциях. Аргументы программы можна записать в файл. DEBUG=0 LAST_PAYMENT_DAY=0 [TP_SUM] 100=-4 102=-10 103=-20 104=-25 После этого, указать путь через ключ CONFIG_FILE=/path/to/config/file ./dv_disable.pl CONFIG_FILE=dv_disable.ini DEBUG=7 Все аргументы, записаные в командной строке имеют больший приоритет, тоесть если в вызове сверху указано DEBUG=7, а в файле DEBUG=1, то активным будет значение 7 UID_TP и MIN_SUM записываются в секции [TP_SUM] в формате НОМЕР ТАРИФНОГО ПЛАНА=МАКСИМАЛЬНАЯ СУМА ДОЛГА Если нет параметра тарифного плана, то он считается равным нулю. **Аргументы:** ^CONFIG_FILE= | Конфигурационный файл | ^SET_STATUS=1..6 | Статус который устаналивается должникам ( по умолчанию: 5 "Слишком маленький депозит") | ^LAST_PAYMENT_DAY= | Количество дней с момента последней проплаты (60)| ^SENDMAIL= | E-mail администратора для отчёта | ^DEBUG=1..7 | Режим отладки ( при значении 7, только выводит список должников, не отключая)| ^help | Помощь | ====snmp_control.pl==== [[http://abills.net.ua/misc/snmp_control.pl|snmp_control.pl]] - Управление портами коммутатора (port,vlan,speed) на основе данных модулей Dhcphosts и Dv. Включение отключение портов управление скоростью. Запуск snmp_control.pl (ONLINE_ENABLE|ONLINE_DISABLE|HANGUP) %LOGIN %FILTER_ID %PORT ====convert_db.sh==== Версия: 0.9\\ [[http://abills.net.ua/misc/convert_db.sh|convert_db.sh]] - конвертация базы. * Конвертация из latin1 в cp1251. После конвертации не забудте установить правильно переменную **/usr/abills/libexec/config.pl** $conf{dbcharset}='cp1251'; * конвертация из cp1251 в utf8 # ./convert_db.sh -t utf8 после конвертации $conf{dbcharset}='utf8'; * конвертация с latin1 в utf8 # ./convert_db.sh -f latin1 -t utf8 Дополнительные параметры программы: |-d | название базы данных (по умолчанию abills) | |-u | пользователь для подключения к базе данных (по умолчанию root) | |-p | пароль подключения к базе данных | |-t | кодировка в которую переводим | |-f | С кодировки | |-h | Подсказка | ====traffic_class_add.pl (Фетчер сетей)==== Версия: 0.16\\ [[http://abills.net.ua/misc/traffic_class_add.pl|traffic_class_add.pl]] - Скрипт заполнения списка сетей для разных классов трафика. \\ Скрипт заполняет уже существующие классы трафика. * По умолчанию скрипт заносит UA-IX в 2 класс трафика * [[abills:docs:manual:misc_soft:roskomnadzor|РОСКОМНАДЗОР Выгрузка]] В переменной %class_source указываются ссылки на файлы с списком адресов my %class_source = ( # Номера сетей в классах трафика => Алрес в интернете 2 => 'http://адрес/ua.txt', 3 => 'http://193.33.236.1/crimea-ix.txt' ); скрипт анализирует сети формата: \\ xxx.xxx.xxx.xxx/xx xxx.xxx.xxx.xxx/xx ====pppoe_search.pl==== [[http://abills.net.ua/misc/pppoe_search.pl|pppoe_search.pl]] - Поиск несанкционированных PPPoE серверов. Чтобы заработал скрипт нужно добавит в **/etc/ppp/ppp.conf** !include /tmp/ppp.conf **Внимание, эта строка НЕ должна начинаться с пробела.** ====Конвертация адресов в журнал адресов==== MySql: REPLACE INTO streets (name, district_id) select address_street, 1 from users_pi group by 1; REPLACE INTO builds (street_id, number) select s.id, address_build from users_pi u, streets s WHERE u.address_street=s.name group by address_street, address_build; UPDATE users_pi pi LEFT JOIN streets s ON (s.name=pi.address_street) LEFT JOIN builds b ON (s.id=b.street_id AND b.number=pi.address_build) SET pi.location_id=b.id WHERE pi.location_id=0 Включение реестра адресов $conf{ADDRESS_REGISTER}=1; **Отключения реестра адресов** Иногда бывает ситуации что не удалось нормально сконвертировать адреса та как улицы были прописаны в разном формате или еще по каким то причинам. Для отключения проверки журнала адресов нужно убрать привязку к точкам подключения UPDATE users_pi SET location_id=0; и отключить $conf{ADDRESS_REGISTER}=0; ==== Конвертация контактов пользователя в формат новых контактов ==== ''/usr/abills/misc/contacts_migrate.pl'' Конвертирует старые контакты в [[abills:docs:manual:admin:form_users:user_contacts|новый формат]].\\ Дамп с старыми контактами сохраняется в ''backup/abills_users_pi-%DATE%.sql.gz''\\ # chmod +x /usr/abills/misc/contacts_migrate.pl # /usr/abills/misc/contacts_migrate.pl ====Скрипт Фильтра негативного депозита для ИПН==== [[http://abills.net.ua/misc/ipnfilter.sh|ipnfilter.sh]] - скрипт Фильтра негативного депозита для ИПН в конфигурационный файл добавляем $conf{IPN_FILTER}='/usr/abills/libexec/ipnfilter.sh %IP %STATUS \"%FILTER_ID\"'; ====Загрузка архива базы с удалённого сервера==== [[http://abills.net.ua/misc/fetch_backup|fetch_backup]] \\ Загружает с удалённого сервера последний архив базы \\ Перед работой с программой нужно создать на удалённом сервере (на сервер с бакапами abills) абонента и загрузить с локального на него сертифика для доступа по ssh без пароля \\. При первом запуске программа проверяет наличие сертификата для доступа к удалённому хосту и IP адрес удалённого хоста. Пользователь по умолчанию abills_admin запуск программы # fetch_backup [удалённый сервер] \\ ====Тестирование производительности системы==== ==Тест №1 Ubench для Freebsd== Чем больше число в результате тем лучше\\ cd /usr/ports/benchmarks/ubench && make install ==Тест №2 Простой тест на подсчет числа Пи== Чем меньше времени тем лучше\\ Скрипт:\\ #!/bin/sh time echo "scale=5000; 4*a(1)" | bc -l -q ==Тест №3 Unixbench 4.1== Чем больше число в результате тем лутше Установка на примере Debian Linux apt-get install gcc g++ time make wget http://members.dslextreme.com/users/andylee/unixbench-4.1.0-wht.tar.gz tar xzvf unixbench-4.1.0-wht.tar.gz cd unixbench-4.1.0-wht-2 make Запуск: ./Run Установка в Freebsd cd /usr/ports/benchmarks/unixbench && make install Запуск: unixbench ==Тест №4 Производительность жёстких дисков== # dd if=/dev/zero of=testfile bs=1m count=1024 1024+0 records in 1024+0 records out 1073741824 bytes transferred in 17.577054 secs (61087701 bytes/sec) ==== Тестирование системы после установки ==== === perldeps.pl === Скрипт, который проверяет установлены ли все необходимые модули для perl.\\ Умеет устанавливать с помощью нескольких систем сборки: * Собирать из портов * pkg * apt-get * yum Для проверки, запускать с ключом ''test''\\ Для установки, запустить с одним из: * apt-get * pkg * port * yum === post-install.sh === Скрипт, для проверки модулей Perl и корректности значений файла ''abills/Abills/programs'' \\ * Предложит запустить ''perldeps.pl'', если есть неустановленные модули.\\ * Проверяет переменные и файлы описанные в внутренних масивах.\\ * Предлагает команды для исправления ошибок, если это возможно.\\ * Проверяет соединение с базой.