Получите ежемесячное использование пропускной способности сервера UNIX с помощью PHP - PullRequest
0 голосов
/ 15 декабря 2010

Могу ли я в любом случае получать ежемесячную пропускную способность серверов, используя php? Спасибо.

Ответы [ 2 ]

1 голос
/ 15 декабря 2010

Вы можете проанализировать журнал доступа Apache своего сайта, чтобы выяснить общую пропускную способность.Вот свободный пример псевдо-php (фактическая реализация будет зависеть от формата вашего журнала):

<?php
$logfile = '/var/log/apache/httpd-access.log';
$startDate = '2010-10-01';
$endDate = '2010-10-31';

$fh = fopen($logfile, 'r');

if (!$fh) die('Couldn\'t open log file.');

$totalBytes = 0;

// let's pretend the log is a csv file because i'm lazy at parsing
while (($info = fgetcsv($fh, 0, ' ', '"')) !== false) {
  // get the date of the log entry
  $date = $info[3];
  // check if the date is within our month of interest
  if ($date > $startDate && $date < $endDate) {
    // get the number of bytes sent in the request
    $totalBytes += $info[7];
  }
}

fclose($fh);

echo 'Total bytes used: ' . $totalBytes;

Кроме того, этот скрипт, вероятно, будет очень медленным в зависимости от размера ваших журналов, поэтому вам следует рассмотреть возможность кэшированиярезультат для последующего использования вместо повторного запуска.

1 голос
/ 15 декабря 2010

лучше всего разбирать количество пакетов, которые передали ethX inteface команда, которая отслеживает переданные байты, является / sbin / ifconfig Имейте в виду, что счетчики сбрасываются, если вы перезагрузите свой linux box

eth0      
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:32363649 errors:0 dropped:0 overruns:0 frame:0
          TX packets:35133219 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2813232645 (2.6 GiB)  TX bytes:1696525681 (1.5 GiB)
          Interrupt:16 Memory:f4000000-f4012700 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...