在我的Web应用程序中,我使用
PHP脚本呈现页面,然后从它们生成静态HTML文件.静态HTML将提供给用户以加快性能. HTML文件最终变得陈旧,需要删除.
我正在讨论两种编写驱逐脚本的方法.
第一种是使用单个find命令,比如
find /var/www/cache -type f -mmin +10 -exec rm \{} \;
第二种形式是通过xargs管道,类似于
find /var/www/cache -type f -mmin +10 -print0 | xargs -0 rm
第一个表单为它找到的每个文件调用rm,而第二个表单只将所有文件名发送到单个rm(但文件列表可能很长).
哪种形式会更快?
在我的例子中,缓存目录在几个Web服务器之间共享,所以这一切都是通过NFS完成的,如果这个问题很重要的话.
我希望xargs版本稍快一些,因为你没有为每个文件名生成一个进程.但是,如果实践中存在很大差异,我会感到惊讶.如果你担心xargs发送到rm的每个调用的长列表,你可以使用-l和xargs来限制它将使用的标记数.但是,xargs知道最长的cmdline长度,并且不会超出这个范围.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。