Linux基礎命令—tmpwatch

一生有你llx發表於2018-12-08
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 .
      [root@192 weijie]# ls
      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使用者的檔案
      [root@192 weijie]# ls
      1.c  1.c~  2.c

相關文章