Биллинговая система Nodeny
25 Ноября 2024, 03:22:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2
  Печать  
Автор Тема: UpTime в веб-админке  (Прочитано 11597 раз)
nops
NoDeny
Постоялец
*

Карма: 3
Offline Offline

Сообщений: 177


А ведь так и есть!!!!

316352175
Просмотр профиля WWW Email
« : 07 Февраля 2012, 07:27:51 »

Всем здрасте!
Вот тут мне захотелось реализовать такую фишку: Сделать в админке блок с аптаймом сервера.
если вот в консоли
Код:
uptime
11:27AM  up 1 day, 15:59, 1 user, load averages: 0.21, 0.17, 0.17
вот и хочется сделать вывод и в админке так же.
Как такое можно реализовать?!
P.S. Не задавайте вопросов типа: "зачем оно надо?" или "Зайди в консоль и посмотри..." Хочу именно  админке и только для админов.
« Последнее редактирование: 13 Февраля 2012, 11:18:41 от elite » Записан

Не надо говорить СПАСИБО! Для этого есть специально "Прибавить" к карме!!
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #1 : 07 Февраля 2012, 09:55:52 »

вариантов море

$up = `cat /proc/uptime | awk ' {print $1}'`;

или так

use Shell;
$up= uptime();

Записан
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« Ответ #2 : 07 Февраля 2012, 10:30:26 »

Поставь заббикс и спи спокойно
Записан
nops
NoDeny
Постоялец
*

Карма: 3
Offline Offline

Сообщений: 177


А ведь так и есть!!!!

316352175
Просмотр профиля WWW Email
« Ответ #3 : 07 Февраля 2012, 14:24:10 »

да нет, забикс мне не надо, это просто фишка, не несущая никакого функционала;)
Вопрос в другом, куда воткнуть то, что вы посоветовали...
Записан

Не надо говорить СПАСИБО! Для этого есть специально "Прибавить" к карме!!
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #4 : 07 Февраля 2012, 15:16:45 »

Смотря где это должно отображаться... Туда и втыкать
Записан
nops
NoDeny
Постоялец
*

Карма: 3
Offline Offline

Сообщений: 177


А ведь так и есть!!!!

316352175
Просмотр профиля WWW Email
« Ответ #5 : 07 Февраля 2012, 15:23:02 »

вот когда админка открывается, там вверху меню, вот либо под ним, либо справа от него....
Это куда вставить?
Записан

Не надо говорить СПАСИБО! Для этого есть специально "Прибавить" к карме!!
0xbad0c0d3
гуру nodeny )
NoDeny
Спец
*

Карма: 116
Offline Offline

Сообщений: 1059



Просмотр профиля
« Ответ #6 : 07 Февраля 2012, 21:44:04 »

cgi-bin/adm/adm.pl
Записан
nops
NoDeny
Постоялец
*

Карма: 3
Offline Offline

Сообщений: 177


А ведь так и есть!!!!

316352175
Просмотр профиля WWW Email
« Ответ #7 : 07 Февраля 2012, 22:05:39 »

Вы определенно издеваетесь. куда именно?!
Записан

Не надо говорить СПАСИБО! Для этого есть специально "Прибавить" к карме!!
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #8 : 07 Февраля 2012, 22:38:45 »

вы просили как
вам показали.
сказали куда.
причем абсолютно верные ответы.
ну а писать за вас никто не будет.
за удовольствие нужно платить а не возмущаться.
даже не зная перла - открыв файл можно проанализировать - попробовать и за 1-2 часа получить результат
Записан
nops
NoDeny
Постоялец
*

Карма: 3
Offline Offline

Сообщений: 177


А ведь так и есть!!!!

316352175
Просмотр профиля WWW Email
« Ответ #9 : 07 Февраля 2012, 23:08:18 »

хорошо, спасибо. Завтра попробую:)
Записан

Не надо говорить СПАСИБО! Для этого есть специально "Прибавить" к карме!!
nops
NoDeny
Постоялец
*

Карма: 3
Offline Offline

Сообщений: 177


А ведь так и есть!!!!

316352175
Просмотр профиля WWW Email
« Ответ #10 : 13 Февраля 2012, 11:12:46 »

Итак.
Решение найдено. Отдельное спасибо Redmen
Открываем файл adm.pl
В самом верху, после:
Цитировать
#!/usr/bin/perl
# ------------------- NoDeny ------------------
# Copyright (с) Volik Stanislav, 2008, 2009
# Read license http://nodeny.com.ua/license.txt
# ---------------------------------------------
$VER=49.32;

use Time::HiRes qw( gettimeofday tv_interval );
use Time::localtime;
use DBI;
Вставляем следующее:
Цитировать
use Shell;
use POSIX qw(floor);

