Gibt es eine Möglichkeit, den UTC-Offset für die von bandwidthd generierten Diagramme zu ändern ?
Gibt es eine Möglichkeit, den UTC-Offset für die von bandwidthd generierten Diagramme zu ändern ?
Antworten:
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 TZ
wird 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 cd
zu Ihrem Home-Verzeichnis in einem Terminal und führen Sie einfach ls -lrt
die 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-get
haben 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 --exec
und $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.