最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Shell腳本實(shí)現(xiàn)一鍵快速搞定系統(tǒng)集成異常文件(附全部源碼)

 更新時(shí)間:2026年02月12日 08:50:49   作者:IT小本本  
這篇文章主要為大家詳細(xì)介紹了Shell腳本實(shí)現(xiàn)一鍵快速搞定系統(tǒng)集成異常文件,本文會(huì)附上全部源碼,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

1. 背景描述

最近在和別的系統(tǒng)做數(shù)據(jù)集成的時(shí)候,遇到異常截?cái)?/strong>或同步錯(cuò)誤的情況。 pdf,doc,txt等附件在Linux服務(wù)器 /data/fileFtp 目錄,發(fā)現(xiàn)大量文件大小為 10KB,或者更小的的文件。這往往不是巧合,而是集成系統(tǒng)推過(guò)來(lái)的數(shù)據(jù)有問(wèn)題,給過(guò)來(lái)的數(shù)據(jù)看著是“xxxx.pdf”,而文件大小只有幾KB,并且這個(gè)文件打開提示文件是損壞的?。?/p>

為了從數(shù)千個(gè)文件中快速鎖定這些“害群之馬”文件,我寫了一個(gè)自動(dòng)化腳本。

2. 這個(gè)腳本的作用

這個(gè)腳本,能夠滿足以下三個(gè)條件:

  • 自定掃描:遞歸檢查指定目錄。
  • 多維信息展示:除了路徑,還看文件大小和最后修改時(shí)間。
  • 標(biāo)記異常:在結(jié)果中直觀地標(biāo)記出疑似 10KB 的問(wèn)題文件。
  • 離線查閱:結(jié)果輸出到文件,方便下載到本地或后續(xù)審計(jì)。

3. 腳本實(shí)現(xiàn):check_files.sh

下面是編寫了的為 check_files.sh 的腳本。

#!/bin/bash

# 配置要掃描的根目錄
TARGET_DIR="/data/fileFtp"
# 定義輸出結(jié)果文件,加入時(shí)間戳防止覆蓋
LOG_FILE="check_results_$(date +%Y%m%d).log"

echo "開始掃描: $TARGET_DIR ..."

{
    echo "=========================================================================="
    echo " 掃描報(bào)告 | 目錄: $TARGET_DIR | 生成時(shí)間: $(date '+%Y-%m-%d %H:%M:%S')"
    echo "=========================================================================="
    printf "%-12s | %-12s | %-20s | %s\n" "掃描檢查結(jié)果" "大小" "修改時(shí)間" "路徑"
    echo "--------------------------------------------------------------------------"

    # 使用 find 尋找所有文件
    find "$TARGET_DIR" -type f | while read -r file; do
        # 獲取字節(jié)大小
        size_bytes=$(stat -c%s "$file")
        # 獲取人類直觀大小 (如 10K)
        size_human=$(ls -lh "$file" | awk '{print $5}')
        # 獲取修改時(shí)間 (yyyy-mm-dd hh:mm:ss)
        mtime=$(stat -c%y "$file" | cut -d'.' -f1)
        
        # 邏輯判斷:如果文件在 9k-10k 之間 (Linux find 邏輯)
        if [ "$size_bytes" -ge 9216 ] && [ "$size_bytes" -le 10240 ]; then
            status="[ ISSUE ]"
        else
            status="[  OK   ]"
        fi

        printf "%-12s | %-12s | %-20s | %s\n" "$status" "$size_human" "$mtime" "$file"
    done
} > "$LOG_FILE"

echo "掃描完成!報(bào)告已生成: $LOG_FILE"

4.如何使用該腳本

創(chuàng)建腳本文件:

vi check_files.sh (將上面的代碼粘貼進(jìn)去并保存退出)。

賦予執(zhí)行權(quán)限:

 chmod +x check_files.sh

運(yùn)行腳本:

./check_files.sh

進(jìn)行查看結(jié)果:

cat   check_results_20260210.log   

只查看異常文件:

grep 'ISSUE' check_results_20260210.log

統(tǒng)計(jì)異常數(shù)量:

grep -c 'ISSUE' check_results_20260210.log

5. 關(guān)鍵技術(shù)點(diǎn)深度解析

A. 文件狀態(tài)的判斷邏輯

在腳本中,我們使用了字節(jié)區(qū)間判斷:

if [ "$size_bytes" -ge 9216 ] && [ "$size_bytes" -le 10240 ];

這是因?yàn)樵?Linux 中,find -size 10k 實(shí)際上匹配的是 9KB 到 10KB 之間的數(shù)據(jù)。通過(guò)手動(dòng)設(shè)定字節(jié)范圍,我們可以更精確地控制“可疑”的定義。

