如何更改bandwidthd的时区?

如何更改bandwidthd的时区?

有没有办法改变 UTC 偏移量生成的图表带宽

答案1

源代码使用并存储时间戳,然后将其提供给 C 函数时间()当地时间()以便在页面顶部和图表底部显示日期。

这些 Unix 时间戳不包含时区,是自 1970-01-01 以来的秒数。
要获取人类可读的时间,时间()当地时间()根据系统时区自动调整要使用的时区(通过调用tzset())。

强制 TZ 为命令的时间

无论如何,您都可以在命令执行时或整个守护进程会话期间强制将时区设置为给定值,例如带宽. 环境变量TZtzset()调整时区(如果已设置)。

首先看一下时区定义/usr/share/zoneinfo

然后,例如,cd在终端中转到您的主目录,并执行一个简单的操作ls -lrt以查看列表底部的最新文件。然后将时区设置为法国巴黎,例如

export TZ="Europe/Paris"

并执行另一次ls -lrt,时间应该有所不同(如果您的系统恰好配置为时区为法国,您可能需要选择另一个 TZ!)。

现在取消设置 TZ var,只是为了防止基于终端显示的时间出现一些错误。

unset TZ


更改 TZ带宽

我假设你安装了带宽Ubuntu 中的软件包apt-get,您应该有一个 init 文件,以便将其作为服务启动。复制该文件的某个位置,然后以 root 身份编辑它(或其他编辑)

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

在顶部附近你会看到一些变量定义

NAME=bandwidthd
DESC=BandwidthD
...

添加一个(例如,巴黎)

MYTZ="Europe/Paris"

然后,在下面启动()函数,你应该看到

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

将其更改为

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

(注意和/usr/bin/env TZ="$MYTZ"之间)。--exec$DAEMON


重新启动进程

sudo service bandwidthd restart

并且,可能需要几秒钟,文件应该被更新,在浏览器中打开file:///var/lib/bandwidthd/htdocs/index.html(或写入文件的目录)进行检查。

相关内容