生成 Linux 运行时间报告的 Bash 脚本


生成 Linux 运行时间报告的 Bash 脚本

文章插图
 
出于一些原因 , 你可能需要每月收集一次 linux 系统运行时间报告 。
-- Magesh Maruthamuthu(作者)
出于一些原因 , 你可能需要每月收集一次 Linux 系统运行时间 报告 。如果是这样 , 你可以根据需要使用以下 bash 脚本 之一 。
我们为什么要收集这份报告?在一段时间后重启 Linux 服务器是解决某些未解决问题的好方法 。(LCTT 译注:本文这些观点值得商榷 , 很多服务器可以稳定运行几千天 , 尤其是有了内核热补丁之后 , 启动并不是必须的 。)
建议每 180 天重新启动一次 。但时间段也许取决于你公司的政策 。如果你已经长时间运行服务器而没有重启 。这可能导致服务器上出现一些性能或内存问题 , 我在许多服务器上都注意到了这一点 。
这些脚本一次性提供了所有系统运行报告 。
什么是 uptime 命令uptime 命令将告诉你系统已经运行了多长时间 。它在一行中显示以下信息:当前时间、系统运行了多长时间、当前登录了多少用户以及过去 1、5 和 15 分钟的平均系统负载 。
什么是 tuptime?tuptime 是用于报告系统的历史和统计运行时间的工具 , 可在重启之间保存 。它类似于 uptime 命令 , 但输出更有趣 。
1)检查 Linux 系统运行时间的 Bash 脚本该 bash 脚本将收集所有服务器正常运行时间 , 并将报告发送到给定的电子邮箱地址 。
请替换为你的电子邮箱地址 , 而不是用我们的 , 否则你将不会收到邮件 。
# vi /opt/scripts/system-uptime-script.sh#!/bin/bash> /tmp/uptime-report.outfor host in cat /tmp/servers.txtdoecho -n "$host: "ssh $host uptime | awk '{print $3,$4}' | sed 's/,//'done | column -t >> /tmp/uptime-report.outcat /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.out192.168.1.5: 2 days192.168.1.6: 15 days192.168.1.7: 30 days192.168.1.8: 7 days192.168.1.9: 67 days192.168.1.10: 130 days192.168.1.11: 23 days2)检查 Linux 系统是否运行了 30 天以上的 Bash 脚本此 bash 脚本会收集运行 30 天以上的服务器 , 并将报告发送到指定的邮箱地址 。你可以根据需要更改天数 。
# vi /opt/scripts/system-uptime-script-1.sh#!/bin/bash> /tmp/uptime-report-1.out for host in cat /tmp/servers.txtdoecho -n "$host: "ssh $host uptime | awk '{print $3,$4}' | sed 's/,//'done | column -t >> /tmp/uptime-report-1.outcat /tmp/uptime-report-1.out | awk ' $2 >= 30' > /tmp/uptime-report-2.outcat /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 -e0 7 * * * /bin/bash /opt/scripts/system-uptime-script-1.sh注意: 你会在每天早上 7 点会收到一封电子邮件提醒 , 它是昨天的详情 。
你将收到类似下面的报告 。
【生成 Linux 运行时间报告的 Bash 脚本】# cat /tmp/uptime-report-2.out192.168.1.7: 30 days192.168.1.9: 67 days192.168.1.10: 130 days


    推荐阅读