我设置了一个cron作业来监控带宽使用情况(Status2K脚本),但是当cron作业运行时,它会清空行数据而不是更新它。如果我通过浏览器手动运行脚本,它可以正常工作。
以下是我正在使用的代码
// Calculating Bandwidth LINUX
if ($os['linux']) {
$net = cmdrun("ifconfig -a eth0 | grep 'RX bytes' | awk '{ print $2, $6 }'");
$net = str_replace("bytes:", '', $net);
$pts = explode(' ',$net);
$recvd = $pts[0]; // RX
$trans = $pts[1]; // TX
}
// Work Out Bandwidth Stats
$query = $mysql->query("SELECT * FROM ".$prefix."bandwidth");
$results = mysql_fetch_array($query);
$dbr = $results['rec'];
$dbt = $results['trans'];
if (!$dbr && !$dbt) {
$mysql->query("INSERT INTO ".$prefix."bandwidth VALUES ('".$pts[0]."', '".$pts[1]"')");
} else {
if ($recvd < $dbr && $trans < $dbt) {
$rech = $recvd;
$transh = $trans;
$mysql->query("UPDATE ".$prefix."bandwidth SET rec = '".$pts[0]."', trans = '".$pts[1]"'");
} else {
$rech = ($recvd - $dbr);
$transh = ($trans - $dbt);
$mysql->query("UPDATE ".$prefix."bandwidth SET rec = '".$recvd."', trans = '".$trans."'");
}
}
// If Bandwidth Empty
if ($transh < 0) { $transh = $trans; }
if ($rech < 0) { $rech = $recvd; }
// ================================================
// Add Data To Database
// ================================================
$mysql->query("INSERT INTO ".$prefix."history VALUES ('$min', '$hour', '$day', '$month', '$year', '$currentload', '$usedmem', '$usedswap', '$transh', '$rech')");