我需要在关闭或重新启动运行 Debian 8 的 VPS 之前运行一个脚本,以记录网络统计信息。我尝试将脚本直接添加到并/etc/init.d
在/etc/rc0.d
和中进行符号链接/etc/rc6.d
,并向其添加 LSB 标头,使其像实际的启动和停止服务并使用 update-rc.d 生成符号链接,但没有任何效果,似乎脚本根本没有执行。也许它可能与它是 VPS 有关,所以它没有当系统明显关闭或重新启动时,会被系统识别。
我只需要一个简单的机制,无需创建适当的服务。另外我想知道哪种方法是检查脚本是否实际执行的更好方法,即一些简单的日志记录方法。脚本就是这样:
RESULT=$(bc <<< "scale =2;($(cat /sys/class/net/venet0/statistics/rx_bytes)/1024/1024/1024)+($(cat /sys/class/net/venet0/statistics/tx_bytes)/1024/1024/1024)+($(cat /root/bw))")
echo $RESULT > /root/bw
答案1
这对我来说有效/etc/systemd/system/netstat.service
:
[单元] 描述=关闭时保存接口统计信息 [服务] 类型=一次性 退出后继续保留=是 ExecStart=/bin/true ExecStop=/bin/sh -c '{ 日期; ip -s 链接; } >>/root/ipstat.log' [安装] WantedBy=多用户.target
使用 启用它systemctl enable netstat
。这不会为您提供精确的统计数据,因为网络接口在关闭期间仍然可以使用,但这对您来说可能是可以接受的。
答案2
好吧,我通过从 调用我的脚本来使用一个丑陋的黑客/etc/rc.d/init.d/network
。每当网络启动/关闭/重新启动或系统停止/关闭时,这都会为您提供统计数据。
确实不知道这是否是一个好的做法,但是否有效。