如何在服务器之间同步文件?

news2024/7/6 20:59:28

业务需求

因业务需求需要在多台服务器之间做文件资源的双向同步,选择 ownCloud + davfs2 + rsync 来实现

ownCloud

ownCloud 是一个开源免费专业的私有云存储项目,它能帮你快速在个人电脑或服务器上架设一套专属的私有云文件同步网盘。

ownCloud 能让你将所有的文件掌握在自己的手中,只要你的设备性能和空间充足,那么用其来几乎没有任何限制。

同时ownCloud 支持 WebDAV 形式访问,所以可以方便的与 davfs2 结合使用,实现文件同步。

安装

在这里我们使用 docker 进行快速安装

拉取owncloud镜像

docker pull owncloud:latest

启动owncloud容器

docker run -d -p 8080:80 owncloud:latest

初始化owncloud配置

登录界面


ownCloud 其他安装笔者不再赘述,请参考官方文档

davfs2

davfs2 是一个用于访问 WebDAV 服务器上的文件系统的用户空间文件系统。

它允许您将 WebDAV 服务器挂载到本地文件系统,并使用本地文件系统 API 访问挂载的文件系统。

安装

在所有需要同步的服务器上安装 davfs2

Ubuntu/Debian

sudo apt-get update
sudo apt-get install davfs2

Centos

sudo yum update
sudo yum install davfs2

配置

编辑 /etc/davfs2/davfs2.conf 文件,配置 davfs2 的设置。

例如,你可能需要设置 use_locks 为0来禁用文件锁定,因为某些 WebDAV 服务器可能不支持锁定

use_locks 0

创建或编辑 /etc/davfs2/secrets 文件,在文件最后添加 WebDAV 服务器的用户名和密码:

"http://your-webdav-server-url" username password

ownCloudWebDAV URLhttp://owncloud-server-ip/remote.php/webdav

http://owncloud-server-ip 替换为你自己的ownCloud的访问地址


确保 /etc/davfs2/secrets 文件的权限设置为只允许 root 访问

sudo chmod 600 /etc/davfs2/secrets

挂载WebDAV共享

在所有服务器上创建本地目录作为挂载点:

sudo mkdir /ownCloud/webdav

使用 mount 命令将 ownCloudWebDAV 资源挂载到该目录:

sudo mount -t davfs http://your-owncloud-server-url/remote.php/webdav /ownCloud/webdav

同步文件

一旦 WebDAV 资源被挂载后,你可以使用 rsync 同步工具在多台台服务器的挂载点之间同步文件

rsync -avz /ownCloud/webdav/ /path/to/local/directory

配合使用 cron 作业定期执行同步命令,可以实现自动同步

– 欢迎点赞、关注、转发、收藏【我码玄黄】,gonghao同名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1857603.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ArkTS开发系列之导航 (2.5.2 页面组件导航)

上篇回顾: ArkTS开发系列之导航 (2.5.1 页面路由) 本篇内容:主要学习页面内组件导航 一、 知识储备 1. Navigation 一般作为页面的根容器,包括单页面、分栏和自适应三种显示模式。 自适应模式 (NavigationMode.Auto) ,需要注意…

三相变压器:应用和连接配置

变压器的功能和应用 变压器的类型和用途多种多样,可根据其应用、结构类型和尺寸进行分类。 一般来说,变压器的主要功能是改变交流电(AC)的电压水平,提高电压以供长距离传输或降低电压以供家庭和工业消费者使用。 它…

优先级队列模拟实现

目录 1.堆的概念 2.堆性质堆中的某个元素小于或大于他的左右孩子 3.小根堆实例 4.堆创建 4.1调整思路 4.2向下调整思路 4.3代码实现(大根堆) 5.堆的删除 6.堆的插入 7.常用接口 7.1PriorityQueue和PriorityBlockingQueue 1.堆的概念 如果有一…

常见硬件工程师面试题(二)

大家好,我是山羊君Goat。 对于硬件工程师,学习的东西主要和电路硬件相关,所以在硬件工程师的面试中,对于经验是十分看重的,像PCB设计,电路设计原理,模拟电路,数字电路等等相关的知识…

微服务(服务治理)

服务远程调用时存在的问题 注册中心原理 服务治理中的三个角色分别是什么? 服务提供者:暴露服务接口,供其它服务调用服务消费者:调用其它服务提供的接口注册中心:记录并监控微服务各实例状态,推送服务变更信…

软件工程体系概念

