find操作與日誌清理

2021-09-03 07:41:23 字數 1839 閱讀 5166

周五有同事問起find命令中-mtime n、-mtime –n以及-mtime +n的用法區別,當時雖然記得這裡n是n個24個小時的意思,也是對所有這幾個屬性詳細的用法卻一知半解,索性週末仔細google並且實踐了一番,終於理清楚了個中乾坤。

find . –atime n        find . –ctimen            find . –mtime n

find . –atime –n       find . –ctime–n           find . –mtime -n

find . –atime +n       find . –ctime+n           find . –mtime +n

一、atime、ctime與mtime

atime是指access time,即檔案被讀取或者執行的時間,修改檔案是不會改變access time的。網上很多資料都聲稱cat、more等讀取檔案的命令會改變atime,但是我試驗時卻發現使用cat、more時atime沒有被修改。這個問題需要另外做研究**。

ctime即change time檔案狀態改變時間,指檔案的i結點被修改的時間,如通過chmod修改檔案屬性,ctime就會被修改。

mtime即modify time,指檔案內容被修改的時間。

使用stat可以檢視檔案的atime、ctime、mtime。

例:stat ~/.bashrc

file:`/home/user_00/.bashrc'

size: 1177            blocks: 8          io block: 4096   regular file

device: 801h/2049d      inode:663962      links: 1

access: (0644/-rw-r--r--) uid: ( 1003/ user_00)   gid:(  100/  users)

access: 2009-12-21 10:45:35.000000000 +0800

modify: 2009-12-21 10:45:35.000000000 +0800

change: 2009-12-2110:45:35.000000000 +0800

也可以使用ls檢視檔案的atime、ctime、mtime。

通常情況下我們使用的ls –l ~/.bashrc指示的是檔案的modify time。

ls –lu ~/.bashrc 或者ls –l –time=atime~/.bashrc指示的是檔案的access time

ls –lc ~/.bashrc 或者ls –l –time=ctime~/.bashrc 指示的是檔案的change time

使用touch可以改變這三個時間。關於使用touch改變atime、ctime、mtime的方法,此處不做介紹。

二、find . –mtime中的引數n

find . –mtime n中的n指的是24*n, +n、-n、n分別表示:

+n: 大於n

-n:    小於n

n:等於n

但是man find裡這樣的解釋還是比較令人費解的,不如直接看find . -mtime 中的用法

find . –mtime n:  file waslast modified n*24 hours ago.

最後一次修改發生在距離當前時間n*24小時至(n+1)*24 小時

find . –mtime +n:

最後一次修改發生在n+1天以前,距離當前時間為(n+1)*24小時或者更早

find . –mtime –n:

最後一次修改發生在n天以內,距離當前時間為n*24小時以內

Kafka 操作日誌清理指令碼

配置完成後,需要新增crontab usr bin env bash author yakir.king date 2020 8 3 20 14 清除多餘日誌 清除規則 1 保留個數,kafka預設按照小時儲存日誌,每小時儲存乙個,約定保留檔案個數,預設72個 2 保留時間,預設儲存72小時 3 儲...

日誌整合與日誌系統

最近因為在搭建公司框架,日誌是必須加入的一部分。目前因為還未將公司業務做成微服務,所以暫時是在框架基礎上整合日誌框架,滿足框架專案的需要。當後面將公司業務進行微服務實戰,當落地成功的時候,日誌也將是乙個微服務式的日誌系統。最開始工作的時候,接觸的日誌就是專案中使用log4j來實現,後面換成logba...

日誌清理 sh

bin bash log dir var log root uid 0 lines 50 e xcd 66 e notroot 67 e wrongargs 65 if uid ne root uid then echo must be root to run this script.exit e ...