CentOS中while循環(huán)案例:實用腳本編程技巧
在CentOS系統(tǒng)中,while循環(huán)是Shell腳本編程中不可或缺的工具。本文將通過多個實用案例,展示while循環(huán)在系統(tǒng)管理和自動化任務中的應用,幫助您提升腳本編程技能。
1. 監(jiān)控系統(tǒng)負載
以下腳本每5秒檢查一次系統(tǒng)負載,當負載超過預設閾值時發(fā)出警告:
#!/bin/bash
threshold=2.0
while true; do
load=$(cat /proc/loadavg | awk '{print $1}')
if (( $(echo "$load > $threshold" | bc -l) )); then
echo "警告:系統(tǒng)負載($load)超過閾值($threshold)"
fi
sleep 5
done
2. 批量用戶管理
這個腳本從文件中讀取用戶名列表,并創(chuàng)建相應的用戶賬戶:
#!/bin/bash
while read username; do
useradd $username
echo "已創(chuàng)建用戶: $username"
done
3. 文件備份
自動備份指定目錄下的文件,并添加時間戳:
#!/bin/bash
source_dir="/path/to/source"
backup_dir="/path/to/backup"
while true; do
timestamp=$(date +"%Y%m%d_%H%M%S")
tar -czf "$backup_dir/backup_$timestamp.tar.gz" "$source_dir"
echo "備份完成: backup_$timestamp.tar.gz"
sleep 3600 # 每小時備份一次
done
4. 網(wǎng)絡連接測試
定期檢查網(wǎng)絡連接狀態(tài),如果連接失敗則嘗試重新連接:
#!/bin/bash
target="www.example.com"
while true; do
if ping -c 1 $target &> /dev/null; then
echo "網(wǎng)絡連接正常"
else
echo "網(wǎng)絡連接失敗,嘗試重新連接..."
# 在此添加重新連接的命令
fi
sleep 60
done
5. 日志分析
分析Apache訪問日志,統(tǒng)計每個IP地址的訪問次數(shù):
#!/bin/bash
log_file="/var/log/httpd/access_log"
declare -A ip_count
while read line; do
ip=$(echo $line | awk '{print $1}')
((ip_count[$ip]++))
done
這些案例展示了while循環(huán)在CentOS系統(tǒng)管理和自動化任務中的廣泛應用。通過實踐這些例子,您可以深入理解while循環(huán)的工作原理,并在日常工作中靈活運用。記住,良好的錯誤處理和適當?shù)耐顺鰲l件對于編寫可靠的腳本至關(guān)重要。隨著經(jīng)驗的積累,您將能夠開發(fā)出更復雜、更高效的腳本來滿足各種系統(tǒng)管理需求。