Shell腳本作為Linux運維工程師必須掌握的技能之一,能夠通過編寫Shell腳本來提升工作效率和減小出錯率。下面我們來介紹幾個實用的Shell腳本。
一、文件備份腳本
#!/bin/bash # 備份目錄 backup_dir=/var/backup/ # 要備份的文件列表 files="/etc/passwd /etc/group /etc/shadow" # 備份文件名 backup_file="backup-$(date +%Y%m%d%H%M%S).tar.gz" # 備份命令 tar -zcvf ${backup_dir}${backup_file} ${files}
以上腳本將要備份的文件列表存放在一個變數中,將備份文件命名為當前時間,並將備份文件保存在/var/backup/目錄下。
二、日誌分析腳本
#!/bin/bash # 要分析的日誌文件 logfile=/var/log/messages # 分析腳本 awk '/error/' ${logfile} > error.log awk '/warning/' ${logfile} > warning.log
以上腳本將/var/log/messages中包含error和warning的日誌行分別提取到error.log和warning.log文件中。
三、查找並刪除指定文件腳本
#!/bin/bash # 要查找和刪除的目錄 search_dir=/home/ # 要查找和刪除的文件名 filename=temp # 是否確認刪除 confirm=true # 查找命令 find ${search_dir} -name ${filename} -type f -print0 | while read -d $'\0' file do if [ ${confirm} = true ]; then echo "Delete file ${file}? (y/n)" read answer else answer=y fi if [ ${answer} = "y" ]; then rm -f ${file} echo "File ${file} deleted." fi done
以上腳本將搜索/home/目錄下所有名為temp的文件,並提示用戶確認是否刪除。如果確認刪除,則將文件刪除。
四、文件上傳腳本
#!/bin/bash # 要上傳的文件 filename=test.txt # 上傳地址 upload_url=http://example.com/upload/ # 上傳命令 curl -F "file=@${filename}" ${upload_url}
以上腳本將test.txt文件上傳到指定的上傳地址。
五、CPU負載監控腳本
#!/bin/bash # CPU負載閾值 threshold=2 # 檢查間隔 interval=5 # 監控命令 while true do load=$(uptime | awk '{print $NF}' | cut -d. -f1) if [ ${load} -ge ${threshold} ]; then echo "$(date) CPU load exceeded threshold ${threshold}: ${load}" alert-command fi sleep ${interval} done
以上腳本每隔5秒鐘檢查CPU負載情況,如果負載超過閾值2,則輸出警告信息並執行警告命令。
六、TCP連接數監控腳本
#!/bin/bash # TCP連接數閾值 threshold=1000 # 檢查間隔 interval=10 # 監控命令 while true do count=$(netstat -an | grep :80 | wc -l) if [ ${count} -ge ${threshold} ]; then echo "$(date) TCP connection count exceeded threshold ${threshold}: ${count}" alert-command fi sleep ${interval} done
以上腳本每隔10秒鐘檢查80埠的TCP連接數,如果超過閾值1000,則輸出警告信息並執行警告命令。
七、磁碟使用情況監控腳本
#!/bin/bash # 磁碟使用率閾值 threshold=90 # 監控命令 while true do usage=$(df -h | grep /dev/sda1 | awk '{print $5}' | cut -d% -f1) if [ ${usage} -ge ${threshold} ]; then echo "$(date) Disk usage exceeded threshold ${threshold}: ${usage}%" alert-command fi sleep 300 done
以上腳本每隔5分鐘檢查/dev/sda1分區的磁碟使用率,如果超過閾值90,則輸出警告信息並執行警告命令。
原創文章,作者:VCRM,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/145065.html