bgb_IP_search.sh
Код:
#!/bin/sh
# IP адрес абонента, который нужно найти
ip_adress='1.2.3.4'
# имя файла, куда запишутся результаты поиска
log_file="/path/to/IP_search_$ip_adress.txt"
# SQL Server configuration
db_host='localhost'
db_port='3306'
db_user='bill'
db_pass='bgbilling'
db_name='bgbilling'
mysql="/usr/bin/mysql -h $db_host -P $db_port -u $db_user -p$db_pass -D $db_name -B --default-character-set=utf8 -e"
session_table_list=`$mysql "SHOW TABLES FROM bgbilling WHERE Tables_in_bgbilling LIKE 'log_session_1_%';" | grep -v 'Tables_in_bgbilling'`
echo 'dogovor;start;stop;time;mac;ip' > $log_file
if [ -n "$session_table_list" ]; then
for table_name in $session_table_list; do
$mysql "SELECT (SELECT c.title FROM contract c LEFT JOIN user_login_1 ul ON (ul.cid = c.id) WHERE ul.id = lid) AS dogovor, DATE_FORMAT(session_start, '%d.%m.%Y %T') AS start, DATE_FORMAT(session_stop, '%d.%m.%Y %T') AS stop, SEC_TO_TIME(session_time) AS time, from_number AS mac, INET_NTOA(ipaddr) AS ip FROM $table_name WHERE ipaddr = INET_ATON('$ip_adress');" | \
awk '/'$ip_adress'/ {printf("%s;%s %s;%s %s;%s;%s;%s\n",$1,$2,$3,$4,$5,$6,$7,$8)}' >> $log_file
done
fi
bgb_MAC_search.sh
Код:
#!/bin/sh
# MAC адрес абонента, который нужно найти
# адрес записывать только так, как он отобраджается в биллинге,
# т.е. в нижнем регистре без каких либо символов разделителей
mac_adress='010203040506'
# имя файла, куда запишутся результаты поиска
log_file="/path/to/MAC_search_$mac_adress.txt"
# SQL Server configuration
db_host='localhost'
db_port='3306'
db_user='bill'
db_pass='bgbilling'
db_name='bgbilling'
mysql="/usr/bin/mysql -h $db_host -P $db_port -u $db_user -p$db_pass -D $db_name -B --default-character-set=utf8 -e"
session_table_list=`$mysql "SHOW TABLES FROM bgbilling WHERE Tables_in_bgbilling LIKE 'log_session_1_%';" | grep -v 'Tables_in_bgbilling'`
echo 'dogovor;start;stop;time;mac;ip' > $log_file
if [ -n "$session_table_list" ]; then
for table_name in $session_table_list; do
$mysql "SELECT (SELECT c.title FROM contract c LEFT JOIN user_login_1 ul ON (ul.cid = c.id) WHERE ul.id = lid) AS dogovor, DATE_FORMAT(session_start, '%d.%m.%Y %T') AS start, DATE_FORMAT(session_stop, '%d.%m.%Y %T') AS stop, SEC_TO_TIME(session_time) AS time, from_number AS mac, INET_NTOA(ipaddr) AS ip FROM $table_name WHERE from_number = '$mac_adress';" | \
awk '/'$mac_adress'/ {printf("%s;%s %s;%s %s;%s;%s;%s\n",$1,$2,$3,$4,$5,$6,$7,$8)}' >> $log_file
done
fi
Вдруг кому пригодится.