Выкидываем всех на accel, кто не онлайн в админке
Рассинхронизация
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$NAS_IP = "213.174.7.254";
$TIME_ZONE = "Europe/Kiev";
$CONF_MYSQL_HOST = "213.174.7.11";
$CONF_MYSQL_USERNAME = "accel";
$CONF_MYSQL_PASSWORD = "0g23hg2h3g2u93b9t23";
$CONF_MYSQL_DBNAME = "mikbill";
date_default_timezone_set("$TIME_ZONE");
$db = new PDO( "mysql:host={$CONF_MYSQL_HOST};dbname={$CONF_MYSQL_DBNAME}", $CONF_MYSQL_USERNAME, $CONF_MYSQL_PASSWORD,
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES koi8r") );
$QUERY1 = "SELECT uid, username, framedipaddress FROM radacctbras";
$QUERY2 = "SELECT uid, user, local_ip FROM users";
$CMD = "accel-cmd show sessions | grep active | awk '{print $7}'";
$ip_list = array();
$users_accel = exec($CMD, $output);
foreach ($output as $line) {
$ip = filter_var($line, FILTER_VALIDATE_IP);
if( $ip != "" ) {
$ip_list[$ip]["accel"] = 1;
}
}
$res1 = $db->query($QUERY1, PDO::FETCH_LAZY);
foreach ($res1 as $row) {
$ip_list[$row["framedipaddress"]]["billing"] = 1;
$ip_list[$row["framedipaddress"]]["uid"] = $row["uid"];
$ip_list[$row["framedipaddress"]]["username"] = $row["username"];
}
$users_mikbill = array();
$res2 = $db->query($QUERY2, PDO::FETCH_LAZY);
foreach ($res2 as $row) {
$users_mikbill[$row["local_ip"]]["uid"] = $row["uid"];
$users_mikbill[$row["local_ip"]]["username"] = $row["user"];
}
foreach ($ip_list as $key => $ip) {
if ( !isset($ip["uid"]) ) {
if( isset($users_mikbill[$key]) ) {
echo "uid: {$users_mikbill[$key]["uid"]}, ip: {$key}, accel = online, billing = offline \n";
exec("accel-cmd terminate ip {$key}");
} else {
echo "ip: {$key} not found in mikbill \n";
exec("accel-cmd terminate ip {$key}");
}
}
}
- nano fix_missing_sessions.php
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$NAS_IP = "213.174.7.254";
$TIME_ZONE = "Europe/Kiev";
$CONF_MYSQL_HOST = "213.174.7.11";
$CONF_MYSQL_USERNAME = "accel";
$CONF_MYSQL_PASSWORD = "0g23hg2h3g2u93b9t23";
$CONF_MYSQL_DBNAME = "mikbill";
date_default_timezone_set("$TIME_ZONE");
$db = new PDO( "mysql:host={$CONF_MYSQL_HOST};dbname={$CONF_MYSQL_DBNAME}", $CONF_MYSQL_USERNAME, $CONF_MYSQL_PASSWORD,
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES koi8r") );
$QUERY1 = "SELECT uid, username, framedipaddress FROM radacctbras";
$QUERY2 = "SELECT uid, user, local_ip FROM users";
$CMD = "accel-cmd show sessions | grep active | awk '{print $7}'";
$ip_list = array();
$users_accel = exec($CMD, $output);
foreach ($output as $line) {
$ip = filter_var($line, FILTER_VALIDATE_IP);
if( $ip != "" ) {
$ip_list[$ip]["accel"] = 1;
}
}
$res1 = $db->query($QUERY1, PDO::FETCH_LAZY);
foreach ($res1 as $row) {
$ip_list[$row["framedipaddress"]]["billing"] = 1;
$ip_list[$row["framedipaddress"]]["uid"] = $row["uid"];
$ip_list[$row["framedipaddress"]]["username"] = $row["username"];
}
$users_mikbill = array();
$res2 = $db->query($QUERY2, PDO::FETCH_LAZY);
foreach ($res2 as $row) {
$users_mikbill[$row["local_ip"]]["uid"] = $row["uid"];
$users_mikbill[$row["local_ip"]]["username"] = $row["user"];
}
foreach ($ip_list as $key => $ip) {
if ( !isset($ip["uid"]) ) {
if( isset($users_mikbill[$key]) ) {
echo "uid: {$users_mikbill[$key]["uid"]}, ip: {$key}, accel = online, billing = offline \n";
exec("accel-cmd terminate ip {$key}");
} else {
echo "ip: {$key} not found in mikbill \n";
exec("accel-cmd terminate ip {$key}");
}
}
}
Комментарии
Отправить комментарий