【问题标题】:PHP garbage collector cronjob to run every 3 hoursPHP 垃圾收集器 cronjob 每 3 小时运行一次
【发布时间】:2013-08-01 22:58:39
【问题描述】:

PHP 会话存储在文件中。 php.ini 配置为在过去 3 小时内将所有“较旧”(未修改)的会话视为垃圾。 /etc/cron.d/php5 中有一个删除会话的 cronjob。它配置为每 30 分钟运行一次,我想将其更改为每小时运行一次。我该如何修改它? crontab -l 命令未列出该 cronjob。为什么?谢谢

【问题讨论】:

  • 使用运行 cron 作业的帐户中的crontab -e 命令进行编辑
  • 我怎么知道的?作为根用户,我无法使用 crontab -l 命令获取该信息。它没有在里面列出。使用 cron.d 的新手
  • 以 root 身份尝试 for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done 这将列出运行 crontab 的对象(如果有)。

标签: php unix ubuntu cron


【解决方案1】:

嗯,它不在 crontab 中,它在 /etc/cron.d/php5 文件中。看看那里。我的猜测是我的系统会是这样的:

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

只需将时间改为每小时运行一次:

9 * * * * <<the rest here>>

【讨论】:

  • 正如班西所说,这是行不通的。不安装 cronjob。我该如何安装它?使用 root 帐户时,crontab -l 不显示该 cronjob。
【解决方案2】:

如果您已经有一个正在运行的 cron 作业,您可以使用以下命令获取正在运行该作业的用户(需要 root)。

for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done

一旦您获得正在运行作业的用户,您就可以向该用户su 并使用crontab -e 来编辑作业。

如果您还没有任何 cron 作业设置,您可以如下创建一个新的 cron 作业。

  • 登录需要运行脚本的用户
  • 运行crontab -e(这将打开编辑器)
  • 在那里添加你的工作。

您可以在编辑器中添加以下任何命令来设置每小时 cron 作业。

0 * * * * /path/to/your/script/to/execute

或

@hourly /path/to/your/script/to/execute

关于 cron 的更多信息可以在这里找到https://en.wikipedia.org/wiki/Cron

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    • 2012-03-13
    • 1970-01-01
    相关资源
    最近更新 更多