- Mitglied seit
- 15. Mai 2008
- Beiträge
- 21.900
- Punkte für Reaktionen
- 14
- Punkte
- 0
hi Leutz,
die im DS-Manager verwendeten und auch unter Protokoll angezeigten Log-Files liegen in einem struct-Format vor. Das ist leider nicht ganz so schön zu lesen als wenn sie in XML vorliegen würden. Ich hatte zwar bereits ein anderes Format bei den Synology-Entwicklern angeregt, aber bislang hat sich ja nichts getan (Beta).
Ich mach deshalb mal hier eine Skizze, wie man diese Protokolle auslesen kann. Der Einfachheit halber mit dem user-Apache und mit einer Kopie der Log-File /var/log/synobackup.log ... ich hab die ins Verzeichnis /volume1/web/log kopiert, weil die openbase-Restriction wahrscheinlich fürs PHP des user-Apache überall eng ist . Das Skript selbst hab ich hier liegen: /volume1/web/report.php
Da ich PHP nicht wirklich kenne , könnte vielleicht jemand mal schauen, ob er die interger(16-Bit)-Konvertierereien eleganter lösen kann (ich hab da grad keine sonderliche Ideen).
Wenn das hier jemand versteht, dann bekommt er grad die Aufgabe, sich die nächste Log-File vorzunehmen oder sich einen Algorithmus auszudenken, der für alle Logfiles passt , eventuell mit Aufrufoptionen im Searchstring der URL (Filename, Offset, usw.)
Was die Spalten nun wirklich bedeuten ... ich hab keine Ahnung. Aber man kann ein paar Regelmäßigkeiten erkennen. Auch hier würde ich mich über Interpretationshilfen freuen. (Die erste Spalte ist wohl der Typ im Protokoll-Listing - ich hab mal mein Protokoll dazu gehangen - Sortierung ist reverse)
Itari
.
die im DS-Manager verwendeten und auch unter Protokoll angezeigten Log-Files liegen in einem struct-Format vor. Das ist leider nicht ganz so schön zu lesen als wenn sie in XML vorliegen würden. Ich hatte zwar bereits ein anderes Format bei den Synology-Entwicklern angeregt, aber bislang hat sich ja nichts getan (Beta).
Ich mach deshalb mal hier eine Skizze, wie man diese Protokolle auslesen kann. Der Einfachheit halber mit dem user-Apache und mit einer Kopie der Log-File /var/log/synobackup.log ... ich hab die ins Verzeichnis /volume1/web/log kopiert, weil die openbase-Restriction wahrscheinlich fürs PHP des user-Apache überall eng ist . Das Skript selbst hab ich hier liegen: /volume1/web/report.php
PHP:
<html><head><style>td{background-color:#eee;min-width:45px;text-align:right}</style></head><body>/var/log/synobackup.log<table>
<?php
function ll($fd){
$c0 = fread($fd,1);
$c1 = fread($fd,1);
return ord($c0)+ord($c1)*256;
}
$fd = fopen('./log/synobackup.log','rb');
$in = fread($fd,16);
while (!feof($fd) && $in = @fread($fd,ll($fd)-2)) {
$i[0]=ord($in[0]) +ord($in[1])*256; print '<tr><td>'.$i[0].'</td><td>';
$d=ord($in[2])+ord($in[3])*256+ord($in[4])*256*256+ord($in[5])*256*256*256; print date('Y-m-d H:i:s',$d).'</td><td>';
$i[1]=ord($in[6]) +ord($in[7])*256; print $i[1].'</td><td>';
$i[2]=ord($in[8]) +ord($in[9])*256; print $i[2].'</td><td>';
$i[3]=ord($in[9]) +ord($in[10])*256; print $i[3].'</td><td>';
$i[4]=ord($in[11])+ord($in[12])*256; print $i[4].'</td><td>';
$i[5]=ord($in[13])+ord($in[14])*256; print $i[5].'</td><td>';
$i[6]=ord($in[14])+ord($in[15])*256; print $i[6].'</td><td>';
$i[7]=ord($in[16])+ord($in[17])*256; print $i[7].'</td><td>';
$i[8]=ord($in[18])+ord($in[19])*256; print $i[8].'</td><td>';
$i[9]=ord($in[20])+ord($in[21])*256; print $i[9].'</td><td>';
$offset=22;
print substr($in,$offset,$i[1]).'</td><td>';$offset+=$i[1];
print substr($in,$offset,$i[2]).'</td><td>';$offset+=$i[2];
print substr($in,$offset,$i[6]).'</td><td>';$offset+=$i[6];
print substr($in,$offset,$i[7]).'</td></tr>';
}
?>
</body></html>
Da ich PHP nicht wirklich kenne , könnte vielleicht jemand mal schauen, ob er die interger(16-Bit)-Konvertierereien eleganter lösen kann (ich hab da grad keine sonderliche Ideen).
Wenn das hier jemand versteht, dann bekommt er grad die Aufgabe, sich die nächste Log-File vorzunehmen oder sich einen Algorithmus auszudenken, der für alle Logfiles passt , eventuell mit Aufrufoptionen im Searchstring der URL (Filename, Offset, usw.)
Was die Spalten nun wirklich bedeuten ... ich hab keine Ahnung. Aber man kann ein paar Regelmäßigkeiten erkennen. Auch hier würde ich mich über Interpretationshilfen freuen. (Die erste Spalte ist wohl der Typ im Protokoll-Listing - ich hab mal mein Protokoll dazu gehangen - Sortierung ist reverse)
Itari
.
Anhänge
Zuletzt bearbeitet: