生產環境超實用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
腳本,包括安全加固腳本、數據同步腳本、數據庫備份腳本、網站監控腳本和日志分析腳本。
這些腳本可以幫助提高系統安全性、實現數據備份和遷移、監控網站運行狀態以及分析日志文件。
通過使用這些腳本,可以自動化運維任務,提高工作效率,確保生產環境的穩定運行。
– 歡迎點贊、關注、轉發、收藏【我碼玄黃】,各大平臺同名。