Linux運維工程師的7個實用的Shell腳本

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
VCRM的頭像VCRM
上一篇 2024-10-26 11:55
下一篇 2024-10-26 11:55

相關推薦

發表回復

登錄後才能評論