出于一些原因,你可能需要每月收集一次 linux 系統(tǒng)運(yùn)行時(shí)間報(bào)告。
-- Magesh Maruthamuthu(作者)
出于一些原因,你可能需要每月收集一次 Linux 系統(tǒng)運(yùn)行時(shí)間 報(bào)告。如果是這樣,你可以根據(jù)需要使用以下 bash 腳本 之一。
我們?yōu)槭裁匆占@份報(bào)告?在一段時(shí)間后重啟 Linux 服務(wù)器是解決某些未解決問(wèn)題的好方法。(LCTT 譯注:本文這些觀點(diǎn)值得商榷,很多服務(wù)器可以穩(wěn)定運(yùn)行幾千天,尤其是有了內(nèi)核熱補(bǔ)丁之后,啟動(dòng)并不是必須的。)
建議每 180 天重新啟動(dòng)一次。但時(shí)間段也許取決于你公司的政策。如果你已經(jīng)長(zhǎng)時(shí)間運(yùn)行服務(wù)器而沒有重啟。這可能導(dǎo)致服務(wù)器上出現(xiàn)一些性能或內(nèi)存問(wèn)題,我在許多服務(wù)器上都注意到了這一點(diǎn)。
這些腳本一次性提供了所有系統(tǒng)運(yùn)行報(bào)告。
什么是 uptime 命令
uptime 命令將告訴你系統(tǒng)已經(jīng)運(yùn)行了多長(zhǎng)時(shí)間。它在一行中顯示以下信息:當(dāng)前時(shí)間、系統(tǒng)運(yùn)行了多長(zhǎng)時(shí)間、當(dāng)前登錄了多少用戶以及過(guò)去 1、5 和 15 分鐘的平均系統(tǒng)負(fù)載。
什么是 tuptime?
tuptime 是用于報(bào)告系統(tǒng)的歷史和統(tǒng)計(jì)運(yùn)行時(shí)間的工具,可在重啟之間保存。它類似于 uptime 命令,但輸出更有趣。
1)檢查 Linux 系統(tǒng)運(yùn)行時(shí)間的 Bash 腳本
該 bash 腳本將收集所有服務(wù)器正常運(yùn)行時(shí)間,并將報(bào)告發(fā)送到給定的電子郵箱地址。
請(qǐng)?zhí)鎿Q為你的電子郵箱地址,而不是用我們的,否則你將不會(huì)收到郵件。
# 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 設(shè)置可執(zhí)行權(quán)限。
$ chmod +x /opt/scripts/system-uptime-script.sh
最后運(yùn)行 bash 腳本獲取輸出。
# sh /opt/scripts/system-uptime-script.sh
你將收到類似以下的報(bào)告。
# 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 系統(tǒng)是否運(yùn)行了 30 天以上的 Bash 腳本
此 bash 腳本會(huì)收集運(yùn)行 30 天以上的服務(wù)器,并將報(bào)告發(fā)送到指定的郵箱地址。你可以根據(jù)需要更改天數(shù)。
# 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 設(shè)置可執(zhí)行權(quán)限。
$ chmod +x /opt/scripts/system-uptime-script-1.sh
最后添加一條 cronjob 來(lái)自動(dòng)執(zhí)行。它會(huì)在每天早上 7 點(diǎn)運(yùn)行。
# crontab -e 0 7 * * * /bin/bash /opt/scripts/system-uptime-script-1.sh
注意: 你會(huì)在每天早上 7 點(diǎn)會(huì)收到一封電子郵件提醒,它是昨天的詳情。
你將收到類似下面的報(bào)告。
# 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 校對(duì): wxy
本文由 LCTT 原創(chuàng)編譯, Linux中國(guó) 榮譽(yù)推出