偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Shell 腳本編程:七個(gè)提高效率的自動(dòng)化腳本

系統(tǒng) Linux
本文將介紹七個(gè)實(shí)用Shell腳本,涵蓋文件管理、系統(tǒng)監(jiān)控、數(shù)據(jù)處理等常見場(chǎng)景,適合初學(xué)者學(xué)習(xí)參考。

Shell腳本是Linux系統(tǒng)管理和自動(dòng)化任務(wù)的強(qiáng)大工具。通過編寫腳本,我們可以將重復(fù)性工作自動(dòng)化,大幅提升效率。

本文將介紹七個(gè)實(shí)用Shell腳本,涵蓋文件管理、系統(tǒng)監(jiān)控、數(shù)據(jù)處理等常見場(chǎng)景,適合初學(xué)者學(xué)習(xí)參考。

1. 自動(dòng)備份重要文件

場(chǎng)景:定期備份/home/user/documents目錄到/backup,并壓縮存檔。

#!/bin/bash
# 定義源目錄和目標(biāo)目錄
SOURCE_DIR="/home/user/documents"
BACKUP_DIR="/backup"
DATE=$(date +%Y-%m-%d)


# 創(chuàng)建備份文件(帶日期)
tar -czf "$BACKUP_DIR/backup_$DATE.tar.gz" "$SOURCE_DIR"


# 輸出成功信息
echo "Backup completed: $BACKUP_DIR/backup_$DATE.tar.gz"

說明:

  • tar -czf:壓縮目錄為.tar.gz文件。
  • date +%Y-%m-%d:獲取當(dāng)前日期,用于文件名。

2. 監(jiān)控磁盤空間并發(fā)送警報(bào)

場(chǎng)景:當(dāng)磁盤使用率超過90%時(shí)發(fā)送郵件報(bào)警。

#!/bin/bash
THRESHOLD=90
CURRENT=$(df / | grep / | awk '{print $5}' | sed 's/%//g')


if [ "$CURRENT" -gt "$THRESHOLD" ]; then
    echo "Disk usage is $CURRENT% on $(hostname)" | mail -s "Disk Alert" admin@example.com
fi

說明:

  • df /:獲取根分區(qū)磁盤使用率。
  • mail:發(fā)送郵件(需配置郵件服務(wù))。

3. 自動(dòng)清理舊日志文件

場(chǎng)景:刪除/var/log下超過30天的日志文件。

#!/bin/bash
find /var/log -type f -name "*.log" -mtime +30 -exec rm {} \;

說明:

  • find -mtime +30:匹配修改時(shí)間超過30天的文件。
  • -exec rm {} \;:對(duì)找到的文件執(zhí)行刪除操作。

4. 檢查服務(wù)器存活狀態(tài)

場(chǎng)景:檢測(cè)一組服務(wù)器是否在線。

#!/bin/bash
SERVERS=("192.168.1.1" "192.168.1.2" "example.com")


for server in "${SERVERS[@]}"; do
    ping -c 1 "$server" &> /dev/null && echo "$server is UP" || echo "$server is DOWN"
done

說明:

  • ping -c 1:發(fā)送1次ICMP請(qǐng)求。
  • &> /dev/null:忽略輸出,僅顯示結(jié)果。

5. 密碼生成器

場(chǎng)景:生成隨機(jī)密碼(含大小寫字母、數(shù)字、符號(hào))。

#!/bin/bash
LENGTH=12
PASSWORD=$(tr -dc 'A-Za-z0-9!@#$%^&*' < /dev/urandom | head -c "$LENGTH")
echo "Generated Password: $PASSWORD"

說明:

  • /dev/urandom:Linux隨機(jī)數(shù)設(shè)備。
  • tr -dc:過濾指定字符集。

6. 實(shí)時(shí)監(jiān)控DNS解析狀態(tài)

場(chǎng)景:持續(xù)檢查域名是否能正常解析,失敗時(shí)記錄日志。

#!/bin/bash
domain="example.com"
log_file="dns.log"


while true; do
    result=$(dig +short $domain)
    [ -z "$result" ] && echo "$(date): DNS failed" >> $log_file
    sleep 1
done

說明:

  • dig +short:快速獲取DNS解析結(jié)果。
  • 空結(jié)果時(shí)記錄日志,適合監(jiān)控關(guān)鍵域名可用性。

7. HTTP服務(wù)監(jiān)控腳本

場(chǎng)景:持續(xù)檢測(cè)網(wǎng)站可用性,記錄訪問狀態(tài)碼

#!/bin/bash
url="http://example.com"
log_file="http_test.log"


while true; do
    http_result=$(curl -s -o /dev/null -w "%{http_code}" $url)
    if [ $http_result -eq 200 ]; then
        echo "$(date): HTTP request to $url succeeded (Status: $http_result)" >> $log_file
    else
        echo "$(date): HTTP request to $url failed (Status: $http_result)" >> $log_file
    fi
    sleep 1
done

說明:

  • curl -w "%{http_code}":獲取HTTP狀態(tài)碼
  • 狀態(tài)碼200時(shí)記錄成功,其他狀態(tài)記錄失敗
責(zé)任編輯:趙寧寧 來源: DevOps運(yùn)維實(shí)戰(zhàn)
相關(guān)推薦

2015-06-02 09:33:30

編程效率程序員

2015-05-22 14:01:50

編程提高效率

2020-06-04 15:55:54

GitHub代碼開發(fā)者

2025-01-15 17:00:00

開發(fā)Linux命令

2023-10-23 15:02:53

JavaScript

2019-06-25 08:42:13

Linux命令指令

2023-05-17 16:47:47

物聯(lián)網(wǎng)智能建筑

2010-04-13 15:14:31

Oracle優(yōu)化

2014-12-12 09:52:04

JavaScript

2018-09-30 14:46:38

Linux命令技巧

2015-11-27 12:59:11

Android技巧提高效率

2024-10-28 19:36:05

2020-07-08 14:10:30

開發(fā)技能工具

2021-08-02 09:29:08

Vscode開發(fā)Web

2015-09-06 16:05:57

綠色數(shù)據(jù)中心效率

2012-03-27 09:17:43

Visual Stud

2017-06-07 10:36:03

信息化房屋房屋征收信息化管理

2013-11-18 10:36:39

Unix命令

2022-11-30 15:22:02

DevOps軟件開發(fā)運(yùn)維

2021-12-17 15:03:50

Python工具代碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)