LINUX定時清理文件定時任務

任務場景

文件夾下持續進入文件,每隔10分鐘進行文件清理操作,壓縮轉移至備份服務器。

實現代碼

#!/bin/bash

targetDIR=/aaa
backDIR=/bbb

cd $ targetDIR
for name in *
do
    nowTime=`date "+Y%m%d_%H%M%S"`
    cd $name
    if ls *.txt > /dev/null 2>&1 ; then
       mv *.txt $backDIR/$name/
       tar -zcvf $nowTime"_"$name.tar.gz *.txt
       rm *.txt
     cd $targetDIR
done
exit 0

代碼解析

循環遍歷文件夾進行文件獲取,尤其需要注意該部分:

if ls *.txt > /dev/null 2>&1 ; then
ls所有以.txt爲後綴的文件,如果不存在,將標準錯誤重定向到標準輸出,這裏2>&1 的意思就是將標準錯誤也輸出到標準輸出當中。重定向中 0-標準輸出,1-標準輸出,2-標準錯誤,而No such file or directory是一個標準錯誤。如果未添加該部分,如果未查到文件,則會導致後續命令無法順序執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章