云网牛站
所在位置:首页 > Linux编程 > Bash脚本:在Linux上生成系统正常运行时间报告

Bash脚本:在Linux上生成系统正常运行时间报告

2019-10-07 10:07:55作者:戴进稿源:云网牛站

出于某些目的,您可能需要每月一次收集Linux系统正常运行时间报告。如果是这样,则可以根据需要使用以下bash脚本之一。

Bash脚本:在Linux上生成系统正常运行时间报告

 

我们为什么要收集这份报告?

在一段时间后重新启动Linux服务器是解决某些未解决问题的好习惯。建议每180天重新启动一次。但是,根据您公司的政策,此期限可能会有所不同。如果您已经长时间运行服务器而没有重新启动,这可能导致服务器上出现一些性能问题或内存问题,我在许多服务器上都注意到了这一点。

这些脚本可在一处提供所有系统正常运行时间报告。

 

什么是正常运行时间命令

uptime命令将告诉您系统已经运行了多长时间,它以一行的形式显示以下信息。

当前时间,系统运行了多长时间,当前登录了多少用户以及过去1、5和15分钟的平均系统负载。

参考:uptime命令_Linux uptime命令使用详解:查看Linux系统负载信息

 

什么是tuptime

Tuptime是一个用于报告系统的历史和统计运行时间的工具,可以在重新启动之间进行记录,类似于uptime命令,但输出更多的信息。

 

1)Bash脚本检查Linux系统正常运行时间

该bash脚本将收集所有服务器正常运行时间,并将报告发送到给定的电子邮件ID。

请替换您的电子邮件ID,而不是我们的电子邮件ID,否则您将不会收到邮件:

# vi /opt/scripts/system-uptime-script.sh

#!/bin/bash

> /tmp/uptime-report.out

for host in cat /tmp/servers.txt

do

echo -n "$host: "

ssh $host uptime | awk '{print $3,$4}' | sed 's/,//'

done | column -t >> /tmp/uptime-report.out

cat /tmp/uptime-report.out | mail -s "Linux Servers Uptime Report" "ywnz@163.com"

将可执行权限设置为“system-uptime-script.sh”文件:

$ chmod +x /opt/scripts/system-uptime-script.sh

最后运行bash脚本以获取输出:

# sh /opt/scripts/system-uptime-script.sh

您将收到类似以下的报告:

# cat /tmp/uptime-report.out

Bash脚本:在Linux上生成系统正常运行时间报告

 

2)Bash脚本检查Linux系统是否运行了30天以上

此bash脚本收集运行30天以上的服务器,并将报告发送到给定的电子邮件ID,您可以根据需要更改日期:

# vi /opt/scripts/system-uptime-script-1.sh

#!/bin/bash

> /tmp/uptime-report-1.out 

for host in cat /tmp/servers.txt

do

echo -n "$host: "

ssh $host uptime | awk '{print $3,$4}' | sed 's/,//'

done | column -t >> /tmp/uptime-report-1.out

cat /tmp/uptime-report-1.out | awk ' $2 >= 30' > /tmp/uptime-report-2.out

cat /tmp/uptime-report-2.out | mail -s "Linux Servers Uptime Report" "ywnz@163.com"

为“system-uptime-script-1.sh”文件设置可执行权限:

$ chmod +x /opt/scripts/system-uptime-script-1.sh

最后添加一个cronjob以使其自动化,它每天早上7点运行:

# crontab -e

0 7 * * * /bin/bash /opt/scripts/system-uptime-script-1.sh

参考:在Linux系统下使用Crontab UI安全管理Cron定时任务

注意:您每天早上7点会收到一封电子邮件提醒,其中包含昨天的日期详细信息。

您将收到类似以下的报告:

# cat /tmp/uptime-report-2.out

Bash脚本:在Linux上生成系统正常运行时间报告

 

相关主题

在Linux系统中创建以当前日期/时间/月/年命名的目录

精选文章
热门文章