要想在Linux系统上使用Tmpwatch/Tmpreaper命令,得先安装它,然后通过下面的实例掌握到Tmpwatch/Tmpreaper命令的用法。
什么是Tmpwatch Tmpwatch递归地删除指定时间段内未在指定目录中访问的文件,通常,它用于自动清除用于临时文件系统的目录,例如/tmp和/var/tmp。它仅删除空目录、常规文件和符号链接。它不会切换到其他文件系统,并且避免了属于根用户的“lost+found”目录。 默认情况下,tmpwatch会根据文件的atime(访问时间)而不是其mtime(转换时间)删除文件。您可以通过在tmpwatch命令中添加其他参数来更改此行为。 警告:请不要在“/”中运行“tmpwatch”或“tmpreaper”,因为程序中没有防止这种情况的机制。 注意:如果使用的是基于Debian的系统,请使用“tmpreaper”,而不是tmpwatch。 安装参考:安装和使用Tmpwatch/Tmpreaper以删除在给定时间内未访问的文件。
了解关键选项和参数 atime(文件上次访问时间)–访问时间表示上一次通过命令或脚本等任何进程访问文件中数据的时间。 mtime(文件上次修改时间)–mtime在您修改文件内容或保存文件时显示,除非文件属性被更新,否则大多数时候ctime和mtime会相同。 ctime(文件上次更改时间)–ctime显示文件元数据何时更改,这意味着何时更改文件属性(如所有权或组等)。 dirmtime(目录的上次修改时间)–dirmtime显示目录的上一次修改时间。 time参数定义删除文件的阈值: d–天。 h–小时。 m–分钟。 s–秒。
在Linux系统上使用Tmpwatch/Tmpreaper命令的实例 1、使用Tmpwatch命令删除一段时间未访问的文件 Tmpwatch默认情况下一次删除文件,具体取决于访问文件的时间,另外,由于小时是默认参数,因此如果使用小时单位执行操作,则无需在时间上添加后缀。 例如,运行下面的命令以递归的方式删除过去5个小时未访问的文件: # tmpwatch 5 /tmp 运行以下命令以删除最近10个小时未修改的文件,如果要使用mtime删除文件,则需要在tmpwatch命令中添加“-m”选项,请注意修改ywnz成自己的名称,以下略同: # tmpwatch -m 10 /home/ywnz/Downloads 2、使用Tmpwatch命令删除未超过“X”天访问的文件 如果要使用几天删除文件,则需要添加后缀“d”,以下示例删除了30天以上的文件: # tmpwatch 30d /home/ywnz/Downloads 3、使用Tmpwatch命令删除一段时间未访问的所有文件 以下命令将删除所有文件类型,而不仅仅是基于mtime的常规文件、符号链接和目录: # tmpwatch -am 12 /tmp 4、使用Tmpwatch排除目录 以下命令将删除所有文件,并排除过去10个小时未修改的目录: # tmpwatch -am 10 --nodirs /home/ywnz/Downloads 5、使用Tmpwatch排除特定路径 下面的命令将删除除以下目录以外的所有文件,该目录在过去10个小时内没有被修改: # tmpwatch -am 10 --exclude=/home/ywnz/Downloads/Movies /home/ywnz/Downloads 6、使用Tmpwatch排除特定模式 以下命令将删除除以下Pattern以外的所有文件,该Pattern在过去10个小时内未进行任何修改: # tmpwatch -am 10 --exclude-pattern='*.pdf' /home/ywnz/Downloads 7、使用Tmpwatch命令执行空运行 如果要执行空运行,请运行以下命令: # tmpwatch -t 5h /home/ywnz/Downloads
设置Cronjob以使用Tmpwatch定期删除文件 默认情况下,它将cronjob文件保留在“/etc/cron.daily/tmpreaper”目录下,此cronjob根据位于“/etc/timereaper.conf”中的配置文件工作,您可以根据需要自定义文件。它每天运行一次,并删除7天之前的文件。另外,如果您希望常规执行某项操作,则可以根据需要手动添加一个联系人: # crontab -e 0 10 * * * /usr/sbin/tmpwatch 15d /home/ywnz/Downloads 上面的cronjob将删除每天上午10点超过15天的文件。
相关主题 |