Existe-t-il un moyen de modifier le décalage UTC pour les graphiques générés par bandwidthd ?
Existe-t-il un moyen de modifier le décalage UTC pour les graphiques générés par bandwidthd ?
Réponses:
Le code source utilise et stocke des horodatages, qui sont ensuite fournis aux fonctions C ctime () et localtime () afin d'afficher la date en haut de la page et en bas des graphiques.
Ces horodatages Unix sont sans fuseau horaire, le nombre de secondes depuis le 01/01/1970.
Pour obtenir une heure lisible par l'homme, ctime () et localtime () ajustent automatiquement le fuseau horaire à utiliser en fonction du fuseau horaire de votre système (via un appel à tzset () ).
Forcer le TZ le temps d'une commande
Vous pouvez de toute façon forcer le fuseau horaire à une valeur donnée juste pour le moment de l'exécution d'une commande, ou pendant une session démon entière, comme bandwidthd . La variable d'environnement TZ
est lue par tzset () pour ajuster le fuseau horaire, s'il est défini.
Jetez d'abord un œil aux définitions de fuseau horaire dans /usr/share/zoneinfo
Ensuite, par exemple, cd
dans votre répertoire personnel dans un terminal, et faites un simple ls -lrt
pour voir les fichiers les plus récents en bas de la liste. Réglez ensuite le fuseau horaire sur Paris, France, par exemple
export TZ="Europe/Paris"
et faites-en une autre ls -lrt
, l'heure devrait être différente (si vous avez un système configuré avec un fuseau horaire réglé sur France, vous pouvez choisir un autre TZ!).
Désactivez maintenant la var TZ, juste pour éviter certaines erreurs basées sur le temps affiché dans le terminal.
unset TZ
Modification de la TZ de bande passanted
Je suppose que vous avez installé le paquet bandwidthd à partir d'Ubuntu apt-get
, et vous devriez avoir un fichier init pour qu'il démarre en tant que service. Faites une copie quelque part du fichier puis éditez-le en tant que root ( vi ou un autre éditeur)
sudo cp -p /etc/init.d/bandwidthd ~/bandwidthd.save
sudo vi /etc/init.d/bandwidthd
En haut, vous voyez quelques définitions de variables
NAME=bandwidthd
DESC=BandwidthD
...
ajouter un (par exemple, pour Paris)
MYTZ="Europe/Paris"
puis, plus loin dans la fonction startd () , vous devriez voir
cd $WORKDIR && start-stop-daemon --start --quiet \
--pidfile $PIDFILE \
--chdir $WORKDIR \
--exec $DAEMON -- $DAEMON_OPTS
le changer en
cd $WORKDIR && start-stop-daemon --start --quiet \
--pidfile $PIDFILE \
--chdir $WORKDIR \
--exec /usr/bin/env TZ="$MYTZ" $DAEMON -- $DAEMON_OPTS
(remarquez /usr/bin/env TZ="$MYTZ"
entre --exec
et $DAEMON
).
Redémarrez le processus
sudo service bandwidthd restart
et, cela pourrait prendre quelques secondes, les fichiers devraient être mis à jour, dans un navigateur ouvert file:///var/lib/bandwidthd/htdocs/index.html
(ou le répertoire où les fichiers sont écrits) pour vérifier.