你如何知道你自己的服务器运行了多久?
温馨提示:这篇文章已超过599天没有更新,请注意相关的内容是否还可用!
出于多种原因时间服务器,您可能希望每月收集 Linux 系统正常运行时间报告。
——马格什·马鲁塔穆图(作者)
出于多种原因,您可能希望每月收集 Linux 系统正常运行时间报告。 如果是这样,您可以根据需要使用以下 bash 脚本之一。
我们为什么要收集这份报告? 一段时间后重新启动 Linux 服务器是修复一些未解决问题的好方法。 (LCTT译注:本文的这些观点值得商榷,很多服务器可以稳定运行几千天,尤其是在内核热补丁可用后,无需启动。)
建议每 180 天重新启动一次。 但时间段可能取决于您的公司政策。 如果您已经长时间运行服务器而没有重新启动。 这可能会导致服务器出现一些性能或内存问题,我在许多服务器上都注意到了这一点。
这些脚本一次性提供所有系统操作的报告。
什么是正常运行时间命令
uptime 命令会告诉您系统运行了多长时间。 它在一行中显示以下信息:当前时间、系统运行了多长时间、当前登录了多少用户以及过去 1、5 和 15 分钟的平均系统负载。
什么是正常运行时间?
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:00 收到一封包含昨天详细信息的电子邮件提醒。
您将收到一份类似于下面的报告。
# 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 China Honor发布