Биллинговая система Nodeny
24 Апреля 2024, 06:52:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 [2] 3 4 ... 8
  Печать  
Автор Тема: авторизированые (всегда онлайн)  (Прочитано 30157 раз)
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #15 : 29 Сентября 2010, 09:45:17 »

счас тестируется фишка
она будет работать и без переделки listusers.pl
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #16 : 29 Сентября 2010, 11:41:07 »

touch autv.pl

Код:
#!/usr/bin/perl

use DBI;
use Time::localtime;
use Time::HiRes qw (gettimeofday tv_interval);
#28 сентябрь 2010
$tme=time();
$capl='/usr/local/nodeny/web/calls.pl';
$main_config='/usr/local/nodeny/nodeny.cfg.pl';
print ("error: not file /usr/local/nodeny/conf.cfg.pl") unless -e $main_config;
eval{require $main_config};
eval{require $capl};

$DSN="DBI:mysql:database=$db_name;host=$db_server;mysql_connect_timeout=$mysql_connect_timeout";
$dbh=DBI->connect($DSN,$user,$pw,{PrintError=>1});

$sdbtr=`date +x%Yx%-mx%-d`;
$au_t=time();
$au_t=$au_t-300;
$sth=$dbh->prepare(" select users.id as id,ip,`in`,`out` from users left join $sdbtr on users.id=$sdbtr.mid where lstate>0 and time>$au_t group by users.id; ");
$sth->execute;
while ($p=$sth->fetchrow_hashref)
    {
$use_id=$p->{id};
$tin=$p->{in};
$tout=$p->{out};
if (($tin > 0)&($tout > 0))
   {
$rsh = $dbh->prepare("INSERT INTO dblogin set mid=$use_id,act=17,time=unix_timestamp()");
$rsh->execute();
}
    }
1;


ну в вертушка

Код:
#!/bin/sh

while true
do
 nice -n -15 perl /usr/local/nodeny/autv.pl
 sleep 120
done



запуск  вертушки в фоне

работает как с правленім listusers  так и нет

конечно кошернее добавить в тело nol2auth.pl
но мне и так сойдет.
Записан
poxy.
NoDeny
Спец
*

Карма: 10
Offline Offline

Сообщений: 844



Просмотр профиля
« Ответ #17 : 30 Сентября 2010, 00:54:31 »

Спасибо! Улыбающийся
Записан
Андрій
NoDeny
Старожил
*

Карма: 3
Offline Offline

Сообщений: 294


Просмотр профиля
« Ответ #18 : 30 Сентября 2010, 21:39:54 »

потрібна функція, дякую.
Записан
Александр (AleksHr)
NoDeny
Старожил
*

Карма: 2
Offline Offline

Сообщений: 323


Просмотр профиля
« Ответ #19 : 06 Октября 2010, 14:21:01 »

При использовании вишестоящей фичи что показывает последнюю активность абонента, перестает работать - Операции > Авторизированные сейчас.
Тоесть иногда кого то показывает, но далеко не как раньше, ясное дело listuset.pl модифицырован...

Может возможно как нить исправить?)
Записан
Андрій
NoDeny
Старожил
*

Карма: 3
Offline Offline

Сообщений: 294


Просмотр профиля
« Ответ #20 : 06 Октября 2010, 14:37:57 »

в мене все працює нормально, listuset.pl я не змінював
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #21 : 06 Октября 2010, 18:10:51 »

При использовании вишестоящей фичи что показывает последнюю активность абонента, перестает работать - Операции > Авторизированные сейчас.
Тоесть иногда кого то показывает, но далеко не как раньше, ясное дело listuset.pl модифицырован...

Может возможно как нить исправить?)
ничего там не перестает. и рабоате что так что єтак - проверяно и первій вариант и второй.
Записан
Александр (AleksHr)
NoDeny
Старожил
*

Карма: 2
Offline Offline

Сообщений: 323


Просмотр профиля
« Ответ #22 : 07 Октября 2010, 07:58:19 »

