生產(chǎn)環(huán)境超實(shí)用shell腳本一

生產(chǎn)環(huán)境超實(shí)用shell腳本一

Shell腳本作為一種強(qiáng)大的自動(dòng)化工具,能夠幫助運(yùn)維人員輕松應(yīng)對(duì)各種復(fù)雜的任務(wù)。

本文將為您介紹服務(wù)器健康檢查、日志清理、備份以及監(jiān)控等多個(gè)方面,并詳細(xì)闡述每個(gè)腳本的功能和應(yīng)用場(chǎng)景,助力您提升運(yùn)維效率,確保生產(chǎn)環(huán)境的穩(wěn)定運(yùn)行。

服務(wù)器健康檢查腳本

  • 功能: 檢查服務(wù)器的CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等資源使用情況,以及關(guān)鍵服務(wù)狀態(tài)。
  • 應(yīng)用場(chǎng)景: 定期監(jiān)控服務(wù)器健康狀況,及時(shí)發(fā)現(xiàn)潛在問(wèn)題。
  • 示例代碼:
#!/bin/bash

# 獲取CPU使用率
cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')

# 獲取內(nèi)存使用率
mem_usage=$(free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2 }')

# 獲取磁盤使用率
disk_usage=$(df -h | awk '$NF=="/"{printf "%s", $5}')

# 獲取網(wǎng)絡(luò)連接數(shù)
net_connections=$(netstat -ant | wc -l)

# 檢查關(guān)鍵服務(wù)狀態(tài)
service_status=$(systemctl is-active nginx)

# 輸出結(jié)果
echo "CPU使用率: $cpu_usage%"
echo "內(nèi)存使用率: $mem_usage"
echo "磁盤使用率: $disk_usage"
echo "網(wǎng)絡(luò)連接數(shù): $net_connections"
echo "Nginx服務(wù)狀態(tài): $service_status"

2. 日志清理腳本

  • 功能: 定期清理過(guò)期的日志文件,釋放磁盤空間。
  • 應(yīng)用場(chǎng)景: 防止日志文件無(wú)限增長(zhǎng),占用過(guò)多磁盤空間。
  • 示例代碼:
#!/bin/bash

# 定義日志目錄和保留天數(shù)
log_dir="/var/log"
keep_days=7

# 查找并刪除過(guò)期日志文件
find $log_dir -type f -mtime +$keep_days -exec rm -f {} \;

echo "日志清理完成!"

3. 備份腳本

  • 功能: 定期備份重要數(shù)據(jù)和配置文件。
  • 應(yīng)用場(chǎng)景: 防止數(shù)據(jù)丟失,確保業(yè)務(wù)連續(xù)性。
  • 示例代碼:
#!/bin/bash

# 定義備份目錄和備份文件名
backup_dir="/backup"
backup_file="backup_$(date +%Y%m%d).tar.gz"

# 創(chuàng)建備份目錄
mkdir -p $backup_dir

# 打包備份文件
tar -czf $backup_dir/$backup_file /etc /var/www

echo "備份完成!"

4. 監(jiān)控腳本

  • 功能: 監(jiān)控系統(tǒng)資源、服務(wù)狀態(tài)、網(wǎng)站可用性等,并發(fā)送告警通知。
  • 應(yīng)用場(chǎng)景: 實(shí)時(shí)監(jiān)控系統(tǒng)運(yùn)行狀態(tài),及時(shí)發(fā)現(xiàn)和處理故障。
  • 示例代碼:
#!/bin/bash

# 定義監(jiān)控項(xiàng)和閾值
cpu_threshold=80
mem_threshold=90
disk_threshold=85

# 獲取監(jiān)控?cái)?shù)據(jù)
cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
mem_usage=$(free -m | awk 'NR==2{printf "%.2f%%", $3*100/$2 }')
disk_usage=$(df -h | awk '$NF=="/"{printf "%s", $5}' | sed 's/%//g')

# 判斷是否超過(guò)閾值并發(fā)送告警
if [ $cpu_usage -gt $cpu_threshold ]; then
    echo "CPU使用率超過(guò)閾值!" | mail -s "CPU告警" admin@example.com
fi

if [ $mem_usage -gt $mem_threshold ]; then
    echo "內(nèi)存使用率超過(guò)閾值!" | mail -s "內(nèi)存告警" admin@example.com
fi

if [ $disk_usage -gt $disk_threshold ]; then
    echo "磁盤使用率超過(guò)閾值!" | mail -s "磁盤告警" admin@example.com
fi

總結(jié)

  1. 服務(wù)器健康檢查腳本:檢查服務(wù)器的CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等資源使用情況,以及關(guān)鍵服務(wù)狀態(tài)。
  2. 日志清理腳本:定期清理過(guò)期的日志文件,釋放磁盤空間。
  3. 備份腳本:定期備份重要數(shù)據(jù)和配置文件。
  4. 監(jiān)控腳本:監(jiān)控系統(tǒng)資源、服務(wù)狀態(tài)、網(wǎng)站可用性等,并發(fā)送告警通知。

通過(guò)使用這些腳本,運(yùn)維人員可以更好地管理生產(chǎn)環(huán)境,及時(shí)發(fā)現(xiàn)和解決問(wèn)題,確保業(yè)務(wù)的連續(xù)性。

– 歡迎點(diǎn)贊、關(guān)注、轉(zhuǎn)發(fā)、收藏【我碼玄黃】,各大平臺(tái)同名。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容