Wie kann ich die Zeitzone von Bandbreite ändern?

8

Gibt es eine Möglichkeit, den UTC-Offset für die von bandwidthd generierten Diagramme zu ändern ?

tslocum
quelle

Antworten:

5

Der Quellcode verwendet und speichert Zeitstempel, die dann den C-Funktionen ctime () und localtime () zur Verfügung gestellt werden, um das Datum oben auf der Seite und unten in den Diagrammen anzuzeigen.

Diese Unix-Zeitstempel sind zeitzonenlos, die Anzahl der Sekunden seit dem 01.01.1970.
Um eine vom Menschen lesbare Zeit zu erhalten, passen ctime () und localtime () die zu verwendende Zeitzone automatisch an Ihre Systemzeitzone an (über einen Aufruf von tzset () ).

Erzwingen der TZ die Zeit eines Befehls

Sie können die Zeitzone ohnehin nur für die Zeit einer Befehlsausführung oder während einer gesamten Daemon-Sitzung wie bandwidthd auf einen bestimmten Wert erzwingen . Die Umgebungsvariable TZwird von tzset () gelesen , um die Zeitzone anzupassen, falls festgelegt.

Schauen Sie sich zunächst die Zeitzonendefinitionen in an /usr/share/zoneinfo

Gehen Sie dann beispielsweise cdzu Ihrem Home-Verzeichnis in einem Terminal und führen Sie einfach ls -lrtdie neuesten Dateien am Ende der Liste aus. Stellen Sie dann beispielsweise die Zeitzone auf Paris, Frankreich, ein

export TZ="Europe/Paris"

und machen Sie eine andere ls -lrt, die Zeit sollte anders sein (wenn Sie zufällig ein System mit einer auf Frankreich eingestellten Zeitzone konfiguriert haben, möchten Sie vielleicht eine andere TZ wählen!).

Deaktivieren Sie nun die TZ-Variable, um einige Fehler aufgrund der im Terminal angezeigten Zeit zu vermeiden.

unset TZ


Ändern der TZ der Bandbreite

Ich gehe davon aus, dass Sie das bandwidthd- Paket von Ubuntu installiert apt-gethaben und eine Init-Datei haben sollten, damit es als Dienst gestartet werden kann. Machen Sie irgendwo eine Kopie der Datei und bearbeiten Sie sie dann als root ( vi oder ein anderer Editor).

sudo cp -p /etc/init.d/bandwidthd ~/bandwidthd.save
sudo vi /etc/init.d/bandwidthd

Oben sehen Sie einige Variablendefinitionen

NAME=bandwidthd
DESC=BandwidthD
...

füge eins hinzu (zB für Paris)

MYTZ="Europe/Paris"

dann, weiter unten in der Funktion startd () , sollten Sie sehen

    cd $WORKDIR && start-stop-daemon --start --quiet \
            --pidfile $PIDFILE \
            --chdir $WORKDIR \
            --exec $DAEMON -- $DAEMON_OPTS

ändere es auf

    cd $WORKDIR && start-stop-daemon --start --quiet \
            --pidfile $PIDFILE \
            --chdir $WORKDIR \
            --exec /usr/bin/env TZ="$MYTZ" $DAEMON -- $DAEMON_OPTS

(Beachten Sie das /usr/bin/env TZ="$MYTZ"zwischen --execund $DAEMON).


Starten Sie den Prozess neu

sudo service bandwidthd restart

und es kann einige Sekunden dauern, bis die Dateien in einem geöffneten Browser file:///var/lib/bandwidthd/htdocs/index.html(oder dem Verzeichnis, in das die Dateien geschrieben werden) aktualisiert werden, um sie zu überprüfen.

e2-e4
quelle