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

由于使用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
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值