成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

告別繁瑣操作,掌握一線工作中的 Shell 腳本絕招!

開發
在本教程中,我們將探索一些常用的 Shell 腳本實例,助你在實際工作中得心應手。

在一線工作中,Shell腳本是提高效率的得力助手。無論是文件管理、系統監控,還是定時任務自動化,掌握這些常用腳本能夠幫助我們輕松應對日常工作中的各種挑戰,節省時間和精力。在本教程中,我們將探索一些常用的Shell腳本實例,助你在實際工作中得心應手。

監控目錄文件一致性

檢測兩臺服務器指定目錄下的文件一致性

#!/bin/bash
######################################
# 檢測兩臺服務器指定目錄下的文件一致性
######################################
# 通過對比兩臺服務器上文件的md5值,達到檢測一致性的目的
dir="/data/web"
b_ip="192.168.88.10"
temp_dir="/tmp"

# 獲取本地文件的md5值
find "$dir" -type f -exec md5sum {} + > "$temp_dir/md5_a.txt"

# 獲取遠程服務器的md5值
ssh "$b_ip" "find $dir -type f -exec md5sum {} +" > "$temp_dir/md5_b.txt"

# 逐行比較md5值
while read -r line; do
    f=$(echo "$line" | awk '{print $2}')
    md5_a=$(echo "$line" | awk '{print $1}')
    
    if grep -qw "$f" "$temp_dir/md5_b.txt"; then
        md5_b=$(grep -w "$f" "$temp_dir/md5_b.txt" | awk '{print $1}')
        if [[ "$md5_a" != "$md5_b" ]]; then
            echo "$f changed."
        fi
    else
        echo "$f deleted."
    fi
done < "$temp_dir/md5_a.txt"

監控網卡流量情況

檢測網卡流量,并按規定格式記錄在日志中

#!/bin/bash
#######################################################
# 檢測網卡流量,并按規定格式記錄在日志中
# 規定一分鐘記錄一次
# 日志格式如下所示:
# 2024-10-08 10:40
# ens33 input: 1234bps
# ens33 output: 1235bps
#######################################################

# 設置語言為英文,保障輸出結果是英文,否則會出現bug
LANG=en
iface="eth0"  # 替換為你的網卡名稱
logfile="/tmp/$(date +%d).log"

while true; do
    # 將日期輸出重定向到logfile日志中
    {
        date +"%F %H:%M"
        
        # 獲取網卡流量數據
        sar -n DEV 1 59 | awk -v iface="$iface" '
            /Average/ && $2 == iface {
                input = $5 * 1000 * 8
                output = $6 * 1000 * 8
                printf "%s input: %d bps\n", iface, input
                printf "%s output: %d bps\n", iface, output
            }
        '
        
        echo "####################"
    } >> "$logfile"
    
    # 因為執行sar命令需要59秒,因此不需要sleep
done

執行上述腳本后會在tmp目錄以日期生成一個日志文件,內容如下所示:

root@didiplus:/tmp# tail 08.log
####################
2024-10-08 10:24
eth0 input: 2640 bps
eth0 output: 12800 bps
####################
2024-10-08 10:25
eth0 input: 1440 bps
eth0 output: 14240 bps
####################

從 FTP 服務器下載文件:

#!/bin/bash
#######################################################
# 從FTP服務器下載文件的Shell腳本
#######################################################


# 用戶輸入FTP用戶名和密碼
read -p "請輸入FTP地址: " ftp_server
read -p "請輸入FTP用戶名: " ftp_user
read -sp "請輸入FTP密碼: " ftp_pass
read -p "請輸入遠程文件路徑: " remote_file_path
read -p "請輸入本地保存路徑: " local_file_path
echo  # 輸出換行

# 使用ftp命令下載文件
{
    echo "open $ftp_server"
    echo "user $ftp_user $ftp_pass"
    echo "binary"  # 以二進制模式傳輸文件
    echo "get $remote_file_path $local_file_path"
    echo "bye"
} | ftp -n

# 檢查下載是否成功
if [[ $? -eq 0 ]]; then
    echo "文件下載成功: $local_file_path"
else
    echo "文件下載失敗"
fi

掃描主機端口狀態

通過指定端口范圍進行端口掃描:

#!/bin/bash
#######################################################
# 掃描主機端口狀態,并記錄開放的端口
#######################################################

# 用戶輸入要掃描的主機和端口范圍
read -p "請輸入要掃描的主機IP: " host
read -p "請輸入起始端口: " start_port
read -p "請輸入結束端口: " end_port
logfile="/tmp/open_ports.log"

# 清空日志文件
> "$logfile"

