定時清除linux文件內容


1、新建一個清除文件內容的shell腳本/usr/local/bin/clear,內容如下:

#!/bin/bash
#變量賦值等於號兩邊不能有空格
FILE_PATH=/app/xxx/catania.out

#if判斷條件前后一定要有空格,且要有;then
if [ -f $FILE_PATH ];then
    #表達式一定要用``括起來,原生bash不支持簡單的數學運算,但是可以通過其他命令來實現,例如 awkexprexpr 最常用。
    #expr 是一款表達式計算工具,使用它能完成表達式的求值操作
    #表達式和運算符之間要有空格,例如 2+2 是不對的,必須寫成 2 + 2
    FILE_SIZE=`stat -c %s $FILE_PATH`
    #除法(/)
    FILE_SIZE1=`expr $FILE_SIZE / 1024 / 1024 / 1024`
    echo $FILE_PATH文件大小為:[$FILE_SIZE]Byte,[$FILE_SIZE1]GB
    #乘法(\*)
    THRESHOLD=`expr 1 \* 1024 \* 1024 \* 1024`    
    if [ $FILE_SIZE -gt $THRESHOLD ];then
        echo 大於閾值:1GB,開始清空
        echo > $FILE_PATH
        #echo后的字符串可以帶""也可以不用
        echo "清空成功"
    fi
else
    echo $FILE_PATH文件不存在
fi

2、往用戶的crontab中添加一個cron去執行上面這個shell

執行crontab -e命令用vi添加如下內容,保存之后就可以初始一個定時任務到crontab中,可以使用crontab -l命令查看定時任務是否添加成功

*/5 * * * * /usr/local/bin/clear

 

擴:

1、crontab

參數 :

-e : 執行文字編輯器來設定時程表,內定的文字編輯器是 VI,如果你想用別的文字編輯器,則請先設定 VISUAL 環境變數來指定使用那個文字編輯器(比如說 setenv VISUAL joe)

-r : 刪除目前的時程表

-l : 列出目前的時程表

 

2、crontabl -e

用戶所建立的Crontab文件存於/var/spool/cron中,其文件名與用戶名一致。

它的格式共分為六段,前五段為時間設定段(cron表達式),第六段為所要執行的命令段

格式如下:f1 f2 f3 f4 f5 program

 

3、cron表達式

格式如下:f1 f2 f3 f4 f5

其時間段的含義如下:

段                    含義                  取值范圍

第一段          代表分鍾               0—59    

第二段          代表小時               0—23

第三段          代表日期               1—31

第四段          代表月份               1—12

第五段          代表星期幾             0—6(0代表星期日)

當 f1 為 * 時表示每分鍾要執行,f2 為 * 時表示每小時要執行,其余類推

當 f1 為 a-b 時表示從第 a 分鍾到第 b 分鍾這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其余類推

當 f1 為 */n 時表示每 n 分鍾個時間間隔執行一次,f2 為 */n 表示每 n 小時個時間間隔執行一次,其余類推

當 f1 為 a, b, c,… 時表示第 a, b, c,… 分鍾要執行,f2 為 a, b, c,… 時表示第 a, b, c…個小時要執行,其余類推

使用者也可以將所有的設定先存放在檔案 file 中,用 crontab file 的方式來設定時程表

例如:

周一到周五每天下午 5:00 執行一次 /usr/bin/backup :

0 17 * * 1-5 /usr/bin/backup

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM