nextcloud设置cron.php定时任务

Cron

使用操作系统 cron 功能是执行 常规任务。此方法允许在没有 Web 服务器可能具有的固有限制。

在 *nix 系统上每 5 分钟在默认 Web 下运行 cron 作业 服务器用户(通常是 或 ),您必须设置以下内容 cron 作业调用 cron.php 脚本:www-datawwwrun

# crontab -u www-data -e
*/5  *  *  *  * php -f /var/www/nextcloud/cron.php

您可以通过执行以下命令来验证是否已添加和调度 cron 作业:

# crontab -u www-data -l
*/5  *  *  *  * php -f /var/www/nextcloud/cron.php

注意

您必须将路径替换为 路径添加到您当前的 Nextcloud 安装中。/var/www/nextcloud/cron.php

注意

在某些系统上,可能需要调用 php-cli 而不是 php

注意

请参阅 crontab 手册页了解确切的命令语法。

systemd 系统

如果系统上安装了 systemd,则 systemd 计时器可以是 cronjob 的替代方案。

此方法需要两个文件:nextcloudcron.service 和 nextcloudcron.timer。在 中创建这两个文件。/etc/systemd/system/

nextcloudcron.service 应如下所示:

[Unit]
Description=Nextcloud cron.php job

[Service]
User=www-data
ExecStart=/usr/bin/php -f /var/www/nextcloud/cron.php

将 user 替换为 http 服务器的用户以及 nextcloud 目录中的 cron.php 的位置。www-data/var/www/nextcloud/cron.php

请注意,.service unit 文件不需要节。请检查您的设置,因为我们在本管理员手册的早期版本中推荐了它。[Install]

nextcloudcron.timer 应如下所示:

[Unit]
Description=Run Nextcloud cron.php every 5 minutes

[Timer]
OnBootSec=5min
OnUnitActiveSec=5min
Unit=nextcloudcron.service

[Install]
WantedBy=timers.target

定时器单元中的重要部分是 和 。 将在启动后 5 分钟启动计时器,否则您必须在每次启动后手动启动它。 将在上次激活服务单元后设置 5 分钟计时器。OnBootSecOnUnitActiveSecOnBootSecOnUnitActiveSec

现在剩下的就是通过运行以下命令来启动并启用计时器:

systemctl enable --now nextcloudcron.timer

当此选项与 一起使用时,相应的单元也将启动。--nowenable

注意

在后台作业的管理菜单中选择该选项不是必需的,因为一旦从命令行或 cron 服务执行cron.php,它就会自动将其设置为 。CronCron

发表评论

邮箱地址不会被公开。 必填项已用*标注

click to changeSecurity Code