echo "正在掃描主機 $host 的端口..."

# 掃描端口
for ((port=start_port; port<=end_port; port++)); do
    # 嘗試連接到端口
    { echo > /dev/tcp/$host/$port; } &>/dev/null
    if [[ $? -eq 0 ]]; then
        echo "端口 $port 開放" | tee -a "$logfile"
    fi
done

echo "掃描完成,開放的端口記錄在 $logfile"

執行上述腳本,輸出如下結果:

root@didiplus:~/script# ./port_scanner.sh
請輸入要掃描的主機IP: 127.0.0.1
請輸入起始端口: 1024
請輸入結束端口: 64454
正在掃描主機 127.0.0.1 的端口...
端口 3306 開放
端口 5320 開放
端口 6010 開放
端口 6011 開放
端口 6012 開放
端口 7000 開放
端口 7500 開放
端口 8080 開放
端口 8090 開放
端口 43982 開放
端口 54114 開放
掃描完成,開放的端口記錄在 /tmp/open_ports.log

計算文檔出現數字的總數

計算文檔每行出現的數字個數,并計算整個文檔的數字總數

#!/bin/bash
#######################################################
# 計算文檔每行出現的數字個數,并計算整個文檔的數字總數
#######################################################

# 檢查輸入參數
if [ "$#" -ne 1 ]; then
    echo "用法: $0 <文檔路徑>"
    exit 1
fi

file="$1"
total_count=0

# 檢查文件是否存在
if [ ! -f "$file" ]; then
    echo "文件不存在: $file"
    exit 1
fi

# 讀取文件并計算每行數字個數和總數
echo "每行數字個數:"
while IFS= read -r line; do
    # 計算當前行數字個數
    line_count=$(echo "$line" | grep -o '[0-9]' | wc -l)
    echo "$line_count"
    
    # 累加到總數
    total_count=$((total_count + line_count))
done < "$file"

# 輸出總數字個數
echo "文檔總數字個數: $total_count"

總結

Shell腳本在工作中的應用主要體現在自動化任務、系統管理和數據處理等方面。通過編寫Shell腳本,用戶可以高效地執行重復性操作,如文件管理、系統監控和網絡管理,從而提高工作效率,減少人為錯誤,簡化復雜任務的執行過程。

責任編輯:趙寧寧 來源: 攻城獅成長日記
相關推薦

2024-11-12 12:19:39

2024-09-05 09:46:37

操作體系密碼

2023-08-29 07:31:18

科技運維數字化

2013-01-06 10:12:32

Web前端Web異步文件上傳

2021-07-15 08:12:31

體系感面試邏輯思維

2014-08-28 13:58:15

錘子測評

2019-10-29 16:42:36

第一線

2022-04-19 08:14:59

技術人加班領域

2023-09-13 15:09:35

軟件開發數字化進程

2012-06-19 10:14:11

數據中心工作負載遷移

2021-04-18 21:07:32

門面模式設計

2019-05-05 09:49:17

Leader主管技術

2023-09-12 09:13:24

Shell腳本Dockerfil

2017-10-20 17:29:29

華為

2019-03-26 08:31:37

技術主管團隊

2021-01-12 18:17:58

AI

2020-05-11 10:00:04

程序員技術管理

2024-12-17 08:20:50

2024-08-23 08:50:51

監控Python開發

2024-02-21 12:15:00

SoraOpenAI人工智能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区视频 | 国产精品视频网 | 一区二区三区视频在线免费观看 | 午夜天堂精品久久久久 | 91精品国产日韩91久久久久久 | 二区成人 | 亚洲二区在线观看 | 麻豆视频在线免费观看 | 国产精品成人久久久久 | 精品视频亚洲 | 国产精品一区二区无线 | 久久精品视频在线免费观看 | 久久黄网| 精品久久久久国产 | 免费精品一区 | 91麻豆精品国产91久久久更新资源速度超快 | www..com18午夜观看 | 91av导航 | 国产福利视频导航 | 精品久久久久一区二区国产 | 中文字幕视频在线观看免费 | 国产欧美日韩 | 中日字幕大片在线播放 | 国产夜恋视频在线观看 | 在线欧美小视频 | 国产91在线 | 欧美 | 国产精品视频一区二区三区四区国 | 久久这里只有精品首页 | 亚洲国产精品一区二区第一页 | 日本黄色免费片 | 亚洲一区二区三区视频 | 久久久久黄 | 一区在线免费视频 | 国产区在线免费观看 | 99精品国产一区二区三区 | a爱视频 | 国产高清一区二区三区 | 99色在线视频| 成人在线免费观看视频 | 在线观看国产www | 永久www成人看片 |