的源代码不使用和存储时戳,其随后被提供给C函数的ctime()和本地时间() ,以显示在页面的顶部的日期,并在图的底部。
这些 Unix 时间戳是无时区的,即自 1970-01-01 以来的秒数。
为了获得人类可读的时间,ctime()和localtime()会根据您的系统时区(通过调用tzset())自动调整要使用的时区。
强制 TZ 执行命令的时间
无论如何,您都可以将时区强制为给定值,仅在命令执行时或在整个守护进程会话期间,如带宽。tzset()TZ
读取环境变量以调整时区(如果已设置)。
首先看一下中的时区定义 /usr/share/zoneinfo
然后,例如,cd
到终端中的主目录,并执行简单的操作ls -lrt
以查看列表底部的最新文件。然后将时区设置为法国巴黎,例如
export TZ="Europe/Paris"
Run Code Online (Sandbox Code Playgroud)
再做一个ls -lrt
,时间应该不同(如果你碰巧有一个系统配置的时区设置为法国,你可能想选择另一个 TZ!)。
现在取消设置 TZ 变量,只是为了防止基于终端中显示的时间出现一些错误。
unset TZ
Run Code Online (Sandbox Code Playgroud)
改变带宽的 TZ
我假设你从 Ubuntu安装了bandwidthd包apt-get
,你应该有一个init 文件让它作为服务启动。在文件的某处复制一份,然后以 root 身份进行编辑(vi或其他编辑器)
sudo cp -p /etc/init.d/bandwidthd ~/bandwidthd.save
sudo vi /etc/init.d/bandwidthd
Run Code Online (Sandbox Code Playgroud)
在顶部附近,您会看到一些变量定义
NAME=bandwidthd
DESC=BandwidthD
...
Run Code Online (Sandbox Code Playgroud)
添加一个(例如,对于巴黎)
MYTZ="Europe/Paris"
Run Code Online (Sandbox Code Playgroud)
然后,在startd()函数的下方,您应该会看到
cd $WORKDIR && start-stop-daemon --start --quiet \
--pidfile $PIDFILE \
--chdir $WORKDIR \
--exec $DAEMON -- $DAEMON_OPTS
Run Code Online (Sandbox Code Playgroud)
将其更改为
cd $WORKDIR && start-stop-daemon --start --quiet \
--pidfile $PIDFILE \
--chdir $WORKDIR \
--exec /usr/bin/env TZ="$MYTZ" $DAEMON -- $DAEMON_OPTS
Run Code Online (Sandbox Code Playgroud)
(注意/usr/bin/env TZ="$MYTZ"
之间--exec
和$DAEMON
)。
重启进程
sudo service bandwidthd restart
Run Code Online (Sandbox Code Playgroud)
并且,可能需要几秒钟,文件应该更新,在浏览器中打开file:///var/lib/bandwidthd/htdocs/index.html
(或写入文件的目录)进行检查。