使用 ubuntu 的 crontab 设置新作业

使用 ubuntu 的 crontab 设置新作业

我对设置 cron 作业的经验很少。

我需要配置一个 cron 作业,每小时'sess_'从文件夹中删除以文件名开头的所有文件。'/tmp'

如果我使用启动 crontabcrontab -e并编写以下代码:

0 */1 * * * find /tmp/ -name "sess_*" -delete

這會有用嗎?

语法看起来正确吗?我需要重启任何东西吗?(例如 - Apache)

提前致谢!

答案1

与 cron 定义*/1相同,因此*

0 * * * *  ...

将以同样的方式工作。


在 find 中,-delete将按照您的要求删除文件,但这可能不是您想要的。您可以通过在命令行中运行 find 命令来测试它,而无需使用-delete选项

find /tmp/ -name "Sess_*"   

这将为您提供将要执行的操作的文件列表。


更好的办法可能是查看 /etc/cron.d/php5 文件,该文件对位于 /var/lib/php5 中的会话文件执行相同的操作。请注意,它仅使用 -cmin 选项删除早于系统最大寿命的文件...

# /etc/cron.d/php5: crontab fragment for php5
#  This purges session files older than X, where X is defined in seconds
#  as the largest value of session.gc_maxlifetime from all your php.ini
#  files, or 24 minutes if not defined.  See /usr/lib/php5/maxlifetime

# Look for and purge old sessions every 30 minutes
09,39 *     * * *     root   [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete

通过这种方式,您就不会盲目地删除正在使用的会话文件。

相关内容