Привязка IP+MAC

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (6)

просмотр истории страницы
{code}/app/asr_billing/service restart{code}

h1. Синхронизация IP+MAC по ARP таблице
Синхронизация выполняется вручную при необходимости, например при внедрении функции если абоненты уже заведены, но ранее привязка не исопльзовалась.
Скриты получают MAC-адреса абонентов из ARP-таблицы XGE.
# Создайте указанные ниже файлы и со следующим содержимым:
*/app/xge/cfg/mac_autoget.sh*
xgesh session $ip mac set $current_mac
fi
done{code}
*/app/xge/cfg/mac_autoget.sh*
{code}#!/bin/bash

>/tmp/true_ipmac
#Проходим по списку IP юзеров, у которых в базе не прописан мак
#Если мак в arp таблице обнаружен, cоздаем статическую привязку, пишем в файл ip и mac
for ip in $(</tmp/users_ip_where_no_mac_in_db.list); do
current_mac="$(xgesh session $ip mac get)"
if [ "$current_mac" == "00:00:00:00:00:00" ]; then
continue
else
echo $ip $current_mac >> /tmp/true_ipmac
xgesh session $ip mac set $current_mac
fi
done {code}
*/app/base/cfg/mac_process.sh*
#Получаем из db список IP неудаленных юзеров, у которых пустой мак и есть ip
get_list() {
sqlexec "set heading off; select uf_ip2string(ip) from users where mac='' and ip!=0 and deleted=0 and opt82=0 and abonent_id>1" | grep -v "^$" | sort -u > /app/xge/tmp/users_ip_where_no_mac_in_db.list
}
#Вызываем сторонный скрипт получения маков из арп таблицы
[ ! -s /app/xge/tmp/true_ipmac ] && exit 11
while read ip mac ; do
sqlexec "update users set mac='"$mac"' where uf_ip2string(ip)='"$ip"'"
curl -XPOST 'http://169.254.80.82:8082/rest_api/v2/Users/' -d 'method1=objects.get&arg1={"ip":"'$ip'"}&method2=set&arg2={"mac":"'$mac'"}&method3=save&arg3={}'
done <<< "$(</app/xge/tmp/true_ipmac)"