使用Ubuntu的crontab设置一个新的工作

我几乎没有设置cron作业的经验。

我需要configuration一个cron作业,以'sess_''/tmp'文件夹中删除以'sess_'文件名开头的所有文件。

如果我用crontab -e启动crontab并写下如下代码:

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

那会工作吗?

语法看起来是否正确? 我需要重新启动吗? (即 – Apache)

提前致谢!

*/1与cron定义中的*相同

 0 * * * * ... 

会以同样的方式工作。


在find-delete将删除您请求的文件,但它可能不是你想要的。 您可以通过从命令行运行而不使用-delete选项来testingfind命令

 find /tmp/ -name "Sess_*" 

这将给你的文件列表将采取行动。


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

 # /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 

通过这样做,您将不会盲目地删除正在使用的会话文件。