在CentOS系統(tǒng)中編寫Shell腳本的完整指南
環(huán)境準(zhǔn)備與基礎(chǔ)配置
確認(rèn)系統(tǒng)已安裝GNU Bash環(huán)境:
bash --version
建議安裝開發(fā)工具包:
sudo yum groupinstall "Development Tools"
Shell腳本核心要素
- 文件頭聲明:
#!/bin/bash
- 注釋規(guī)范:
# 腳本描述
- 權(quán)限設(shè)置:
chmod +x script.sh
典型腳本案例解析
基礎(chǔ)示例:系統(tǒng)信息顯示
#!/bin/bash
# 顯示服務(wù)器基本信息
echo "主機(jī)名稱: $(hostname)"
echo "系統(tǒng)時(shí)間: $(date)"
echo "磁盤使用: $(df -h | grep /dev/sda1)"
實(shí)用腳本:自動(dòng)備份系統(tǒng)日志
#!/bin/bash
BACKUP_DIR="/var/log/backup_$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR
cp /var/log/messages $BACKUP_DIR
echo "日志備份完成于 $(date)" >> /var/log/backup.log
調(diào)試與優(yōu)化技巧
啟用調(diào)試模式:
bash -x your_script.sh
設(shè)置嚴(yán)格錯(cuò)誤檢測(cè):
set -euo pipefail
進(jìn)階功能實(shí)現(xiàn)
- 通過crontab配置定時(shí)任務(wù):
crontab -e
添加0 3 * * * /path/to/backup.sh
- 使用函數(shù)封裝重復(fù)邏輯:
function system_check() {
??free -m | awk '/Mem/{print "內(nèi)存使用率:", $3/$2*100"%"}
}
注意事項(xiàng)
- 避免使用root權(quán)限執(zhí)行未知腳本
- 配置
$PATH
環(huán)境變量確保腳本全局可用 - 定期檢查腳本兼容性