软件工程 软件工程是应用计算机科学、数学及 管理科学等原理开发软件的工程。它借鉴 传统工程的原则、方法,以提高质量,降 低成本为目的。 一、软件生命周期 二、软件开发模型 1.传统模型 瀑布模型、V模型、W模型、X 模型、H 模型 (1)瀑布模型 瀑布…

材料科学SCI期刊,中科院2区,影响因子4.7

一、期刊名称 Progress in Natural Science-Materials International 二、期刊简介概况 期刊类型:SCI 学科领域:材料科学 影响因子:4.7 中科院分区:2区 三、期刊征稿范围 由中国材料研究会负责的同行评议 由中国材料研究会&…

java8 将对象list中的某一个属性取出组成一个list

实体类 public class Sp {String spdm;String spmc;public Sp() {}public Sp(String spdm, String spmc) {this.spdm spdm;this.spmc spmc;}public String getSpdm() {return spdm;}public void setSpdm(String spdm) {this.spdm spdm;}public String getSpmc() {return sp…

安美数字酒店宽带运营系统——命令执行漏洞(CNVD-2021-37784)

声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 安美数字酒店宽带运营系统 server_ping.php 存在远程命令执行漏洞&#…

Java-LinkedList和ArrayList的区别、Get/Add操作性能分析以及常见的遍历方式

LinkedList和ArrayList的区别、Get/Add操作性能分析以及常见的遍历方式 一、LinkedList基本特性主要方法 二、ArrayList初始化及基本操作ArrayList注意点(待完善)代码示例 三、ArrayList与LinkedList的区别四、Get/Add操作性能分析五、LinkedList遍历方式…

藏在十九页PPT里的“海合安之道”

6月6日,成立仅仅两年多的海合安集团亮相2024中国主题公园战略营销峰会,作为本届峰会最年轻的主题公园企业,备受行业关注。 海合安集团成立于2021年,为亚洲最大私募投资基金之一的安博凯投资基金(MBK Partners&#xf…

Java 编程语言:过去、现在与未来

引言 自 1995 年由 Sun Microsystems 发布以来,Java 编程语言已经走过了漫长的道路。作为一种面向对象的编程语言,Java 因其“一次编写,到处运行”的理念而广受欢迎。本文将探讨 Java 的历史、主要特点、应用领域以及未来的发展趋势。 Java…

MacBook Pro 忘记root用户密码,重置密码步骤

一、以普通用户名登录系统,并打开terminal终端, 输入:sudo bash sudo bash Password:*****(输入当前用户的密码) 成功后进入bash-3.2#的命令模式 二、在bash-3.2#命令模式下 输入:sudo passwd root sud…

春招面试面经总结篇

目录 前言一,算法篇1.1 平拍数组1.2 括号匹配1.3 打家劫舍1.4 删除最少使字符串平衡1.5 爬楼梯 二,数据结构篇2.1 二叉树2.2 链表 三,HTML篇3.1 H5新的语义标签3.2 href和src 四,CSS篇4.1 居中4.2 父元素塌陷解决4.3 外边距塌陷4.…

基于SpringBoot的实习管理系统设计与实现

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言: Java 数据库: MySQL 技术: SpringBoot框架,B/S模式 工具: MyEclipse,Tomcat 系统展示 …

dockercompose部署redis哨兵模式并集成springboot

第一步 编写compose文件 docker-compose.yml version: 3.8networks:redis-network:driver: bridgeservices:redis-master:image: redis:7.2.4container_name: redis-mastercommand: ["sh", "-c", "redis-server --protected-mode no --slave-announ…

WSL安装的Ubuntu与docker desktop集成

WSL安装的Ubuntu与docker desktop集成 最近因为项目需要,要在本地利用WSL搭建一个docker和Ubuntu的部署环境。一开始并不知道docker desktop与Ubuntu可以集成使用,所以在Ubuntu上独立安装了docker引擎,但在安装docker-compose的时候出现以下…

av1支持的CU划分

av1只有4叉划分支持递归划分 只有四叉允许递归划分,其余划分只划分到本层。最大编码单元也扩展到128x128,最小编码单元4x4。

“流处理引擎” RisingWave 的三种经典交互方式

作为流数据库,RisingWave 在大数据生态中通常扮演着流处理引擎的角色。它从各种数据源读取数据,并将其写入不同的目的地。在此过程中,RisingWave 清洗、转换和聚合数据,最终得出计算的结果。 RisingWave 为用户提供了丰富的交互和…

flask-socket的实践

1.长连接和短连接的由来 1)TCP在真正的读写操作之前,server与client之间必须建立一个连接, 当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接, 连接的建立通过三次握手,释放则需要四次握手…