3rd-party-apps-Anleitung: vnstat

Status
Für weitere Antworten geschlossen.

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Die Integration von vnstat (gibt es als ipkg-Paket)

(1) ipkg install vnstat

(2) vnstat aufrufen - will irgendwas anlegen, wenn es komische
Fehlermeldungen gibt, mal mit vnstat -i eht0 probieren. vnstat -l sollte auf jeden Fall was sinnvolles zeigen. Mit vnstat --help bekommt man die Übersicht über die Parameter. (Es ist nu schon 3 Tage her ... kann mich nicht mehr an alle Einzelheiten erinnern :D)

(3) Wenn keine komischen Meldungen kommen, dann ersten Netzwerk-Schnappschuss machen mit vnstat -i eth0 -u. Diese Schnappschüsse werden ausgewertet. Es macht also Sinn, vnstat -i eth0 -u in die crontab zu übernehmen. (Das habe ich noch nicht gemacht. Vielleicht kann das ja jemand mal ausprobieren.)

(4) Download des vnstat PHP frontend nach Windows, entpacken, auf die DS kopieren ins neue Verzeichnis: /usr/syno/synoman/phpsrc/vnstat.

(5) Ins Verzeichnis stellen und die Datei config.php editieren. Wenn man alle Kommentare (//) weglassen würde, müsste in der Datei noch stehen:
Rich (BBCode):
<?php
    $iface_list = array('eth0');
    $iface_title['eth0'] = 'Network';
    $vnstat_bin = '/opt/bin/vnstat';
    $data_dir = '/tmp/';

Wen jemand 2 Netzwerkkarte hat, dann entsprechend ändern.

(6) Skript im Browser aufrufen: https://Name_der_DS:5001/phpsrc/vnstat/index.php. Bei mir kam nun eine Fehlermeldung der Datei vnstat.php in Zeile 104, dass irgendwas nicht ausgeführt werden kann. Wenn diese Meldung erscheint, dann muss noch die vnstat.php geändert werden. Also Editor und zur Zeile 104: 2 Zeilen einfügen, eine auskommentieren:
Rich (BBCode):
$vnstat_data = array();
exec("$vnstat_bin --dumpdb -i $iface",$vnstat_data);
//$vnstat_data = explode("\n", `$vnstat_bin --dumpdb -i $iface`);

(7) Jetzt müsste es gehen. Immer mal wieder einen vnstat -i eth0 -u machen, dann füllt sich langsam die Anzeige. Irgendwann kann man auf das -i eth0 verzichten, wenn man 2 Netzwerkkarten hat: vnstat -i eth1 -u machen!!!

(8) Integration als 3rd-parte-apps: Verzeichnis anlegen: /usr/syno/synoman/webman/3rdparty/vnstat. Dann die Datei application.cfg anlegen:
Rich (BBCode):
text = vnstat
description = vnstat
type = embedded
path = /phpsrc/vnstat/index.php

Sollte die Anzeige nicht komplett passen, dann type = popup setzen.

Optischer Vorgeschmack ...
 

Anhänge

  • vnstat.jpg
    vnstat.jpg
    75,2 KB · Aufrufe: 1.785
  • vnstat1.jpg
    vnstat1.jpg
    100,8 KB · Aufrufe: 1.690

DSL-Hexe

Benutzer
Mitglied seit
01. Apr 2008
Beiträge
692
Punkte für Reaktionen
4
Punkte
44
vnstat Installation problemlos. Habe vnstat -i eth0 -u in crontab eingetragen so das es alle 10 Minuten ausgeführt wird. Werde berichten.

Danke Itari. :)
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
ich denke da das Teil nicht kleiner als Stunden auflöst, reicht jede Stunde im crontab ;)
 

DSL-Hexe

Benutzer
Mitglied seit
01. Apr 2008
Beiträge
692
Punkte für Reaktionen
4
Punkte
44
Danke für den Tip, werde das sofort ändern.

