nextcloud设置cron后台任务

后台任务

以下是nextcloud官方对于后台任务的解释:

诸如Nextcloud之类的系统有时需要定期执行任务,而无需用户交互或妨碍Nextcloud性能。为此,作为系统管理员,您可以定义无需用户交互就可以执行的后台作业(例如,数据库清理)。

这些作业通常称为cron作业。Cron作业是命令或基于Shell的脚本,它们计划在固定的时间,日期或间隔定期运行。 cron.php是Nextcloud内部流程,可按需运行此类后台作业。

Nextcloud应用程序会cron.php自动注册操作,以执行典型的内部管理操作,例如临时文件的垃圾收集或使用filescan()外部安装的文件系统检查新近更新的文件。

打开nextcloud后面的设置–基本设置大致可分为三种后台任务:

  • Ajax
  • Webcron
  • Cron

这三种模式,默认采用的是Ajax,但是对于较大的实例,就需要使用Cron这种模式了。

配置方法

可以看到要求是:使用系统定时任务服务每5分钟执行一次cron.php文件。 cron.php 需要被系统用户 “www” 执行。

yvEY.png

可以看到官方要求是两点,一个要5分钟执行一次文件,还有要被www执行

如果你和我一样是nginx,那么只需要在nextcloud的安装根目录下给www权限即可,Apache的话可能是www-data

chown www:www cron.php

这样就给权限了。

编辑一个定时脚本

/etc/systemd/system目录新建 nextcloudcron.service 和 nextcloudcron.timer 两个文件:

1、nextcloudcron.service文件内容(修改cron.php文件路径):

[Unit]
Description=Nextcloud cron.php job
 
[Service]
User=www
ExecStart=/usr/bin/php -f /www/wwwroot/test.wxlcloud.com/nextcloud/cron.php
 
[Install]
WantedBy=basic.target

注意这里ExecStart后面的php是你安装的php路径,如果你用的宝塔安装一般是在*/www/server/php/php版本/bin/php*,一般就在这个地方,后面的cron.php,就写你根目录下的那个地址,注意要写绝对路径

2、nextcloudcron.timer文件内容:

[Unit]
Description=Run Nextcloud cron.php every 5 minutes
 
[Timer]
OnBootSec=5min
OnUnitActiveSec=5min
Unit=nextcloudcron.service
 
[Install]
WantedBy=timers.target

这里没什么修改的,就是个定时

3、系统中执行下面的命令就可以了:

systemctl enable --now nextcloudcron.timer

检查结果

最后点到基本设置里,选择cron的方式,等5分钟看看情况:

yWHM.png


原文链接:https://blog.csdn.net/weixin_42758977/article/details/114290064

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息分享服务,不拥有所有权,不承担相关法律责任。如若转载,请注明本站链接。如若内容造成侵权/违法违规/事实不符,请联系本站邮箱:1414601196@qq.com进行投诉反馈,一经查实,立即删除!

发表回复

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