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

2024-05-15 07:48

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



http://www.chinasem.cn/article/991234

相关文章

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

docker 重命名镜像的实现方法

《docker重命名镜像的实现方法》在Docker中无法直接重命名镜像,但可通过添加新标签、删除旧镜像后重新拉取/构建,或在DockerCompose中修改配置文件实现名称变更,感兴趣的可以了解一下... 目录使用标签(Tagging)删除旧的php镜像并重新拉取或构建使用docker Compose在Do

Spring定时任务之fixedRateString的实现示例

《Spring定时任务之fixedRateString的实现示例》本文主要介绍了Spring定时任务之fixedRateString的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录从毫秒到 Duration:为何要改变?核心:Java.time.Duration.parse

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1