Code:
1/* * * * * root sh vnstat -i eth0 -u

Hoffe das ist so richtig mit meinen bescheidenen Linux Kentnissen.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Hexchen, bitte ändere ab in Und denk an die TABs zwischen den Werten zu vnstat:

* 1 * * * root vnstat -i eth0 -u

Ich hatte mal was zur crontab geschrieben ... du wirst es bestimmt finden.

itari
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Anmerkung zu vnstat:

Wenn man vnstat über die /etc/crontab alle Stunden aktiviert, kann (!) dabei der Spin-down (hibernation) der Platten unterbrochen werden.
 

Pazekal

Benutzer
Mitglied seit
05. Jul 2008
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
Hallihallo

aber alles soweit gemacht.. nur wenn ich jetzt die 3rd party app aufrufe im synman zeigt er mir nur den quellcode der php an nicht die ausgeführte version...

php und alles ist aktiviert..

könnt ihr mir da helfen??
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
@Pazekal,

du hast für den sys-Apache noch nicht die PHP-Lib zugeordnet. Schau mal hier in den Punkt 7, da ist es genau beschrieben.

itari
 

Pazekal

Benutzer
Mitglied seit
05. Jul 2008
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
hab das jetzt auch gemacht und den rest deineranleitung aber er macht imme rnoch nix...
apache ist neu gestartet und phph ini ist auch abgeändert
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Ganz sicher alles so gemacht?

Ist der Aufruf direkt im Browser denn möglich (ohen 3rd-party-apps) (siehe Punkt 6 im ersten Beitrag)?

Haste es beim sys-Apache in der httpd.conf-sys geändert und auch den sys-Apache neu gestartet?

Hast du schon andere PHP-Anwendungen bei dir laufen?
 

Pazekal

Benutzer
Mitglied seit
05. Jul 2008
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
so also ich habe gerade versucht sie mal komplett neu zu starten jetzt bekomm ich gar keine ping mehr..... son mist... ich glaub ich mach mir grad nochmal die firmaware drauf und probiere es nochmal
 

Pazekal

Benutzer
Mitglied seit
05. Jul 2008
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
also habs jetzt doch noch hinbekommen... es läuft... jetzt müsste ich allerdings noch wissen wie ich den befehl in die cronjob eintrage
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Rich (BBCode):
vi /etc/crontab
und dort die oben beschriebenen Änderungen hinzufügen (tabs - keine Leerzeichen!) und danach
Rich (BBCode):
/usr/syno/etc/rc.d/S04crond.sh stop
/usr/syno/etc/rc.d/S04crond.sh start
Trolli
 

kartolo

Benutzer
Mitglied seit
16. Jun 2008
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
ich habe alle Schritte gemacht, aber exec() liefert immer 127 zurück. Was mache ich falsch hier?

Danke
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
@kartolo, super :)
 

DSL-Hexe

Benutzer
Mitglied seit
01. Apr 2008
Beiträge
692
Punkte für Reaktionen
4
Punkte
44
Cronjob macht kein vnstat -i eth0 -u bei mir:

Code:
#minute hour    mday    month   wday    who     command
*/5     *       *       *       *       root    sh /opt/bin/tps
*/15    *       *       *       *       root    sh vnstat -i eth0 -u
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Probiert mal den kompletten Pfad und lass das sh weg (sh ist nur wichtig bei Shell-Skriten - vnstat ist ja keine Skript, sondern ein Binary). Da der crond nicht per login-gestartet wurde, kennt er die login-environments nicht (/etc/profile; /root/.profile) und hat daher keine Kenntnis über die PATH-Einträge, daher in der crontab immer volle Pfade eintragen.

Code:
#minute hour    mday    month   wday    who     command
*/5     *       *       *       *       root    sh /opt/bin/tps
*/15    *       *       *       *       root    /usr/bin/vnstat -i eth0 -u
 

DSL-Hexe

Benutzer
Mitglied seit
01. Apr 2008
Beiträge
692
Punkte für Reaktionen
4
Punkte
44
Okay, werde das mal probieren.
 

DSL-Hexe

Benutzer
Mitglied seit
01. Apr 2008
Beiträge
692
Punkte für Reaktionen
4
Punkte
44
So habe es ausprobiert. Es kommt auch das es ausgeführt worden ist im LOG
Code:
USER root pid 4342 cmd /usr/bin/vnstat -i eth0 -u
aber es ändert sich nichts im vnstat er bleibt bei Heute 13,85MB obwohl ich eine 605MB grosse Datei geladen habe.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat