生產環境超實用Shell腳本三

生產環境超實用Shell腳本三

Shell腳本作為自動化運維的利器,在生產環境中扮演著至關重要的角色。

本文將介紹安全加固腳本、數據同步腳本、數據庫備份腳本、網站監控腳本、日志分析腳本等的應用場景,并提供相應的示例代碼。

1. 安全加固腳本

  • 功能: 加強系統安全配置,例如禁用root登錄、修改SSH端口、配置防火墻等。
  • 應用場景: 提高系統安全性,防止惡意攻擊。
  • 示例代碼:
#!/bin/bash

# 禁用root登錄
sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config

# 修改SSH端口
sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config

# 配置防火墻
ufw allow 2222/tcp
ufw deny 22/tcp
ufw enable

# 重啟SSH服務
systemctl restart sshd

echo "安全加固完成!"

2. 數據同步腳本

  • 功能: 將數據從一個服務器同步到另一個服務器。
  • 應用場景: 實現數據備份、數據遷移、負載均衡等。
  • 示例代碼:
#!/bin/bash

# 定義源目錄和目標目錄
src_dir="/data"
dst_dir="user@backup.example.com:/backup"

# 使用rsync同步數據
rsync -avz --delete $src_dir $dst_dir

echo "數據同步完成!"

3. 數據庫備份腳本

  • 功能: 定期備份數據庫,并壓縮存儲。
  • 應用場景: 防止數據庫數據丟失,確保數據安全。
  • 示例代碼:
#!/bin/bash

# 定義數據庫信息和備份目錄
db_user="root"
db_password="password"
db_name="mydatabase"
backup_dir="/backup"

# 創建備份目錄
mkdir -p $backup_dir

# 備份數據庫
mysqldump -u$db_user -p$db_password $db_name | gzip > $backup_dir/$db_name_$(date +%Y%m%d).sql.gz

echo "數據庫備份完成!"

4. 網站監控腳本

  • 功能: 監控網站可用性、響應時間、狀態碼等,并發送告警通知。
  • 應用場景: 實時監控網站運行狀態,及時發現和處理故障。
  • 示例代碼:
#!/bin/bash

# 定義網站URL和監控頻率
website="https://www.example.com"
interval=60

# 循環監控網站
while true; do
    # 獲取網站狀態碼和響應時間
    response=$(curl -o /dev/null -s -w "%{http_code}\n%{time_total}\n" $website)
    status_code=$(echo "$response" | head -n 1)
    response_time=$(echo "$response" | tail -n 1)

    # 判斷狀態碼是否正常
    if [ $status_code -ne 200 ]; then
        echo "網站不可用!狀態碼: $status_code" | mail -s "網站監控告警" admin@example.com
    fi

    # 判斷響應時間是否超時
    if [ $(echo "$response_time > 2" | bc) -eq 1 ]; then
        echo "網站響應時間過長!響應時間: $response_time 秒" | mail -s "網站監控告警" admin@example.com
    fi

    # 等待指定時間后繼續監控
    sleep $interval
done

5. 日志分析腳本

  • 功能: 分析日志文件,提取關鍵信息,生成統計報告。
  • 應用場景: 分析網站訪問日志、系統日志、應用程序日志等,發現潛在問題。
  • 示例代碼:
#!/bin/bash

# 定義日志文件和分析結果輸出文件
log_file="/var/log/nginx/access.log"
output_file="log_analysis.txt"

# 統計訪問量最多的IP地址
awk '{print $1}' $log_file | sort | uniq -c | sort -nr | head -n 10 > $output_file

# 統計訪問量最多的URL
awk '{print $7}' $log_file | sort | uniq -c | sort -nr | head -n 10 >> $output_file

# 統計HTTP狀態碼分布
awk '{print $9}' $log_file | sort | uniq -c | sort -nr >> $output_file

echo "日志分析完成!"

總結

本文介紹了生產環境中實用的Shell腳本,包括安全加固腳本、數據同步腳本、數據庫備份腳本、網站監控腳本和日志分析腳本。

這些腳本可以幫助提高系統安全性、實現數據備份和遷移、監控網站運行狀態以及分析日志文件。

通過使用這些腳本,可以自動化運維任務,提高工作效率,確保生產環境的穩定運行。

– 歡迎點贊、關注、轉發、收藏【我碼玄黃】,各大平臺同名。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容