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

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

開(kāi)發(fā)
在本教程中,我們將探索一些常用的 Shell 腳本實(shí)例,助你在實(shí)際工作中得心應(yīng)手。

在一線(xiàn)工作中,Shell腳本是提高效率的得力助手。無(wú)論是文件管理、系統(tǒng)監(jiān)控,還是定時(shí)任務(wù)自動(dòng)化,掌握這些常用腳本能夠幫助我們輕松應(yīng)對(duì)日常工作中的各種挑戰(zhàn),節(jié)省時(shí)間和精力。在本教程中,我們將探索一些常用的Shell腳本實(shí)例,助你在實(shí)際工作中得心應(yīng)手。

監(jiān)控目錄文件一致性

檢測(cè)兩臺(tái)服務(wù)器指定目錄下的文件一致性

#!/bin/bash
######################################
# 檢測(cè)兩臺(tái)服務(wù)器指定目錄下的文件一致性
######################################
# 通過(guò)對(duì)比兩臺(tái)服務(wù)器上文件的md5值,達(dá)到檢測(cè)一致性的目的
dir="/data/web"
b_ip="192.168.88.10"
temp_dir="/tmp"

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

# 獲取遠(yuǎn)程服務(wù)器的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"

監(jiān)控網(wǎng)卡流量情況

檢測(cè)網(wǎng)卡流量,并按規(guī)定格式記錄在日志中

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

# 設(shè)置語(yǔ)言為英文,保障輸出結(jié)果是英文,否則會(huì)出現(xiàn)bug
LANG=en
iface="eth0"  # 替換為你的網(wǎng)卡名稱(chēng)
logfile="/tmp/$(date +%d).log"

while true; do
    # 將日期輸出重定向到logfile日志中
    {
        date +"%F %H:%M"
        
        # 獲取網(wǎng)卡流量數(shù)據(jù)
        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"
    
    # 因?yàn)閳?zhí)行sar命令需要59秒,因此不需要sleep
done

執(zhí)行上述腳本后會(huì)在tmp目錄以日期生成一個(gè)日志文件,內(nèi)容如下所示:

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 服務(wù)器下載文件:

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


# 用戶(hù)輸入FTP用戶(hù)名和密碼
read -p "請(qǐng)輸入FTP地址: " ftp_server
read -p "請(qǐng)輸入FTP用戶(hù)名: " ftp_user
read -sp "請(qǐng)輸入FTP密碼: " ftp_pass
read -p "請(qǐng)輸入遠(yuǎn)程文件路徑: " remote_file_path
read -p "請(qǐng)輸入本地保存路徑: " local_file_path
echo  # 輸出換行

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

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

掃描主機(jī)端口狀態(tài)

通過(guò)指定端口范圍進(jìn)行端口掃描:

#!/bin/bash
#######################################################
# 掃描主機(jī)端口狀態(tài),并記錄開(kāi)放的端口
#######################################################

# 用戶(hù)輸入要掃描的主機(jī)和端口范圍
read -p "請(qǐng)輸入要掃描的主機(jī)IP: " host
read -p "請(qǐng)輸入起始端口: " start_port
read -p "請(qǐng)輸入結(jié)束端口: " end_port
logfile="/tmp/open_ports.log"

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

echo "正在掃描主機(jī) $host 的端口..."

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

echo "掃描完成,開(kāi)放的端口記錄在 $logfile"

執(zhí)行上述腳本,輸出如下結(jié)果:

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

計(jì)算文檔出現(xiàn)數(shù)字的總數(shù)

計(jì)算文檔每行出現(xiàn)的數(shù)字個(gè)數(shù),并計(jì)算整個(gè)文檔的數(shù)字總數(shù)

#!/bin/bash
#######################################################
# 計(jì)算文檔每行出現(xiàn)的數(shù)字個(gè)數(shù),并計(jì)算整個(gè)文檔的數(shù)字總數(shù)
#######################################################

# 檢查輸入?yún)?shù)
if [ "$#" -ne 1 ]; then
    echo "用法: $0 <文檔路徑>"
    exit 1
fi

file="$1"
total_count=0

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

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

# 輸出總數(shù)字個(gè)數(shù)
echo "文檔總數(shù)字個(gè)數(shù): $total_count"

總結(jié)

Shell腳本在工作中的應(yīng)用主要體現(xiàn)在自動(dòng)化任務(wù)、系統(tǒng)管理和數(shù)據(jù)處理等方面。通過(guò)編寫(xiě)Shell腳本,用戶(hù)可以高效地執(zhí)行重復(fù)性操作,如文件管理、系統(tǒng)監(jiān)控和網(wǎng)絡(luò)管理,從而提高工作效率,減少人為錯(cuò)誤,簡(jiǎn)化復(fù)雜任務(wù)的執(zhí)行過(guò)程。

責(zé)任編輯:趙寧寧 來(lái)源: 攻城獅成長(zhǎng)日記
相關(guān)推薦

2024-11-12 12:19:39

2024-09-05 09:46:37

操作體系密碼

2023-08-29 07:31:18

科技運(yùn)維數(shù)字化

2013-01-06 10:12:32

Web前端Web異步文件上傳

2021-07-15 08:12:31

體系感面試邏輯思維

2014-08-28 13:58:15

錘子測(cè)評(píng)

2019-10-29 16:42:36

第一線(xiàn)

2022-04-19 08:14:59

技術(shù)人加班領(lǐng)域

2023-09-13 15:09:35

軟件開(kāi)發(fā)數(shù)字化進(jìn)程

2012-06-19 10:14:11

數(shù)據(jù)中心工作負(fù)載遷移

2021-04-18 21:07:32

門(mén)面模式設(shè)計(jì)

2019-05-05 09:49:17

Leader主管技術(shù)

2023-09-12 09:13:24

Shell腳本Dockerfil

2017-10-20 17:29:29

華為

2019-03-26 08:31:37

技術(shù)主管團(tuán)隊(duì)

2021-01-12 18:17:58

AI

2020-05-11 10:00:04

程序員技術(shù)管理

2024-12-17 08:20:50

2024-08-23 08:50:51

監(jiān)控Python開(kāi)發(fā)

2024-02-21 12:15:00

SoraOpenAI人工智能
點(diǎn)贊
收藏

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