每月收集一次Linux系统运行时间报告的原因及解决办法

由于某些原因,您可能需要收集每月的 Linux 系统正常运行时间报告。

— Magesh Maruthamuthu(作者)

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

我们为什么要收集这份报告?一段时间后重新启动 Linux 服务器是解决一些未解决问题的好方法。 (LCTT译注:本文这些观点值得商榷,很多服务器可以稳定运行数千天linux系统时间总是慢,尤其是内核热补丁后linux系统时间总是慢,不需要启动。)

建议每 180 天重新启动一次。但时间段可能取决于贵公司的政策。如果您长时间运行服务器而没有重新启动。这可能会导致服务器出现一些性能或内存问题,我在许多服务器上都注意到了这一点。

这些脚本一次提供所有系统操作的报告。

什么是正常运行时间命令

uptime 命令会告诉您系统运行了多长时间。它在一行中显示以下信息:当前时间、系统运行了多长时间、当前有多少用户登录,以及过去 1、5 和 15 分钟的平均系统负载。

什么是 tuptime?

tuptime 是一个报告系统历史和统计运行时间的工具,可以在重启之间保存。它类似于 uptime 命令,但输出更有趣。

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

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

请用您的电子邮件地址代替我们的电子邮件地址,否则您将不会收到电子邮件。

# 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" "2daygeek@gmail.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
192.168.1.5: 2 days
192.168.1.6: 15 days
192.168.1.7: 30 days
192.168.1.8: 7 days
192.168.1.9: 67 days
192.168.1.10: 130 days
192.168.1.11: 23 days

2)检查 Linux 系统是否已经运行 Bash 脚本超过 30 天

此 bash 脚本将收集运行 30 天前的服务器并将报告发送到指定的电子邮件地址。您可以根据需要更改天数。

# 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" "2daygeek@gmail.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

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

您将收到一份类似于以下的报告。

# cat /tmp/uptime-report-2.out
192.168.1.7: 30 days
192.168.1.9: 67 days
192.168.1.10: 130 days

通过:

作者:Magesh Maruthamuthu 主题:lujun9972 译者:geekpi 校对者:wxy

本文由LCTT原创编译,Linux中国发布。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论