Пока как временное решение использую скрипт вида:
Код: Выделить всё
#!/usr/bin/perl
use strict;
use warnings;
use DBI;
use Socket;
my $db_base="UTM5";
my $db_host="ip";
my $db_port=3306;
my $db_login="login";
my $db_pass="pasword";
my $dsn="dbi:mysql:$db_base:$db_host:$db_port";
my $dbh_utm=DBI->connect($dsn,$db_login,$db_pass);
my $sth = $dbh_utm->prepare("SELECT * FROM accounts WHERE balance<0 and balance>-0.001 AND is_deleted=0 ");
$sth->execute;
open(LOG, ">>/netup/utm5/mytools/change_account_balance.log");
my @row;
while( @row = $sth->fetchrow_array)
{
print LOG "/netup/utm5/bin/utm5_urfaclient -a change_account_balance -account_id ".$row[0]." balance ".$row[1]." \n";
system("/netup/utm5/bin/utm5_urfaclient -a change_account_balance -account_id ".$row[0]." >/dev/null 2>/dev/null\n");
}
close(LOG);
$sth->finish;
$dbh_utm->disconnect();
Код: Выделить всё
<?xml version="1.0"?>
<urfa>
<call function="rpcf_change_account_balance">
<parameter name="account_id" />
<parameter name="balance" value="0" />
<parameter name="comment" value=""/>
</call>
</urfa>
В логе вот такое вот непотребство:
- Aug 08 11:15:54 ?Debug : e016700 DBConnection_mysql: <0x1bcaf60> SQL query: UPDATE downloaded SET qnt='240518168596', discounted='6.90393e-310', downed_as_prepaid='240518168596' WHERE downloaded_id='939' AND tclass_id='54233'
Aug 08 11:15:54 ?Debug : e016700 DBConnection_mysql: <0x1bcaf60> SQL query: UPDATE accounts SET balance='-6.903931809968679e-310' WHERE id='939'
Aug 08 11:15:54 ?Debug : e016700 DBConnection_mysql: <0x1bcaf60> SQL query: INSERT INTO discount_transactions_all(account_id,incoming_rest,outgoing_rest,discount,discount_with_tax,service_id,service_type,slink_id,discount_date,charge_type,discount_period_id) VALUES ('939','0','-6.903931809968679e-310','6.903931809968679e-310','6.903931809968679e-310','16','3','1143','1502180154','3','56')
Aug 08 11:15:54 ?Debug : e016700 DBConnection_mysql: <0x1bcaf60> SQL SELECT query: SELECT id FROM dtagg_cust WHERE account_id = '939'
Aug 08 11:15:54 ?Debug : e016700 DBConnection_mysql: <0x1bcaf60> SQL query: INSERT INTO discount_transactions_iptraffic_all(id,account_id,discount,discount_with_tax,service_id,slink_id,discount_date,discount_date_hour,discount_date_day,discount_date_month,t_class,base_cost,ipid,bytes,discount_period_id) VALUES ('110660233','939','6.903931809968679e-310','6.903931809968679e-310','16','1143','1502180154','1502179200','1502139600','1501534800','54233','6.903921598463638e-310','0','240518168596','56')
Aug 08 11:16:24 ?Debug : db11700 DBConnection_mysql: <0x1b97e00> SQL query: UPDATE dhs_sessions_log SET account_id='939', flags='0', slink_id='1143', last_update_date='1502180184', Acct_Status_Type='3', Acct_Input_Packets ='181141', Acct_Input_Octets ='17476091', Acct_Input_Gigawords ='0', Acct_Output_Packets ='426375', Acct_Output_Octets ='536498817', Acct_Output_Gigawords ='0', Acct_Terminate_Cause='0', Acct_Session_Time ='60843' WHERE id='10699526'
Aug 08 11:22:24 ?Debug : db11700 DBConnection_mysql: <0x1bc4480> SQL query: UPDATE dhs_sessions_log SET account_id='939', flags='0', slink_id='1143', last_update_date='1502180544', Acct_Status_Type='3', Acct_Input_Packets ='181142', Acct_Input_Octets ='17476167', Acct_Input_Gigawords ='0', Acct_Output_Packets ='426412', Acct_Output_Octets ='536501197', Acct_Output_Gigawords ='0', Acct_Terminate_Cause='0', Acct_Session_Time ='61203' WHERE id='10699526'
- +-----------+------------+-----------------------+-----------------------+-----------------------+-----------------------+------------+--------------+--------------------+----------+---------------+-------------+
| id | account_id | incoming_rest | outgoing_rest | discount | discount_with_tax | service_id | service_type | discount_period_id | slink_id | discount_date | charge_type |
+-----------+------------+-----------------------+-----------------------+-----------------------+-----------------------+------------+--------------+--------------------+----------+---------------+-------------+
| 110378677 | 939 | 0 | 0 | 0 | 0 | 16 | 3 | 55 | 1143 | 1501533537 | 3 |
| 110380518 | 939 | 0 | -500 | 500 | 500 | 15 | 2 | 55 | 1144 | 1501534799 | 2 |
| 110380519 | 939 | -500 | -500 | 0 | 0 | 16 | 3 | 55 | 1143 | 1501534799 | 3 |
| 110431839 | 939 | -500 | -500 | 6.9039318099687e-310 | 6.9039318099687e-310 | 16 | 3 | 56 | 1143 | 1501638347 | 3 |
| 110513252 | 939 | -500 | -500 | 0 | 0 | 16 | 3 | 56 | 1143 | 1501830656 | 3 |
| 110624259 | 939 | -500 | -500 | 0 | 0 | 16 | 3 | 56 | 1143 | 1502097018 | 3 |
| 110634012 | 939 | -500 | 0 | -500 | -500 | 0 | 0 | 0 | 0 | 1502116681 | 16 |
| 110660233 | 939 | 0 | -6.9039318099687e-310 | 6.9039318099687e-310 | 6.9039318099687e-310 | 16 | 3 | 56 | 1143 | 1502180154 | 3 |
| 110661524 | 939 | -6.9039318099687e-310 | 0 | -6.9039318099687e-310 | -6.9039318099687e-310 | 0 | 0 | 0 | 0 | 1502183258 | 23 |
+-----------+------------+-----------------------+-----------------------+-----------------------+-----------------------+------------+--------------+--------------------+----------+---------------+-------------+