天天看點

Linux基礎指令---tmpwatch

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使用者的檔案

繼續閱讀