sub ptime {
$var = `sysctl -n kern.boottime | awk '{print \$4}'`;
                $var =~ s/,//g;
                $vary = `date +%s`; chomp($vary);
                $varx = $vary - $var;
                $varx = sprintf("%2d", $varx);
                $vard = floor($varx / 86400);
                $varx %= 86400;
                $varh = floor($varx / 3600);
                $varx %= 3600;
                $varm = floor($varx / 60);
                if($vard eq 0) { $vard = ''; } elsif($vard >= 1) { $vard = $vard.'д '; }
                if($varh eq 0) { $varh = ''; } elsif($varh >= 1) { $varh = $varh.'ч '; }
                if($varm eq 0) { $varm = ''; } elsif($varm >= 1) { $varm = $varm.'м '; }
                return $vard.$varh.$varm;
}
ВАЖНО: Не пропустите закрытие ковычек в конце, я пропустил и выдало 500-ю ошибку!
далее тут же ищем следующее:
Цитировать
$OUT.=&Table('width100',
   &tag('tr',
      &tag('td',&ahref("$scrpt0&a=mytune","<img src='$Adm_pic'>")).
      &tag('td','&nbsp;',"width='16%'").
      &tag('td',$out,"align=center valign=top").
      &tag('td','&nbsp;',"width='16%'").
      &tag('td','Адм:'.$br.$Display_admin)
   ).
Вместо этого вписываем:
Цитировать
$OUT.=&Table('width100',
   &tag('tr',
      &tag('td',&ahref("$scrpt0&a=mytune","<img src='$Adm_pic'>")).
     &tag('td','UpTime:'.$br.&ptime,"align=center width='8%'").
       &tag('td','&nbsp;',"width='8%'").

      &tag('td',$out,"align=center valign=top").
      &tag('td','&nbsp;',"width='16%'").
      &tag('td','Админ:'.$br.$Display_admin)
   ).
(выделил строчки, которые изменяются)
В итоге сохраняем и пробуем. В левом верхнем углу, справа от аватары появится значение аптайма.
« Последнее редактирование: 13 Февраля 2012, 11:15:22 от nops » Записан

Не надо говорить СПАСИБО! Для этого есть специально "Прибавить" к карме!!
Александр (AleksHr)
NoDeny
Старожил
*

Карма: 2
Offline Offline

Сообщений: 323


Просмотр профиля
« Ответ #11 : 13 Февраля 2012, 11:36:18 »

А как вставить например по центру, там где пишет Здравствуйте, такой то админ, под ним как раз.
Записан
nops
NoDeny
Постоялец
*

Карма: 3
Offline Offline

Сообщений: 177


А ведь так и есть!!!!

316352175
Просмотр профиля WWW Email
« Ответ #12 : 13 Февраля 2012, 12:13:45 »

В этом случае Uptime сервера будет показываться только на одной странице, на главной так сказать, в меню указано как знак параграфа.
Покопайте файл /usr/local/nodeny/web/title.pl
 
Нашел для Вас решение:
Открываем файл:
Код:
/usr/local/nodeny/web/title.pl
находим строчку:
Код:
$OUT.=&div( 'row2',&Printf('[br]Здравствуйте, [filtr|bold][br2]',$Aname || 'администратор' ) );
Дописываем ниже:
Код:
$OUT.=&div( 'row2',&Printf('Сервер работает уже: [filtr|bold][br2]',&ptime ) );
Наслаждайтесь.
 
P.S. Знающие и понимающие в перле люди, не пинайте, это реально самое первое, что написал на перле, хоть и по аналогии:-D
« Последнее редактирование: 13 Февраля 2012, 12:28:42 от nops » Записан

Не надо говорить СПАСИБО! Для этого есть специально "Прибавить" к карме!!
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #13 : 13 Февраля 2012, 12:22:58 »

sub ptime {
$var = `sysctl -n kern.boottime | awk '{print \$4}'`;
                $var =~ s/,//g;
                $vary = `date +%s`; chomp($vary);
                $varx = $vary - $var;
                $varx = sprintf("%2d", $varx);
                $vard = floor($varx / 86400);
                $varx %= 86400;
                $varh = floor($varx / 3600);
                $varx %= 3600;
                $varm = floor($varx / 60);
                if($vard eq 0) { $vard = ''; } elsif($vard >= 1) { $vard = $vard.'д '; }
                if($varh eq 0) { $varh = ''; } elsif($varh >= 1) { $varh = $varh.'ч '; }
                if($varm eq 0) { $varm = ''; } elsif($varm >= 1) { $varm = $varm.'м '; }
                return $vard.$varh.$varm;
}

@up=split/\,/,uptime();
ну и вывод переменой $up[0]; 

12:21PM  up 212 days

на
Записан
poxy.
NoDeny
Спец
*

Карма: 10
Offline Offline

Сообщений: 844



Просмотр профиля
« Ответ #14 : 13 Февраля 2012, 22:43:30 »

ИМХО - изврат, есть системы мониторинга, а биллинг, это биллинг.
Записан
Страниц: [1] 2
  Печать  
 
Перейти в:  

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