国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Linux服務器 > 正文

linux使用find和crontab命令定期清理過期文件

2024-09-05 23:03:15
字體:
來源:轉載
供稿:網友

crontab 命令

crontab 命令是 Linux 中用來設定重復執行命令或腳本的工具。它能夠在指定的時間段內,按照需求以某一時間間隔執行命令或腳本。

crontab 的基本用法

crontab [-u <user>] [-e|-l|-r]crontab <filename>

crontab <filename> 可以讀入一個以 crontab 語法書寫的文件,并依照文件內的指示執行定時任務。與此同時,crontab -l 能夠在標準輸出上列出當前用戶所有的定時任務情況。因此,我們可以用 crontab -l > <filename> 來保存當前 crontab 的狀況,在有需要的時候(比如誤刪除)用 crontab <filename> 讀入恢復。

crontab -e 則會啟動系統默認的編輯器。這個編輯器由系統環境變量 EDITOR 指定;例如 export EDITOR=vi,則 crontab -e 會啟動 vi 來編輯當前用戶的 crontab 定時任務文件。crontab -r 則會刪除用戶的所有 crontab 定時任務。

用來指定用戶的 -u <user> 選項則會改變 -e/-l/-r 等選項的行為。如果不通過 -u 指定用戶,則默認的操作都是針對當前用戶的;反之,則針對指定的用戶。例如 crontab -u Liam -r 則會刪除用戶 Liam 的 crontab 定時任務——當然,你需要有足夠的權限這么做。

crontab 文件的格式

不管是用 crontab <filename> 從文件讀入定時任務,還是用 crontab -e 編輯定時任務,我們都會接觸到 crontab 格式的命令。

crontab 的命令格式如下:

crontab,find,定期執行腳本,find定期刪除目錄

從上圖我們可以看出:

  1. 一條 crontab 命令分成六列,寫在一行內;
  2. 前 5 列用于定時,指明什么時候開始執行;
  3. 第 6 列用于指定需要定時執行的命令或腳本;

此外,和 Shell 腳本一樣,在 crontab 文件中,我們也可以用 # 來表示注釋。

花式定時

在 crontab 命令中用于定時的前 5 列中,支持以下符號,用于「花式定時」:

  1. 星花(*):代表所有可能的值;
  2. 逗號(,):用逗號隔開同一字段的不同范圍;
  3. 連字符(-):用連字符連接兩個整數,表示整數范圍;
  4. 斜線(/):實際上是除法斜線,用來指定時間間隔頻率。
  5.  

一些例子

有了這些知識,我們就可以看一些實例了。

# 每分鐘執行一次* * * * * command# 每 5 分鐘執行一次*/5 * * * * command# 每個小時的 15 分和 45 分執行一次15,45 * * * * command# 晚上 20:00 -- 20:15 每分鐘執行一次0-15 20 * * * command# 每周一上午 10 點執行一次0 10 * * 1 command

find —— 找些樂子

man find 給出的 find 命令的一般形式是:

find [-H] [-L] [-P] [-D debugopts] [-Olevel] path ... [expression]

其中 [-H] [-L] [-P] [-D debugopts] [-Olevel] 很少會用到。因此,find 命令的一般形式可以簡化為 find path ... [expression];亦即,在一些路徑(默認遞歸地包含子路徑)中找到合適的文件,然后根據 expression 執行相應動作。

  path ...: find 命令查找的路徑

  expression: 具體形式是 -parameters [-exec -ok]

      -parameters 有很多,待下一節具體介紹常用的參數

      -exec command {} /; 執行一條 Shell 命令

      -ok command {} /; 同 -exec 的作用,不過在執行每條命令前,都會提示用戶確認

常用的參數

  -name : 按照文件名查找文件,接受通配符

      find . -name "*.cpp": 在當前目錄 (.) 及子目錄下遞歸地查找所有后綴為 .cpp 的文件,并打印在標準輸出中

  -perm : 按照文件權限查找文件

      find . -perm 755: 在當前目錄 (.) 及子目錄下遞歸地查找所有權限為 755 的文件(目錄),并打印在標準輸出中

      find . -perm 644 -name "*.cpp": 在當前目錄及子目錄下 (.) 遞歸地查找所有權限為 644 的 .cpp 文件,并打印在標準輸出中

  -group : 按照文件的所屬組查找

  -user :  按照文件的所有者查找

      find . -user search: 在當前目錄 (.) 及子目錄下遞歸地查找所有 search 賬號所屬的文件,并打印在標準輸出中

  -atime, -mtime, -amin, -mmin : a 開頭的表示「按照上次訪問時間查找」,m 開頭的表示「按照上次修改時間查找」;-n 表示 n 時間內,+n 表示 n 時間以前

      find . -atime +7: 在當前目錄 (.) 及子目錄下遞歸地查找所有上次訪問在 7 天以前的文件,并打印在標準輸出中

      find . -mmin -10: 在當前目錄 (.) 及子目錄下遞歸地查找所有上次修改在 10 分鐘以內的文件,并打印在標準輸出中

  -newer file1 ! file2 : 查找比 file1 新但是比 file2 舊的文件

  -type [b|d|c|p|l|f] : 按照文件類型查找

      b: 塊設備文件

      d: 目錄

      c: 字符設備文件

      p: 管道文件

      l: 符號鏈接文件

      f: 普通文件

  -follow : 如果 find 命令遇到符號鏈接文件,就跟蹤至鏈接所指向的文件

  -delete : 刪除查找到的文件或目錄

定期清理

至此,定期清理無用的文件就變得很簡單了。我們只需要在 crontab 里結合 find 命令的 -delete 選項即可。

0 8 * * * find /home/s/coredump -user search -type f -mtime +7 -delete

這里,我們在每天早上 8 點整執行 find 命令;該命令會在 /home/s/coredump 目錄下尋找 search 用戶創建的普通 7 天前的文件,然后刪除掉。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 军事| 安顺市| 博乐市| 沙坪坝区| 安西县| 龙江县| 嘉禾县| 丰都县| 兴山县| 文安县| 本溪| 大安市| 长武县| 阳东县| 上饶市| 武夷山市| 淳化县| 根河市| 彭阳县| 遵化市| 绥江县| 莆田市| 金塔县| 英德市| 崇左市| 淮安市| 东丽区| 高密市| 萍乡市| 津市市| 洪泽县| 射洪县| 阿勒泰市| 武清区| 水城县| 砚山县| 梅河口市| 辽宁省| 临沂市| 天气| 仙桃市|