tmpwatch命令参数说明
-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 排除某规则下的路径。
tmpwatch命令的关键选项和参数
atime (File Last Access Time):文件最后一次被访问的时间;
mtime (File Last Modify Time):文件内容最后一次被修改的时间;
ctime (File Last Change Time):文件元数据最后一次被修改的时间,即文件相关属性被修改的时间,多数情况下 mtime 和 ctime 值相同,但是诸如文件所有者、权限、所属组这类不涉及内容的属性被修改时则只会影响 ctime;
dirmtime (Directory Last modification time):目录最后一次被修改的时间。
时间参数:
d:单位为天;
h:单位为小时;
m:单位为分钟;
s:单位为秒。
tmpwatch命令示例
tmpwatch 默认根据文件访问时间(atime)来删除文件。由于小时是默认参数,如果使用小时单位,那么无需在时间上添加后缀。
例如,运行以下命令删除最近5个小时未被访问的文件。
# tmpwatch 5 /tmp
如果要使用修改时间(mtime)来删除文件,那么需要在 tmpwatch 命令中添加 -m 选项。
运行以下命令删除最近10个小时未被修改的文件。
# tmpwatch -m 10 /home/david/Downloads
如果要使用天数删除文件,那么需要添加后缀d。以下示例删除30天内没有被访问的文件。
# tmpwatch 30d /home/david/Downloads
以下命令将删除最近12个小时未被修改的所有类型的文件,而不仅仅是常规文件、符号链接和目录。
# tmpwatch -am 12 /tmp
以下命令将删除最近10个小时未修改的所有文件,并排除目录。
# tmpwatch -am 10 –nodirs /home/david/Downloads
以下命令将删除过最近10个小时未修改的所有文件,除了下面排除的文件夹。
# tmpwatch -am 10 –exclude=/home/david/Downloads/Movies /home/david/Downloads
以下命令将删除最近10个小时未修改的所有文件,除了满足下面列出的模式的文件。
# tmpwatch -am 10 –exclude-pattern=’*.pdf’ /home/david/Downloads
运行以下命令测试删除(不实际删除任何内容)
# tmpwatch -t 5h /home/david/Downloads
使用 tmpwatch 定期删除文件,下面的crontab将在每天上午 10 点删除早于15天的文件。
# crontab -e
0 10 * * * /usr/sbin/tmpwatch 15d /home/david/Downloads