tmpwatch
删除最近一段時間沒有通路的檔案,時間以小時為機關,節省磁盤空間。tmpwatch遞歸删除給定時間未被通路的檔案。通常,它用于清理用于臨時儲存空間(如/tmp)的目錄。當更改目錄時,tmpwatch對可能的争用條件非常敏感,如果檢測到錯誤,就會退出。它不遵循它正在清理的目錄中的符号連結(即使給出一個符号連結作為它的參數),它不會切換檔案系統,跳過根使用者的lost+found目錄,隻删除空目錄、正常檔案和符号連結。
預設情況下,tmpwatch根據檔案的atime(通路時間),而不是它們的Mtime(修改時間)來确定檔案的日期。如果檔案在“ls-l”暗示應該删除時沒有被移除,請使用“ls-u”檢查它們的資料,以确定這是否解釋了問題的原因。
如果指定了--atime”,“--ctime”或者“--mtime”選項,那麼删除檔案的時間由他們中的最大值決定。如果“--dirmtime”選項意味着忽略目錄的atime,即使使用了“—atime”選項。
此指令的适用範圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、文法
tmpwatch [選項] time file
tmpwatch [-u|-m|-c] [-MUadfqstvx] [--verbose] [--force] [--all] [--nodirs] [--nosymlinks] [--test] [--fuser] [--quiet] [--atime|--mtime|--ctime] [--dirmtime] [--exclude path] [--exclude-user user] time dirs
2、選項清單
-u | --atime
根據檔案的atime(通路時間)做出删除檔案的決定。請注意,定期更新的檔案系統掃描使目錄保持最近的狀态。
-m | --mtime
根據檔案的Mtime(修改時間)而不是atime做出删除檔案的決定。
-c | -ctime
根據檔案的ctime(Inode Changing Time)而不是atime來決定删除檔案;對于目錄,根據mtime做出決定
-M | --dirmtime
根據目錄的Mtime(修改時間)而不是atime作出删除目錄的決定;完全忽略目錄的atime
-a | -all
删除所有檔案類型,而不僅僅是正常檔案、符号連結和目錄。
-d | --nodirs
不要嘗試删除目錄,即使它們是空的。
-f | -force
強制删除,即使root使用者沒有寫的權利
-l | --nosymlinks
不删除符号連結
-q | --quite
隻報告緻命錯誤
-s | --fuser
嘗試在删除檔案之前使用“fuser”指令檢視檔案是否已打開。預設情況下未啟用。在某些情況下确實有幫助,但不是全部。依賴于/sbin中安裝的fuser。不支援HPUX或Solaris
-t | --test
不删除,隻是示範要做什麼
-U | --exclude-user=user
不删除指定所有者的檔案,可以指定使用者名,也可以指定使用者ID
-v | --verbose
顯示詳細資訊
-x | --exclude
跳過目錄及其内部檔案,如果路徑不存在,則它必須是不包含符号連結的絕對路徑。
-X | --exclude-pattern=pattern
跳過路徑比對模式;如果目錄比對模式,則其中包含的所有檔案也将被跳過。模式必須比對不包含符号連結的絕對路徑。
3、執行個體
1)删除目前目錄1小時内沒有通路的檔案
[root@192 weijie]# ls
1.c 2.c 3.c magic.mgc test01 test03 wjtpflR
1.c~ 2.c~ 3.c~ my.iso test02 wj234.q1C
You have new mail in /var/spool/mail/root
[root@192 weijie]# tmpwatch 1 .
1.c 1.c~ 2.c
2)不删除指定使用者的檔案
[root@192 weijie]# ll
總用量 12
-rwxr--r-- 1 root david 12 9月 13 16:49 1.c //檔案所有者都是root
-rw-r--r-- 1 root david 30 9月 13 16:43 1.c~
-rwxr--r-- 1 root root 11 9月 13 16:52 2.c
[root@192 weijie]# tmpwatch -U root 1 . //不删除root使用者的檔案