本文主要是介绍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
这篇关于Docker版NextCloud文件手动扫描同步 定时扫描的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!