B.stat命令的高效利用

相比于 ls 命令,stat 是專門用來(lái)獲取文件元數(shù)據(jù)的工具。

  • stat -c%s:直接獲取文件字節(jié)數(shù),方便進(jìn)行數(shù)學(xué)比較。
  • stat -c%y:獲取高精度的修改時(shí)間。

C. 重定向與格式化輸出

腳本最后使用了 { ... } > "$LOG_FILE"。這種寫法將整個(gè)代碼塊的 stdout(標(biāo)準(zhǔn)輸出)一次性重定向到文件中,比在每一行后面寫 >> 要優(yōu)雅且高效得多。

與系統(tǒng)做集成的,一定要用這個(gè)腳本自己查一下,不然推過(guò)來(lái)的數(shù)據(jù),用的時(shí)候,有問(wèn)題,真的是愁死人啊! 通過(guò)這個(gè)簡(jiǎn)單的 Shell 腳本,我們將枯燥的人肉搜索轉(zhuǎn)變?yōu)榫珳?zhǔn)的自動(dòng)化審計(jì)。

到此這篇關(guān)于Shell腳本實(shí)現(xiàn)一鍵快速搞定系統(tǒng)集成異常文件(附全部源碼)的文章就介紹到這了,更多相關(guān)Shell腳本清理異常文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 用shell批量修改文件名的方法

    用shell批量修改文件名的方法

    這篇文章主要為大家介紹了shell對(duì)文件夾中全部文件的名稱加以批量替換、修改的方法,文中的示例代碼講解詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • bash腳本如何監(jiān)控cup/內(nèi)存/磁盤使用率

    bash腳本如何監(jiān)控cup/內(nèi)存/磁盤使用率

    本文主要介紹了bash腳本如何監(jiān)控cup/內(nèi)存/磁盤使用率,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Shell中select in的具體使用

    Shell中select in的具體使用

    本文主要介紹了Shell中select in的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • linux 中的gzip命令

    linux 中的gzip命令

    gzip是在Linux系統(tǒng)中經(jīng)常使用的一個(gè)對(duì)文件進(jìn)行壓縮和解壓縮的命令,既方便又好用。接下來(lái)通過(guò)本文給大家分享linux 中的gzip命令,感興趣的朋友一起看看吧
    2017-09-09
  • shell?循環(huán)命令詳解

    shell?循環(huán)命令詳解

    這篇文章給大家介紹了shell?循環(huán)命令的相關(guān)知識(shí),包括for命令使用,c?風(fēng)格?for?命令及while?命令等等,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2022-10-10
  • Shell獲取當(dāng)前正在執(zhí)行腳本的絕對(duì)路徑

    Shell獲取當(dāng)前正在執(zhí)行腳本的絕對(duì)路徑

    本文主要介紹了Shell獲取當(dāng)前正在執(zhí)行腳本的絕對(duì)路徑,主要有三種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • shell腳本自動(dòng)安裝jdk的方法示例

    shell腳本自動(dòng)安裝jdk的方法示例

    這篇文章主要介紹了shell腳本自動(dòng)安裝jdk的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 詳解Linux查找目錄下的按時(shí)間過(guò)濾的文件

    詳解Linux查找目錄下的按時(shí)間過(guò)濾的文件

    這篇文章主要介紹了Linux查找目錄下的按時(shí)間過(guò)濾的文件 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • Shell腳本case語(yǔ)句簡(jiǎn)明教程

    Shell腳本case語(yǔ)句簡(jiǎn)明教程

    這篇文章主要介紹了Shell腳本case語(yǔ)句簡(jiǎn)明教程,非常容易看懂的一篇文章,需要的朋友可以參考下
    2014-07-07
  • Linux 日常常用指令及應(yīng)用小結(jié)

    Linux 日常常用指令及應(yīng)用小結(jié)

    最近在學(xué)習(xí)一些基本的Linux指令,在這里總結(jié)一下,在搭環(huán)境中常用的一些指令,熟悉這些指令就基本能夠使用CentOS進(jìn)行日常操作了
    2017-08-08

最新評(píng)論

兰坪| 萍乡市| 开鲁县| 厦门市| 新沂市| 万宁市| 桃园县| 上虞市| 新蔡县| 佛山市| 密云县| 大荔县| 镇远县| 元谋县| 买车| 吴旗县| 兴安盟| 遵化市| 永年县| 甘孜县| 建阳市| 东丰县| 汉源县| 广宁县| 古交市| 元江| 富平县| 新晃| 酉阳| 静宁县| 新宁县| 武胜县| 韶山市| 乾安县| 河东区| 通渭县| 澄城县| 怀化市| 聊城市| 上蔡县| 宝丰县|