当前位置: 首页 > 科技观察

用于生成Linux正常运行时间报告的Bash脚本

时间:2023-03-18 09:53:38 科技观察

您可能想要收集每月Linux系统正常运行时间报告的原因有多种。如果是这样,您可以根据需要使用以下bash脚本之一。我们为什么要收集这份报告?一段时间后重新启动Linux服务器是修复一些未解决问题的好方法。(LCTT译注:本文的这些点值得商榷,很多服务器可以稳定运行几千天,尤其是有内核热补丁,不需要启动。)建议每180天重启一次。但时间段可能取决于您的公司政策。如果您已经长时间运行服务器而没有重新启动。这可能会导致服务器出现一些性能或内存问题,我在许多服务器上都注意到了这一点。这些脚本一次性提供所有系统操作的报告。什么是uptime命令uptime命令会告诉您系统运行了多长时间。它在一行中显示以下信息:当前时间、系统运行了多长时间、当前登录了多少用户以及过去1、5和15分钟的平均系统负载。什么是正常运行时间?tuptime是一个用于报告系统历史和统计正常运行时间的工具,在重新启动之间保留。它类似于uptime命令,但输出更有趣。1)用于检查Linux系统正常运行时间的Bash脚本这个bash脚本将收集所有服务器的正常运行时间并将报告发送到给定的电子邮件地址。请用您的电子邮件地址代替我们的电子邮件地址,否则您将收不到电子邮件。#vi/opt/scripts/system-uptime-script.sh#!/bin/bash>/tmp/uptime-report.outforhostincat/tmp/servers.txtdoecho-n"$host:"ssh$hostuptime|awk'{print$3,$4}'|sed的/,//'完成|列-t>>/tmp/uptime-report.outcat/tmp/uptime-report.out|mail-s"LinuxServersUptimeReport""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:2days192.168.1.6:15days192.168.1.7:30days192.168.1.8:7days192.168.1.9:67days192.168.1.10:130days192.168.1.11:23days2)检测Linux系统是否运行超过30天的bash脚本该bash脚本会收集运行超过30天的服务器,并将报告发送到指定的电子邮件地址。您可以根据需要更改天数。#vi/opt/scripts/system-uptime-script-1.sh#!/bin/bash>/tmp/uptime-report-1.outforhostincat/tmp/servers.txtdoecho-n"$host:"ssh$主机正常运行时间|awk'{print$3,$4}'|sed的/,//'完成|列-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"LinuxServersUptimeReport""2daygeek@gmail.com"到system-uptime-script-1.sh设置可执行权限。$chmod+x/opt/scripts/system-uptime-script-1.sh最后加一个cronjob自动执行。它每天早上7点运行。#crontab-e07***/bin/bash/opt/scripts/system-uptime-script-1.sh注意:您将在每天早上7点收到一封包含昨天详细信息的电子邮件提醒。您将收到一份类似于下面的报告。#cat/tmp/uptime-report-2.out192.168.1.7:30days192.168.1.9:67days192.168.1.10:130days