在关机和重新启动之前执行简单的脚本

在关机和重新启动之前执行简单的脚本

我需要在关闭或重新启动运行 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。每当网络启动/关闭/重新启动或系统停止/关闭时,这都会为您提供统计数据。

确实不知道这是否是一个好的做法,但是否有效。

相关内容