shell 定時刪除指定N天前的檔案

2021-10-03 12:06:13 字數 3485 閱讀 3783

-name   filename              #查詢名為filename的檔案

-perm                                #按執行許可權來查詢

-user    username             #按檔案屬主來查詢

-group groupname           #按組來查詢

-mtime   -n +n                  #按檔案更改時間來查詢檔案,-n指n天以內,+n指n天以前

-atime    -n +n                  #按檔案訪問時間來查gin: 0px">

-ctime    -n +n                  #按檔案建立時間來查詢檔案,-n指n天以內,+n指n天以前

-nogroup                          #查無有效屬組的檔案,即檔案的屬組在/etc/groups中不存在

-nouser                            #查無有效屬主的檔案,即檔案的屬主在/etc/passwd中不存

-ctime    -n +n                 #按檔案建立時間來查詢檔案,-n指n天以內,+n指n天以前 

-type    b/d/c/p/l/f           #查是塊裝置、目錄、字元裝置、管道、符號鏈結、普通檔案

-size      n[c]                    #查長度為n塊[或n位元組]的檔案

-depth                             #使查詢在進入子目錄前先行查詢完本目錄

-fstype                            #查位於某一型別檔案系統中的檔案,這些檔案系統型別通常可 在/etc/fstab中找到

-mount                           #查檔案時不跨越檔案系統mount點

-follow                           #如果遇到符號鏈結檔案,就跟蹤鏈結所指的檔案

-cpio                             #對匹配的檔案使用cpio命令,將他們備份到磁帶裝置中

-prune                           #忽略某個目錄

# 查詢當前路徑下30分鐘內被修改過的檔案:

find ./ -mmin -30 -name "*"

# 查詢當前路徑下30分鐘前被修改過的檔案:

find ./ -mmin +30 -name "*"

# 查詢當前路徑下最近1天被修改過的塊普通檔案:

find ./ -mtime 0 -type f

# 查詢最近24小時修改的當前目錄下的檔案

# find . -name '*' -mtime 0

shell語句:

find   filepath   -option   [-print ]   [ -exec   -ok   command ]  {}  \;
filepath: find命令所查詢的目錄路徑;

-print: find命令將匹配的檔案輸出到標準輸出;

-exec: find命令對匹配的檔案執行該引數所給出的shell命令;相應命令的形式為』command』 ;

-ok: 與-exec的作用相同,只不過以一種更為安全的模式來執行該引數所給出的shell命令,在執行每乙個命令之前,都會給出提示,讓使用者來確定是否執行。

-exec command {} ;一旦查到的檔案執行command操作,{} 和 ;之間有空格;

注:和\;之間的空格。
find  ./ -name "*" -mtime +3 -exec -ok rm -rf {} \;
crontab命令的語法為:

crontab [-e [username]|-l [username]|-r [username]|-v [username]|file ]
各個引數說明:

-e [username]: 執行文字編輯器來設定時程表,內定的文字編輯器是 vi

-r [username]: 刪除目前的時程表

-l [username]: 列出目前的時程表

-v [username]:列出使用者cron作業的狀態

43 21 * * * 每天的21:43 執行

15 05 * * *    每天的05:15 執行

0 17 * * * 每天的17:00 執行

0 17 * * 1 每週一的 17:00 執行

0,10 17 * * 0,2,3 每週日,周二,週三的 17:00和 17:10 執行

0-10 17 1 * * 毎月1日從 17:00到7:10 毎隔1分鐘 執行

0 0 1,15 * 1 毎月1日和 15日和 一日的 0:00 執行

42 4 1 * *     毎月1日的 4:42分 執行

0 21 * * 1-6   周一到週六 21:00 執行

0,10,20,30,40,50 * * * * 每隔10分 執行

*/10 * * * *        每隔10分 執行

* 1 * * *         從1:0到1:59 每隔1分鐘 執行

0 1 * * *         1:00 執行

0 */1 * * *        毎時0分 每隔1小時 執行

0 * * * *         毎時0分 每隔1小時 執行

2 8-20/3 * * *      8:02,11:02,14:02,17:02,20:02 執行

30 5 1,15 * *       1日 和 15日的 5:30 執行

# !/bin/bash

find filepath -name "*" -exec rm -rf {} \;

crontab -e 

然後在彈出的vi對話方塊中輸入:

1 * * * * /crontab.sh

儲存並退出

出現以下錯誤,原因是crontab的規則書寫格式錯誤,細心檢查修改

出現crontab: installing new crontab,即為建立定時任務成功。

可以通過crontab -l進行任務檢視定時任務檔案。

Windows bat批處理刪除指定N天前的檔案

windows下bat批處理,自動獲取檔案的最後修改時間,然後將指定多少天之前的檔案刪除,需要windows支援forfiles命令,xp及以上系統都自帶forfiles命令。刪除指定目錄下7天前的檔案 目錄為c test forfiles p c test s m d 7 c cmd cdel p...

linux定時刪除N天前的舊檔案

語句寫法 find 對應目錄 mtime 天數 name 檔名 exec rm rf 例1 find usr local backups mtime 10 name exec rm rf 將 usr local backups目錄下所有10天前帶 的檔案刪除 find linux的查詢命令,使用者查...

bat批處理刪除指定N天前的檔案

windows下bat批處理,自動獲取檔案的最後修改時間,然後將指定多少天之前的檔案刪除,需要windows支援forfiles命令,xp及以上系統都自帶forfiles命令。刪除指定目錄下7天前的檔案 目錄為c test forfiles p c test s m d 7 c cmd c del ...