Freesco, NND, CDN, EOS
http://forum.freesco.pl/

phpSysInfo HOW TO
http://forum.freesco.pl/viewtopic.php?f=22&t=14688
Strona 1 z 1

Autor:  lucyferus23 [ środa, 31 stycznia 2007, 22:27 ]
Tytuł:  phpSysInfo HOW TO

Jak wyzej. zainstalowany wsio poprawione zadnych bledow nie wywala, ale w dalszym ciagu dojsc nie moge co zrobic zeby sie nie narobic a zeby zrobic, zeby wyswietlal staty sieci.

Musi pobrac dane z /proc/net/dev ale niemoze.

Gdzies na forum znalazlem zeby podac mu komede:

: [/] [] ()
sed -i 's/\/proc\/net\/dev/\/var\/cache\/siec.txt/'
, ale wywala mi ze:

: [/] [] ()
sed: can't read -: Nie ma takiego pliku ani katalogu
.

Jesli zna ktoś jakies rozwiązanie tego problemu to prosilbym o pomoc.

Autor:  viater [ czwartek, 1 lutego 2007, 00:26 ]
Tytuł: 

Problem bierze się stąd, że w NND zwykły user (nobody) nie ma prawa odczytu pliku /proc/net/dev i nie da się tego zmienić.
Obszedłem to w następujący sposób:
1. W pliku
../phpsysinfo/includes/os/class.Linux.inc.php
zamień funkcję network() na taką:
: [/] [] ()
  function network () {
    $results = array();

    system("sudo /usr/local/sbin/read_ifstat");
    if ($fd = fopen('/var/local/ifstat', 'r')) {
      while ($buf = fgets($fd, 4096)) {
        if (preg_match('/:/', $buf)) {
          list($dev_name, $stats_list) = preg_split('/:/', $buf, 2);
          $stats = preg_split('/\s+/', trim($stats_list));
          $results[$dev_name] = array();

          $results[$dev_name]['rx_bytes'] = $stats[0];
          $results[$dev_name]['rx_packets'] = $stats[1];
          $results[$dev_name]['rx_errs'] = $stats[2];
          $results[$dev_name]['rx_drop'] = $stats[3];
          $results[$dev_name]['rx_frame'] = $stats[5];

          $results[$dev_name]['tx_bytes'] = $stats[8];
          $results[$dev_name]['tx_packets'] = $stats[9];
          $results[$dev_name]['tx_errs'] = $stats[10];
          $results[$dev_name]['tx_drop'] = $stats[11];
          $results[$dev_name]['tx_cols'] = $stats[13];
          $results[$dev_name]['tx_carrier'] = $stats[14];

          $results[$dev_name]['errs'] = $stats[2] + $stats[10];
          $results[$dev_name]['drop'] = $stats[3] + $stats[11];
        }
      }
    } else {
      echo "'/proc/net/dev' not readable";
    }
    return $results;
  }

2. Stwórz plik /usr/local/sbin/read_ifstat:

: [/] [] ()
#!/bin/bash

cat /proc/net/dev > /var/local/ifstat

3. Do /etc/sudoers dodaj linijkę:
: [/] [] ()
nobody ALL=NOPASSWD:/usr/local/sbin/read_ifstat

- i będzie śmigać :)

Autor:  lucyferus23 [ czwartek, 1 lutego 2007, 10:43 ]
Tytuł: 

dzieki za pomoc ale jest blad i niechce wykonywac pliku z /usr/local/sbin/ wiec do krona dorzucilem co minute zeby wykonal ten plik narazie smiga ale niewiem co jest nie tak w tym ze phpSysInfo nie wykonuje tego pliku sam.

zwraca takie błedy
: [/] [] ()
Warning: fopen(/var/local/ifstat): failed to open stream: No such file or directory in /home/httpd/html/.admin/phpsysinfo/includes/os/class.Linux.inc.php on line 438
'/proc/net/dev' not readable
Warning: Cannot modify header information - headers already sent by (output started at /home/httpd/html/.admin/phpsysinfo/includes/os/class.Linux.inc.php:438) in /home/httpd/html/.admin/phpsysinfo/includes/system_header.php on line 31

Warning: Cannot modify header information - headers already sent by (output started at /home/httpd/html/.admin/phpsysinfo/includes/os/class.Linux.inc.php:438) in /home/httpd/html/.admin/phpsysinfo/includes/system_header.php on line 35

Autor:  viater [ czwartek, 1 lutego 2007, 13:25 ]
Tytuł: 

Wygląda, jakby nie wykonywał funkcji system - safe mode on w konfigu PHP ? Albo sudo - sprawdź, czy dobrze dopisałeś w /etc/sudoers.

Autor:  lucyferus23 [ piątek, 2 lutego 2007, 02:10 ]
Tytuł: 

dzieki juz dziala.

mialem blad w sudoers poprostu przeoczenie i zamias dodac

: [/] [] ()
nobody ALL=NOPASSWD:/usr/local/sbin/read_ifstat
do users to wrzucilem to na koncu i dlatego nie dzialalo thx all

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/