Якщо не змінювати listusers.pl - все працює, якщо змінити то ні. Але я не бачу змісту тепер його змінювати, все рівно ключики є Улыбающийся, думав просто якщо початкова версія буде - то не буде видно авторизованих в списку абонентів, але все видно успішно Подмигивающий.
Записан
Александр (AleksHr)
NoDeny
Старожил
*

Карма: 2
Offline Offline

Сообщений: 323


Просмотр профиля
« Ответ #23 : 09 Октября 2010, 00:02:11 »

Код:
#!/bin/sh

while true
do
 nice -n -15 perl /usr/local/nodeny/autv.pl
 sleep 120
done

Внимание! Не забудьте назвать файл например с буквы z, чтобы он запускался в последнюю очередь. Так как ниодин скрипт после него стартовать уже не будет! Сегодня час потратил чтобы понять почему скрипты автоматически перестали запускатся (назвал был autv.sh).
Записан
keeper1978
NoDeny
Постоялец
*

Карма: -16
Offline Offline

Сообщений: 101


Просмотр профиля
« Ответ #24 : 09 Октября 2010, 07:23:51 »

Озвучь еще разок, если не трудно (без глупых вопросов) т.к. не успел себе переписать, или в личку.
из-за личного уважения к т.Cell

после строк
Код:
$eurl='';				# end url - строка, дописываемая к запросу в кнопках страниц
$Fw=int $F{w}; # кнопка `Вид` - какие столбцы выводить в списке
$eurl.="&w=$Fw" if $Fw;
$Fed=int $F{ed}; # единица измерения трафика (Мб/кб/байт)
$eurl.="&ed=$Fed" if $Fed;
$Fed||=2; # по умолчанию целые Мб
$Fed--;
добавляем  это определение текущей таблицы трафика в даном случае х таблица
Код:
$sdbtr=`date +x%Yx%-mx%-d`;
$au_t=time();
$au_t=$au_t-300;#период вермени за какой будем считать траф если упользователя стоит всегда онлине

после строк
Код:
# =======================
#         Поиск
# =======================

$sel_from_users="id FROM users WHERE $where_grp";
$sel_from_fullusers="id FROM fullusers WHERE $where_grp";
$sel_from_users=$sel_from_fullusers if abs($F{sort})>5;

втавляем строку

Код:
$sel_from_users_au="users.id as id,ip,`in`,`out` from users left join $sdbtr on users.id=$sdbtr.mid where (auth<>'no' and lstate=0) or (time>$au_t  and auth='no' and lstate>0) group by users.id";

собственно сам запрос

меняем строки на такую (она идеч чуть ниже )

Код:
 '2' => ["$sel_from_users_au",			'Авторизованные в данный момент'],


и и приводим кусок кода к виду

Код:
  while( %h=%{ $sql2->get_line } )
   {
      $at=$oln='';
      # показать метод авторизации
      if( $show_auth_m && nSql->new({
           dbh =>$dbh,
           sql =>"SELECT act,time FROM login WHERE act>0 AND mid=$h{id} ORDER BY time DESC LIMIT 1",
           show => 'line',
           comment => 'Последняя авторизация',
           hash =>\%hh }) )
{
   $auth_t=$hh{time}>0 && '('.&the_short_time($hh{time},$t).')';
   $auth_t=~s| |&nbsp;|g;
   $auth_t.='&nbsp;&nbsp;';
   $at=$h{auth};
}else{
   $auth_t='&nbsp;';
   $sthst=&sql($dbh," select sum(`in`) as `in`,sum(`out`) as `out` from $sdbtr where mid=$h{id} and time>$au_t limit 1");
   $pst=$sthst->fetchrow_hashref();
   $tin=$pst->{in};
   $tout=$pst->{out};
   if (($tin >0)&($tout>0))
{
   $at="on";
   $oln=1;
}
}
if ($oln == 1)
   {
$ips_tbl.=&tag('tr',
&tag('td',$auth_t,'width=50%').
&tag('td',&ShowModeAuth($at),'width=1%').
&tag('td',$h{ip}).
&tag('td',$h{lstate}? &tag('acronym','&hearts;',"title='всегда online активность входящий=".$tin." исходящий=".$tout."' class=error") : '&nbsp;&nbsp;','width=1%')
);
   }else{
$ips_tbl.=&tag('tr',
&tag('td',$auth_t,'width=50%').
&tag('td',&ShowModeAuth($h{auth}),'width=1%').
&tag('td',$h{ip}).
&tag('td',$h{lstate}? &tag('acronym','&hearts;',"title='всегда online активность входящий=".$tin." исходящий=".$tout."' class=error") : '&nbsp;&nbsp;','width=1%')
   );
   }
$ids.=&RRow('','c',$h{id});
   }

