Linux下自動清理超過指定大小檔案

2022-03-15 09:18:55 字數 2044 閱讀 3611

掃瞄某個目錄下的檔案,發現超過指定大小即清空

1)掃瞄目錄下的檔案

2)判斷檔案大小

3)清空大於指定檔案的內容

以byte為單位顯示檔案大小,然後和20m大小做對比. 20m換算成位元組為20971520這裡判斷是否大於20m,大於則使用echo 語句將對應檔案置空

20m=20 * 1024 * 1024=20971520    echo `expr 20 \* 1024 \* 1024`

方法1 

可以使用dd命令建立乙個20m的檔案,測試下:

dd

if=/dev/zero of=/root/test/1.txt bs=1m count=20

[root@admin test]#

ddif=/dev/zero of=/root/test/1.txt bs=1m count=20

20+0 records in

20+0

records out

20971520 bytes (21 mb) copied, 0.0202923 s, 1.0 gb/s

[root@admin test]# ll

-rw-r--r-- 1 root root 20971520 nov 13

10:13

1.txt

[root@admin test]#

du -sh

1.txt

20m

1.txt

處理指令碼:

#!/bin/bash

for size in $(ls -l /root/test/*

|awk '')

do for file in $(ls -l /root/test/* | grep $size |awk '')

doif [ $ -gt 62914560 ];then

echo $ $

echo "" > $

fidone

done

結合crontab進行定時執行

[root@admin test]# chmod

755 scan_gt_20.sh

[root@admin test]# /bin/bash -x scan_gt_20.sh

[root@admin test]# crontab -e

02 * * 6 /bin/bash -x /root/test/scan_gt_20.sh > /dev/null

2>&1

方法2"find -size"  -size 選項用於查詢滿足指定的大小條件的檔案(注意不查詢目錄), +表示大於, -表示小於, 沒有+或-表示正好等於。

可以使用dd命令建立乙個20m的檔案,測試下:

[root@admin test]# dd

if=/dev/zero of=/root/test/1.txt bs=1m count=21

21+0 records in

21+0

records out

22020096 bytes (22 mb) copied, 0.0259113 s, 850 mb/s

[root@admin test]#

find ./ -type f -size +20m

./1.txt

[root@admin test]#

處理指令碼

[root@admin test]# vi scan_gt_20.sh

#!/bin/bash

for i in $(find /root/test/*

-size +20m);

do echo " " > $i;

done

[root@admin test]# crontab -e

02 * * 6 /bin/bash -x /root/test/scan_gt_20.sh > /dev/null

2>&1

shell指令碼自動清理超過指定大小的檔案

先說下背景 我們線上用的squid,根據經驗值如果長時間執行則快取目錄下的swap.state會慢慢變大,一旦超過60m,squid的效能就會急劇下降,因此需要定時去清理大於60m的swap.state檔案。由此引出需求,查詢cache目錄下的所有大於60m的swap.state檔案並清除,即 1....

自動清理超過指定大小的檔案 shell指令碼

使用du命令實現 生成幾個測試檔案 root localhost cache dd if dev zero of testfile1 bs 1m count 50 50 0 records in 50 0 records out 52428800 bytes 52 mb copied,0.14518...

linux下自動金鑰

實現從主機a免密碼登陸到主機b 1.在主機a ssh 目錄下執行命令 ssh keygen t rsa 生成過程中,一路回車 生成兩個檔案id rsa和id rsa pub,這兩個檔案實際上是乙個金鑰對,id rsa是私鑰,id rsa pub是公鑰 2.將檔案id rsa pub從主機a拷貝 可以...