tmpwatch自动清除文件学习

  • tmpwatch 删除给定时间未访问过的文件,通常用于清理临时存放空间 /tmp 的目录

  • 更改目录时, tmpwatch 对可能的争用条件非常敏感, 如果检测到一个错误, 则会退出。它不遵循符号链接的目录, 它的清洁 (即使一个象征性的链接是作为其参数)

  • 文件系统 (包括非琐碎的绑定装载), 跳过丢失的 + 找到根用户拥有的目录, 并且只删除空目录、常规文件、符号链接和某些系统也未使用的套接字。

  • 默认情况下, tmpwatch 日期文件的 atime (访问时间), 而不是他们的 mtime (修改时间)。如果文件没有被删除时, 则暗示他们应该是, 使用 ls-你检查他们的 atime, 看看是否能解释问题。

  • 如果 atime、-ctime 或–mtime 选项组合使用, 则删除文件的决定将基于这些时间的最大值。 dirmtime 选项意味着忽略 atime 的目录, 即使使用了-atime 选项。

  • 时间参数定义了用于删除文件的阈值。 如果文件未被访问, 则会删除该文件。 时间参数是一个数字, 其中有一个可选的单字符后缀, 指定单位: m 为分钟, h 为小时, d 为天。

  • 如果没有指定后缀, 时间则为小时,在此之后, 可以为 tmpwatch 提供一个或多个目录以进行清理。

tmpwatch command


-u, --atime 基于访问时间来删除文件,默认的。 -m, --mtime 基于修改时间来删除文件。 -c, --ctime 基于创建时间来删除文件,对于目录,基于mtime。 -M, --dirmtime 删除目录基于目录的修改时间而不是访问时间。 -a, --all 删除所有的文件类型,不只是普通文件,符号链接和目录。 -d, --nodirs 不尝试删除目录,即使是空目录。 -d, --nosymlinks 不尝试删除符号链接。 -f, --force 强制删除。 -q, --quiet 只报告错误信息。 -s, --fuser 如果文件已经是打开状态在删除前,尝试使用“定影”命令。默认不启用。 -t, --test 仅作测试,并不真的删除文件或目录。 -U, --exclude-user=user 不删除属于谁的文件。 -v, --verbose 打印详细信息。 -x, --exclude=path 排除路径,如果路径是一个目录,它包含的所有文件被排除了。如果路径不存在,它必须是一个绝对路径不包含符号链接。 -X, --exclude-pattern=pattern 排除某规则下的路径。

cat /etc/cron.daily/tmpwatch


#! /bin/sh flags=-umc /usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \ -x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \ -X '/tmp/hsperfdata_*' 10d /tmp /usr/sbin/tmpwatch "$flags" 30d /var/tmp for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do if [ -d "$d" ]; then /usr/sbin/tmpwatch "$flags" -f 30d "$d" fi done
鲁ICP备16017569号-2