linux定時刪除文件
『壹』 linux什麼命令可以根據日期刪除文件
需要根據時間刪除這個目錄下的文件,/home/lifeccp/dicom/studies,清理掉20天之前的無效數據。
可以使用下面一條命令去完成:
1find/home/lifeccp/dicom/studies-mtime +21 -name "*.*"-execrm-Rf {} ;
這個是根據時間刪除。
下面簡要解釋一下,這句shell命令:
1find/home/lifeccp/dicom/studies-mtime +21 -name "*.*"-execrm-Rf {} ;
/home/lifeccp/dicom/studies :准備要進行清理的任意目錄
-mtime:標准語句寫法
+10:查找10天前的文件,這里用數字代表天數,+30表示查找30天前的文件
"*.*":希望查找的數據類型,"*.jpg"表示查找擴展名為jpg的所有文件,"*"表示查找所有文件
-exec:固定寫法
rm -rf:強制刪除文件,包括目錄
{} ; :固定寫法,一對大括弧+空格+/+;
當然也可以根據文件名、根據大小,根據其他不同條件過濾刪除,或者修改等,可以考慮sort等命令結合使用。
『貳』 linux 下如何編寫定時刪除某目錄下文件的腳本
自己編寫crontab設定計劃任務就是了,
那個服務就是做這些定時的,自動化的工作用的。要寫什麼腳本的,一個命令搞定。
給你個手冊頁自己看吧。
補充回答:
運行這個命令:
crontab
-e
此命令將打開一個文本編輯器以添加新任務。
*
20
*
*
*
rm
-rf
/root/febhost/dat/*
/root/febhost/log/*
用對應的文本編輯器命令保存退出(vi編輯器是按esc後打:wq)
如果你對這種方式不熟悉,也可以直接改/etc/crontab,我看到你是要刪除root文件夾內的目錄,假設你有root許可權(因為/etc/crontab所有者是root,並且只有以root身份執行刪除命令才能刪除root
home內的文件),用以下命令打開此文件:
vi
/etc/crontab
將游標移動至最後一行,按o鍵新開一行輸入以下內容:
*
20
*
*
*
root
rm
-rf
/root/febhost/dat/*
/root/febhost/log/*
給你解釋下此行的含義吧,前五個以4個空格分隔開的值依次表示:分、時、日、月、周,如果取所有值就是打*號,如果你想周期性的運行一個任務,crontab也接受范圍指定,比如說一天中的早8點到晚6點每隔一小時(就是每兩小時,將會在8,10,12,14,16,18執行)執行你這個刪除命令這樣寫:
*
8-18/2
*
*
*
root
rm
-rf
/root/febhost/dat/*
/root/febhost/log/*
第一個欄位是分鍾,取值范圍:0-59
第二個欄位是小時。取值范圍:0-23
第三個欄位是一個月中的第幾天,取值范圍:1-31
第四個欄位是一年中的第幾個月,取值范圍:1-12
最後一個欄位是一個星期中的第幾天,以星期天開始依次的取值為0~7,0、7都表示星期天。
下一個欄位是執行該命令的用戶身份,這里是root用戶,最後一個欄位就是定時運行的命令。
『叄』 linux crontab 定時 清除 文件和目錄
rm 加上參數 -rf
『肆』 linuxcrontab定時清除文件和目錄
希望對你有幫助!0022***/usr/bin/find/backupmongo/-mtime+7-execrm-rf{};
『伍』 linux定時刪除一個目錄的腳本
可以使用find的 ctime 選項,
ctime的意思是最後修改的時間 +3 表示三天前,也就是在 /backup_100 目錄里 找到三天前的符合 abc*的文件及目錄並刪除。
find /backup_100 -name "abc*" -ctime +3 -exec rm {} \;
如果每天備份多次,
可以使用 NUM=`ls|wc -l`;DEL_NUM=$(($NUM-3)); for i in `ls -tr|head -$DEL_NUM`;do rm -rf $i;done
這樣,首先判斷當前備份了$NUM次,也就是/backup/abcxxx里有多少個文件夾,
然後NUM-3就是需要刪除的文件夾的個數,
然後使用循環,
ls -tr|head -$DEL_NUM 這樣通過按時間升序排列取前$DEL_NUM個目錄名並依次刪除,最後就只剩下了最新的三個目錄了。
然後把這樣的腳本添加到你的自動備份腳本的最後面就可以了
『陸』 如何操作Linux 定時刪除指定目下N天前的文件
* 6 * * * find /root/home/zhang/* ctime 1 -exec rm -rf {} \;
表示每天早上六點刪除/root/home/zhang目錄下一天前創建的所有文件,不刪除文件夾zhang,如果這個文件夾也要刪除的話用 * 6 * * * find /root/home/zhang ctime 1 -exec rm -rf {} \;
* 6 * * * 第一個*號表示時間中的 分鍾 取值范圍:0-59
第二個*號表示時間中的 小時 取值范圍:0-23
第三個*號表示一個月中的第幾天,取值范圍:1-31
第四個*號表示一年中的第幾個月,取值范圍:1-12
第五個*號表示一個星期中的第幾天,以星期天開始依次的取值為0~7,0、7都表示星期天
ctime 表示創建時間,1 表示一天前,其實Linux中不存在文件創建時間,只有訪問時間(atime)、修改時間(mtime)、狀態改動時間(ctime)
可以通過命令 stat + 文件路徑 查看時間
也可通過命令 touch -t 201212212359 aa (建立文件aa,時間是2012年12月21日23時59分)修改時間
『柒』 如何定時刪除linux伺服器文件
肯定是用腳本命令去刪除了,比如crontab自動執行,或者用腳本觸發
方法很多,
你可以有針對性的,如
rm
-rf
『捌』 linux按指定時間刪除文件和文件夾
find 命令可以完成這一需求,比如刪除3天前的所有以「.log」結尾的文件:
find /文件路徑 -name "*.log" -mtime +2 -exec rm {} ;
說明:
1. 文件路徑是目標文件所在路徑;
2. -name 設定目標文件名,建議採用,否則可能誤刪其他文件;
3. -ctime 文件最後一次修改時間,後面只能用整數,單位為天,同時,還有atime,mtime,amin,cmin,mmin等時間參數可選,具體請查看幫助;
4. 時間說明如下圖(隨手畫的,大概是這個意思),所以刪除三天前的文件要用+2
5. -exec 表示需要執行的命令,{}代表find找到的內容,";"是固定寫法表示結束-exec,
所以例子的"-exec rm {} ;" 就表示對find找到的符合條件的文件執行刪除操作
『玖』 linux 定時刪除n天前的文件crontab
先算數量,判斷後再刪
filenum=`find . -name "log.*" -mtime +10 | wc -l`
if [ $filenum -gt 10 ] ; then
filenum=`find . -name "log.*" -mtime +10 -exec rm -f {} \;
fi
『拾』 linux 定期刪除文件夾下面超過30日的文件
find /tmp/sm{a,b,c} -type f -mtime 30 -exec rm {} \;
需要定期,就把這條命令放入crontab中即可。