qq:78080458 学习交流群:150633458
分类: LINUX
2018-12-08 11:04:07
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 |