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​