分享

Docker版NextCloud文件手动扫描同步 定时扫描

 网络中的夜鹰 2020-07-07

由于使用NextCloud的上传太慢了,我直接将文件移动至nextcloud的文件目录/data/用户名/files中,结果nextcloud并不能显示出来手动拷贝的文件,本文详细说明了docker版本的nextcloud如何手动扫描文件。

1. NextCloud的docker启动脚本

#!/bin/bash
docker run -d -v /home/docker/nextcloud/data:/var/www/html/data -v /home/movies:/var/www/html/data/用户名/files/Movies -v /home/docker/nextcloud/custom-apps:/var/www/html/custom_apps -v /home/docker/nextcloud/config:/var/www/html/config -v /home/docker/nextcloud/config/passwd:/etc/passwd -p 80:80 --link mysql:mysql --name nextcloud --restart=always helsing/nextcloud

注意:

这里的passwd文件要映射出来,因为官方docker镜像里,www-data用户是禁止使用bash的,需要手动修改一下:

vi passwd

修改www-data用户的nologin为/bin/bash

www-data:x:33:33:www-data:/var/www:/bin/bash

2. 容器内执行方式

进入容器内

docker exec -it nextcloud /bin/bash

手动扫描文件

su - www-data -c 'php /var/www/html/occ files:scan --all'

一般默认安装occ都在我上边写的那个路径下,如果没有,请自行搜索位置

正常返回结果

Starting scan for user 1 out of 1 (xxx)

+---------+-------+--------------+
| Folders | Files | Elapsed time |
+---------+-------+--------------+
| 70      | 8320  | 00:03:10     |
+---------+-------+--------------+

可以看到,用时还是比较长的,所以可以自行添加一些参数,比如指定扫描用户、目录、只扫描未扫描过的文件等。

occ扫描参数说明

格式: files:scan [-p|--path="..."] [-q|--quiet] [-v|vv|vvv --verbose] [--all] [user_id1] ... [user_idN]

参数: 
user_id #扫描所指定的用户(一个或多个,多个用户ID之间要使用空格分开)的所有文件

选项: 
--path #限制扫描路径,该路径必须包含以下部分:"user_id/files/path"
--all #扫描所有已知用户的所有文件 
--quiet #不输出统计信息 
--verbose #在扫描过程中显示正在处理的文件和目录 
--unscanned #仅扫描以前未扫描过的文件

其他可能用到的

php occ user:list #列出所有用户

3. 容器外手动/定时执行

容器外执行occ的脚本scanFiles.sh内容

#/bin/bash
#可以根据自己的需求更改参数,比如指定扫描路径,只扫描未扫描过的文件等,参见第二节的参数说明
docker exec -it nextcloud /bin/bash -c "su - www-data -c 'php /var/www/html/occ files:scan --all'"

增加执行权限

chmod +x scanFiles.sh
  • 手动执行
./scanFiles.sh
  • 定时任务
crontab -e

按i进入编辑模式,插入如下记录

#每天凌晨2点定时occ扫描nextcloud文件更新
0 2 * * *  sh /home/shells/scanFiles.sh

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多