生產(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é)
- 服務(wù)器健康檢查腳本:檢查服務(wù)器的CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等資源使用情況,以及關(guān)鍵服務(wù)狀態(tài)。
- 日志清理腳本:定期清理過(guò)期的日志文件,釋放磁盤空間。
- 備份腳本:定期備份重要數(shù)據(jù)和配置文件。
- 監(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)同名。