生成Linux运行时间报告的Bash脚本
创始人
2025-03-19 03:11:15
0次

[[279062]]

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

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

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

这些脚本一次性提供了所有系统运行报告。

什么是 uptime 命令

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

什么是 tuptime?

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

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

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

请替换为你的电子邮箱地址,而不是用我们的,否则你将不会收到邮件。

  1. # vi /opt/scripts/system-uptime-script.sh
  2.  
  3. #!/bin/bash
  4. > /tmp/uptime-report.out
  5. for host in cat /tmp/servers.txt
  6. do
  7. echo -n "$host: "
  8. ssh $host uptime | awk '{print $3,$4}' | sed 's/,//'
  9. done | column -t >> /tmp/uptime-report.out
  10. cat /tmp/uptime-report.out | mail -s "Linux Servers Uptime Report" "2daygeek@gmail.com"

给 system-uptime-script.sh 设置可执行权限。

  1. $ chmod +x /opt/scripts/system-uptime-script.sh

最后运行 bash 脚本获取输出。

  1. # sh /opt/scripts/system-uptime-script.sh

你将收到类似以下的报告。

  1. # cat /tmp/uptime-report.out
  2.  
  3. 192.168.1.5: 2 days
  4. 192.168.1.6: 15 days
  5. 192.168.1.7: 30 days
  6. 192.168.1.8: 7 days
  7. 192.168.1.9: 67 days
  8. 192.168.1.10: 130 days
  9. 192.168.1.11: 23 days

2)检查 Linux 系统是否运行了 30 天以上的 Bash 脚本

此 bash 脚本会收集运行 30 天以上的服务器,并将报告发送到指定的邮箱地址。你可以根据需要更改天数。

  1. # vi /opt/scripts/system-uptime-script-1.sh
  2.  
  3. #!/bin/bash
  4. > /tmp/uptime-report-1.out
  5. for host in cat /tmp/servers.txt
  6. do
  7. echo -n "$host: "
  8. ssh $host uptime | awk '{print $3,$4}' | sed 's/,//'
  9. done | column -t >> /tmp/uptime-report-1.out
  10. cat /tmp/uptime-report-1.out | awk ' $2 >= 30' > /tmp/uptime-report-2.out
  11. cat /tmp/uptime-report-2.out | mail -s "Linux Servers Uptime Report" "2daygeek@gmail.com"

给 system-uptime-script-1.sh 设置可执行权限。

  1. $ chmod +x /opt/scripts/system-uptime-script-1.sh

最后添加一条 cronjob 来自动执行。它会在每天早上 7 点运行。

  1. # crontab -e
  2.  
  3. 0 7 * * * /bin/bash /opt/scripts/system-uptime-script-1.sh

注意: 你会在每天早上 7 点会收到一封电子邮件提醒,它是昨天的详情。

你将收到类似下面的报告。

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

 

 

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
只需三步,让你掌握阿尔法路由器... 请参照以下阿尔法路由器设置方法,通过浏览器进入及设置宽带路由器。经过这三个步骤的设置,基本上能够熟悉...
如何更省钱? 近期特价热门硒鼓... 如今激光打印设备已经成为商务或企业的绝对主力办公设备,但采购者往往忽视了激光打印设备所用的耗材,相对...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...