管理 cron 以清除缓存目录

管理 cron 以清除缓存目录

管理每周从多个位置删除文件的 cron 作业的最佳方法是什么?

当我说管理时,我指的是不同的位置,理想情况下,这在 MySQL 数据库中效果最好。无需为每个位置创建 cron 作业。

原因是我们有许多不同的网站项目会生成缓存文件,而且在过去几周里,这些文件的规模开始增大。

答案1

如果您指的是不同的服务器,那么最好在每个服务器上创建一个 cronjob。编写一个执行有用日常管理的通用脚本,并在所有服务器上安排它。

如果您指的是同一服务器上的不同位置,那么最简单的选择是使用一个 cronjob 从文本文件中读取目录并清理它们,mysql 对于目标目录列表来说似乎有点过头了。如果有充分的理由将这些位置放在 mysql 数据库中,那么您可以编写一个 perl 脚本来读取 mysql 数据并整理列出的目录。

最后,根据您的 Web 应用程序如何创建文件,它们应该被编写为自行管理文件。当应用程序创建新的缓存文件时,它可以检查是否需要删除任何文件。自我管理的应用程序比依赖可能因无关原因而失败的外部脚本要好。

答案2

您可以创建一个脚本,通过 cron 在一个服务器上运行,并使用 ssh 删除各个位置的文件:

ssh [email protected] rm -rf /path/to/cache
ssh [email protected] rm -rf /path/to/cache2
etc.

检查是否有错别字!:-)

或者更安全:

ssh [email protected] 'cd /path/to && rm -rf cache'

确保使用 ssh-copy-id 将您的密钥复制到远程服务器,以便您可以使用无密码登录:

ssh-copy-id [email protected]

相关内容