生成 Linux 运行时间报告的 Bash 脚本
创始人
2024-03-02 03:40:00
0

出于一些原因,你可能需要每月收集一次 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

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

不要同时运行时间计数。
在多线程环境中,如果需要进行时间计数,可以使用线程安全的计时器类来...
2025-01-10 23:01:38
不要使用tqdm估计总运行...
虽然tqdm提示信息非常实用,但不建议仅依赖它来估计总运行时间。直...
2025-01-10 22:00:56
不同的记忆化策略导致运行时...
在使用记忆化优化算法时,采用不同的策略会对算法的时间复杂度产生显著...
2025-01-08 15:30:25
并行化版本的代码运行时间更...
检查代码并行化的实现:确保代码的并行化实现方式正确。例如,在使用O...
2024-12-18 16:30:29
并行处理应该更快,但运行时...
一种可能的原因是该程序中存在一个GIL(全局解释器锁)。GIL会阻...
2024-12-18 15:01:26
并发方法比简单方法运行时间...
并发方法比简单方法运行时间更长的原因是因为并发方法涉及到多个线程的...
2024-12-18 07:00:46

热门资讯

“Linux 中国” 开源社区... 这是一个艰难的决定 —— 这不是调侃,而是当你真正做出改变了你十几年生活轨迹的决定时,你就会明白这个...
硬核观察 #1263 德国铁路... #1 德国铁路公司招聘 Windows for Workgroups 3.11 管理员该职位要求了解...
人工智能教程(七):Sciki... 在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Kera...
关闭 WSL 中正在运行的 L... 以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。你使用 WSL 在...
MX Linux 23.2 “... 最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。MX Linux 推出了 ...
硬核观察 #1262 网络上最... #1 网络上最古老的软件存档库之一即将关闭美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024...
如何在 RHEL 上通过绑定配... 在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bondin...
Linux Matrix 消息... Matrix 用户可以升级 Fractal 6 了!Fractal 是目前 最好的 Matrix 客...
如何通过 VLC 使用字幕 使用 VLC 媒体播放器播放和管理字幕的新手指南。我是一个超级动漫迷,如果你想观看最新的剧集,那么你...
硬核观察 #1261 X 计划... #1 X 计划在奥斯汀建立内容审核总部据报道,该部门将招聘 100 名全职员工,将主要关注 CSE ...