тоесть пользователей которые всегда онлайн мониторим по наличию входящего и исходященно (именно и а не или )
ну вот и все.


люди подскажите хоть какие файлы ковырять
Записан
Александр (AleksHr)
NoDeny
Старожил
*

Карма: 2
Offline Offline

Сообщений: 323


Просмотр профиля
« Ответ #25 : 09 Октября 2010, 08:32:23 »

keeper1978, ничего не меняй! Доавб только последний скрипт в верштушку (/usr/local/etc/rc.d/).
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #26 : 09 Октября 2010, 09:15:52 »

Код:
#!/bin/sh

while true
do
 nice -n -15 perl /usr/local/nodeny/autv.pl
 sleep 120
done

Внимание! Не забудьте назвать файл например с буквы z, чтобы он запускался в последнюю очередь. Так как ниодин скрипт после него стартовать уже не будет! Сегодня час потратил чтобы понять почему скрипты автоматически перестали запускатся (назвал был autv.sh).
точно все скрипты должны запускатся после мусклуа

тоеcть w_autv.pl
Записан
keeper1978
NoDeny
Постоялец
*

Карма: -16
Offline Offline

Сообщений: 101


Просмотр профиля
« Ответ #27 : 09 Октября 2010, 20:27:49 »

не понятная ситуфция  всё переименовал файл autv.pl в w_autv.pl  скрипт запуска в z_start_autv.sh   но при заррузке после загрузки cron вылазит в локальной консоли Local package initialization  доступ можно получить только через ssh при удалении w_autv.pl из local/etc/rc.d/   вся загрузка происходит нормально всём может быть дело проверил в скриптах моих касяков нет (при копировании) хотя скрипты работают  пользователей онлайн показывает
« Последнее редактирование: 09 Октября 2010, 20:29:24 от keeper1978 » Записан
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #28 : 14 Октября 2010, 19:02:46 »

Предлагаю такой вариант:
Код:
#!/usr/bin/perl -w

use strict;
use DBI;

my $config = "/usr/local/nodeny/nodeny.cfg.pl";
print "error: $!\n" if ! -e $config;
eval{require $config};
our($query,$traf_tbl,$dbh,$db_name,$db_server,$user,$pw);

my($sec,$min,$hour,$mday,$mon,$year) = localtime;
$traf_tbl=sprintf("x%dx%dx%d",$year+1900,$mon+1,$mday);
$query = "INSERT INTO dblogin (mid,act,time) SELECT `users`.`id`,'17',UNIX_TIMESTAMP() FROM `users` LEFT JOIN `$traf_tbl` ON `users`.`id`=`$traf_tbl`.`mid` WHERE `in` > 0 AND `out` > 0 AND `$traf_tbl`.`time`>=(SELECT time FROM traf_info ORDER BY time DESC LIMIT 1) AND `users`.`lstate`>0";
$dbh = DBI->connect("DBI:mysql:$db_name:$db_server",$user,$pw,{ PrintError => 1}) or die;
print "error: $!\n" if $dbh->do($query) lt 0;
$dbh->disconnect;
Вертушку можно такую же, как предложил ser970
« Последнее редактирование: 14 Октября 2010, 19:08:23 от 0xbad0c0d3 » Записан
Александр (AleksHr)
NoDeny
Старожил
*

Карма: 2
Offline Offline

Сообщений: 323


Просмотр профиля
« Ответ #29 : 14 Октября 2010, 23:10:03 »

0xbad0c0d3, мож сказать какие изменения?  Улыбающийся
Записан
Страниц: 1 [2] 3 4 ... 8
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!