天天看點

Linux下兩種删除過期檔案的方法詳述

一、概述

在實際的C軟體開發項目中,不同的軟體會在不同的目錄中生成檔案,由于磁盤的存儲空間有限,開發人員不得不考慮對目錄下的過期檔案進行删除。一般說來,有兩種删除過期檔案的方法,一種是在C程式中實作,一種是利用crontab實作。本文對這兩種方法的具體實作進行詳細的介紹。

為了便于說明,本文中的過期檔案的字尾為.c,存放在/home/zhou/zhouzx/Test目錄下,過期時間為1天。

二、在C程式中實作過期檔案删除

在該方法中,我們要考慮的主要問題為:

(1)要删除過期多久的檔案?檔案存放在哪裡?檔案存放路徑可以檢視檔案生成子產品的配置,看它們将檔案生成在哪個目錄中;而删除過期多久的檔案一般都是由需求決定的。

(2)檔案不會同時超期,而是在不同的時間段裡超期,對此,程式該如何處理?我們的想法是删除在目前時間段内超期的檔案之後,程式休眠一段時間之後接着再去執行删除任務,相當于是周期性地執行删除任務。

完整的C程式代碼如下:

三、利用crontab實作過期檔案删除

通過crontab 指令,我們可以在固定的間隔時間執行指定的系統指令或 shell腳本。利用這個特性,我們可以将删除過期檔案的指令存放在shell腳本中,然後用crontab 指令來周期性地調用這個腳本執行删除操作。

在crontab檔案中,每一行都代表一項任務,每行的每個字段代表一項設定,它的格式共分為六個字段,前五段是時間設定段,第六段是要執行的指令段,每個字段之間用空格分割,沒用的段用*代替,格式如下:

其中:

minute: 表示分鐘,可以是從0到59之間的任何整數。

hour:表示小時,可以是從0到23之間的任何整數。

day:表示日期,可以是從1到31之間的任何整數。

month:表示月份,可以是從1到12之間的任何整數。

week:表示星期幾,可以是從0到7之間的任何整數,這裡的0或7代表星期日。

command:要執行的指令,可以是系統指令,也可以是自己編寫的腳本檔案(如shell檔案)。

具體操作步驟如下:

1.編寫删除過期檔案的shell腳本,取名del_expiredfiles.sh,存放在/home/zhou/zhouzx/Test目錄下。檔案内容為:

2.登入到root使用者下,執行crontab –e指令進入crontab檔案中,在該檔案中添加如下内容:

對照crontab檔案中任務的格式,我們可以看出所添加内容的具體含義是:每天的1點鐘執行/home/zhou/zhouzx/Test/目錄下的del_expiredfiles.sh檔案。

3.儲存對crontab檔案的修改,觀察指令執行結果。

四、總結

以上兩種删除過期檔案的方法在實際的軟體開發項目中均有應用,大家要根據項目組的實際情況來選擇合适的方法。

本人微信公衆号:zhouzxi,請掃描以下二維碼:

Linux下兩種删除過期檔案的方法詳述

繼續閱讀