shell腳本專題(03):批量查找大文件

1、專題背景

最近使用了個自動化平臺(詳見自動化運維平臺Spug測試)進行每週的變動,效果很不錯,平臺將大量重複繁瑣的操做經過腳本分發方式標準化自動化了,平臺核心是下發到各個服務器的shell腳本,感受有必要對shell腳本作個總結,因此有了寫本專題的想法。本專題將結合運維實際介紹shell腳本的各項用法,預計10篇左右,將包括系統巡檢、監控、ftp上傳下載、數據庫查詢、日誌清理、時鐘同步、定時任務等,裏面會涉及shell經常使用語法、注意事項、調試排錯等。html

2、本文前言

本文是該專題的第三篇。git

文章主要統計指定目錄下排名靠前的目錄。生產上文件系統超閥值是很常見的告警項,經過本文的統計腳本能夠快速準確的定位超閥值文件系統下使用率較高的目錄。github

3、環境說明

主機名 操做系統版本 ip ansible版本 備註
ansible-tower Centos 7.6.1810 172.16.7.100 2.9.9 ansible管理服務器,查詢腳本在該服務器上
157 Centos 7.6.1810 172.16.7.157 / 被管服務器

4、腳本測試

1.執行腳本

[root@ansible-tower ~]# sh dir_space_calc.sh /var /opt /home /usr

image-20210219163247382

統計/var /opt /home /usr這4個目錄下全部目錄的大小shell

2.查看執行結果

[root@ansible-tower ~]# more file_space_20210219.log

image-20210219163421762

執行結果輸出至日誌 file_space_20210219.log,可查看各目錄下排名前20的目錄具體大小和文件名。數據庫

5、ansible方式下發執行

1.ansible方式執行

[root@ansible-tower ~]#  ansible  -m script -a "chdir=/tmp /root/dir_space_calc.sh /home /log /usr"  test157

image-20210219165444216

使用ansible的script模塊執行腳本dir_space_calc.sh,先進入遠端服務器test157的/tmp目錄,再執行腳本。bash

2.查看執行結果

[root@ansible-tower ~]# ansible -m shell -a 'more /tmp/file_space_20210219.log' test157

image-20210219165748378

這次傳參的目錄只有3個:/home /log /usr,其中/log目錄還不存在,統計結果會忽略不存在的目錄。服務器

6、本文總結

本文主要介紹瞭如何快速統計指定目錄下的大文件,經過腳本輸出的日誌能夠很方便的定位大文件路徑。生產上不少時候都是日誌所在文件系統使用率超閥值告警,因爲日誌通常不少目錄層次很深,手動查看勞時費力且容易有疏漏,本文的腳本可完美解決該問題。運維

 

 

本文全部腳本和安裝包文件已上傳github:shell-scripts-03ide

更多請點擊:shell專題測試

相關文章
相關標籤/搜索