指示服务器离线时间的 Linux 脚本?

指示服务器离线时间的 Linux 脚本?

以下是从我的专用服务器获取的数据:

root@namhost [~]# last
root     pts/0        XXX Tue May 18 09:46   still logged in
root     pts/0        XXX Mon May 17 08:51 - 12:18  (03:26)
reboot   system boot  XXX Mon May 17 08:49         (1+00:59)
root     pts/0        XXX Sun May 16 11:50 - 13:15  (01:25)

root@namhost [~]# last | grep "system boot"
reboot   system boot  2.6.18-164.15.1. Mon May 17 08:49         (1+01:02)
reboot   system boot  2.6.18-164.el5   Tue May 11 04:20         (7+05:31)
reboot   system boot  2.6.18-164.el5   Tue May 11 03:53         (7+05:58)
reboot   system boot  2.6.18-128.el5   Mon Oct  5 22:40          (-3:-50)
....

我需要一个可以每小时运行一次的脚本,它将:1. 计算自第一天以来的总停机时间 2. 总体停机时间百分比 3. 将此数据存储在 /home/bla/file.txt 文件中,格式如下:TotalDowntime=03:02:02 Average=0.01%

我该如何做呢?

答案1

如果您想弄清楚系统何时关闭(并且我不确定除了问题之外服务器为什么会关闭),您可以尝试以下操作(尽管我确信一定有更好的方法):

  1. 在某处创建一个文件夹来记录内容(可能是 /var/downtime_logs/)
  2. 创建一个 cronjob,每分钟触摸该文件夹中的一个文件touch /var/downtown_logs/`date +%s`(或$(date +%s)使用避免使用反引号
  3. 然后计算该文件夹中的文件数量
  4. 如果你将第一个文件的日期与当前日期进行比较,这就是你保存统计数据的时间,你可以做一些计算来得到剩下的时间

我把这个留作社区维基,以便其他人参与并完成剩余部分

答案2

停机以此目的。

相关内容