再说一点Nextcloud性能相关的事

后台计划任务

在Nextcloud的文档中,要求正确配置好后台任务,后台任务的运行会影响服务器的性能。而对于如何设置该后台任务,在不同的操作系统下其实有不同的设置方法。我使用的是群晖NAS,它的操作系统应该是基于Linux内核和某个发行版进行定制开发的,而且我的Nextcloud是Docker容器安装,参照网络上的经验将后台任务设置以Cron运行,总是不能正常运行,参考官方文档也没有正常运行。

按上一篇文章解决了运行速度的问题后,又再研究了一下这个问题,顺利解决了,这里介绍一下自己的设置方法,供大家探讨。

一、命令格式

首先,由于我的Nextcloud是运行在Docker容器中,所以不能用一般的Linux命令直接在容器中设定,需要通过一些方法在操作系统中去运行容器中的程序。

这样在不同的系统下,如何在系统外执行容器中的命令其实有不同的方法,Nextcloud官方文档给的命令基本方法是:

*/5  *  *  *  * php -f /var/www/nextcloud/cron.php

而在群晖中,php -f 的基本格式根本不能正常执行,是非法命令。
群晖执行容器中命令的基本格式是 docker exec 容器名 容器中命令 (参数)
经过多次尝试,最终可行的命令方法是,将前述官方命令格式中的-f及路径文章,更换成容器名和容器中需要执行的容器中文件。最终命令如下:
docker exec –user www-data nextcloud php cron.php

因为Nextcloud是运行在Apache2 Web服务器上的,所以这里执行该命令需要用www-data用户身份去运行该命令。

二、群晖系统中计划运行该命令的方法

由于群晖是高度自定制的系统,直接在系统文件中设置该计划任务非常困难。其实,群晖提供了非常易用的桌面图形化的计划任务设置方法,十分简单方便。

2.1 打开任务计划,新增“用户定义的脚本”

2.2 编辑脚本的内容

2.2.1 用户帐号要选择 root

2.2.2 计划时间可以根据需要设置到分钟

2.2.3 用户定义的脚本就是前述的命令

Nextcloud中的计划任务有三种设置选项,默认的是AJAX,但官方推荐的是Cron,如果你的系统只是个人使用,选择使用AJAX也不会有太大的影响,这样就不会有错误提示,也不用这么麻烦去设置。

发表回复

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