生成 Linux 运行时间报告的 Bash 脚本
出于一些原因,你可能需要每月收集一次 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.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 系统是否运行了 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.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
via: https://www.2daygeek.com/bash-script-generate-linux-system-uptime-reports/
作者:Magesh Maruthamuthu 选题:lujun9972 译者:geekpi 校对:wxy
- 运行bash脚本,访问网页,生成日志记录
- 设置Linux命令或者shell脚本的运行时间限制
- 在fedora14装载的linux上,创建一个可运行的bash脚本文件
- pycharm运行脚本为何不生成测试报告?
- Linux下运行bash脚本显示“: /usr/bin/env: "bash\r": 没有那个文件或目录
- Linux带有时间控制的多进程bash脚本
- 使用Ant构建web项目 从编译到测试 生成测试报告 打包 邮件发送 远程下载tomcat 部署运行一条龙服务之ant脚本...
- Linux学习2之shell脚本计算代码段运行的时间(精确到毫秒)
- linux 监控脚本运行时间
- 使用ctr+c无法终止一个bash脚本,此脚本在循环执行一个需要运行一定时间的命令
- Linux下Bash运行脚本
- 使用Ant构建web项目 从编译到测试 生成测试报告 打包 邮件发送 远程下载tomcat 部署运行一条龙服务之ant脚本
- 如何使用 Bash 脚本从 SAR 报告中获取 CPU 和内存使用情况 | Linux 中国
- [linux学习笔记]第2天:时间管理,命令帮助信息,文本查看,权限及用户管理,BASH和变量,脚本
- Bash脚本显示当前系统运行报告
- linux中通过shell脚本复制文件,并用时间戳命名
- linux自动定时运行的脚本编写
- 运行linux的脚本老是出现": No such file or directory"错误
- linux 统计程序运行时间
- Firefox修改插件崩溃时间和脚本最大运行时间