Como posso alterar o fuso horário de bandwidthd?

8

Existe alguma maneira de alterar o deslocamento UTC para os gráficos gerados por bandwidthd ?

    
por tslocum 05.03.2013 / 04:16

1 resposta

5

O código-fonte usa e armazena timestamps, que são então fornecidos para as funções C ctime ( ) e localtime () para exibir a data na parte superior da página e na parte inferior dos gráficos.

Esses carimbos de data / hora Unix são sem fuso horário, o número de segundos desde 1970-01-01.
Para obter um tempo legível, ctime () e localtime () ajustam automaticamente o fuso horário a ser usado de acordo com o fuso horário do sistema (por meio de uma chamada tzset () ).

Forçando o TZ a hora de um comando

Você pode forçar o fuso horário para um determinado valor apenas pelo tempo de execução de um comando, ou durante uma sessão inteira do daemon, como bandwidthd . A variável de ambiente TZ é lida por tzset () para ajustar o fuso horário, se definido.

Primeiro, veja as definições de fuso horário em /usr/share/zoneinfo

Em seguida, por exemplo, cd para o seu diretório home em um terminal e faça um simples ls -lrt para ver os arquivos mais recentes na parte inferior da lista. Em seguida, defina o fuso horário para Paris, na França, por exemplo

export TZ="Europe/Paris"

e faça outro ls -lrt , o tempo deve ser diferente (se você tiver um sistema configurado com um fuso horário definido para a França, você pode querer escolher outro TZ!).

Agora, desative o TZ var, apenas para evitar alguns erros com base no tempo exibido no terminal.

unset TZ


Alterando o TZ de bandwidthd

Eu suponho que você instalou o pacote bandwidthd do Ubuntu apt-get , e você deve ter um arquivo init para ele iniciar como um serviço. Faça uma cópia em algum lugar do arquivo e edite-o como root ( vi ou outro editor)

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

Perto do topo você vê algumas definições de variáveis

NAME=bandwidthd
DESC=BandwidthD
...

adicione um (por exemplo, para Paris)

MYTZ="Europe/Paris"

então, mais abaixo na função startd () , você deve ver

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

altere para

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

(observe o /usr/bin/env TZ="$MYTZ" entre --exec e $DAEMON ).


Reinicie o processo

sudo service bandwidthd restart

e, pode demorar alguns segundos, os arquivos devem ser atualizados, em um navegador aberto file:///var/lib/bandwidthd/htdocs/index.html (ou o diretório onde os arquivos estão escritos) para verificar.

    
por Ring Ø 27.12.2014 / 15:05