Linux服务器同步Windows目录同步-rsync

前言

最近需要,Linux的服务器同步Windows的一个目录。查了下,大概有三种方法:网盘同步;rsync同步;挂载目录。

网盘同步,可以选择搭建一个Nextcloud 。但是问题在于,我需要的是,客户端和服务端的同步,而不是客户端和客户端的同步。服务端没有界面,安装客户端的网盘软件可能不太好使。所以没有选择这种方法。

rsync同步。这种方法,需要存储两份文件。本地存储一份,然后同步到服务端。

samba挂在目录。像在本地一样操作服务端目录里面的内容,数据也只需要存储一份。


samba挂载目录

我首先尝试的是挂载服务端的目录。但是,效果不好,因为网络延迟比较严重,操作挂载目录里面的文件有点难受。

# ubuntu中安装samba服务
sudo apt install samba

我没去看官方的文档,因为好长。我网上翻了翻博客,看了下samba配置中的注释,基本可以搞定个人使用的samba配置。

首先,需要修改samba的配置文件 /etc/samba/smb.conf

# 这里只列出需要修改的部分
## 更多的参数查询:https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html

# 每个用户的家目录设置位共享目录,可以通过\\server\username访问
[homes]
   comment = Home Directories # 共享目录的描述
   browseable = no # \\server 看不到这个目录;知道username的人,可以通过\\server\username尝试连接 https://unix.stackexchange.com/questions/377516/what-does-browseable-in-samba-configuration-mean
   read only = yes # home目录只读
   create mask = 0700 # 创建文件的默认权限
   directory mask = 0700 # 创建目录的默认权限
   ;   valid users = %S # 默认任何人都可以连接,每个人使用自己的用户名和密码验证。这里可以限制只有允许的人可以访问
[music]
   comment = navidrome music
   valid users = root # 只用root用户可以访问这个共享目录
   force user = root
   force group = root
   ; public = yes # 不用验证直接访问
   path = /root/navidrome/music # 共享路径
   browseable = yes # 每个人都能看到存在此共享目录
   read only = no
   available = yes # 这个共享目录可以使用
   create mask = 0755
   directory mask = 0755
# smb添加用户
smbpasswd -a root

# 重启服务
systemctl restart smdb.service

需要注意的是,需要设置下root密码,否则samba无法访问这个music共享目录。passw root即可。如果遇到设置的密码太简单,无法设置成功,可以关闭这个验证,见:linux - Enable simple password for root user on CentOS - Super User

windows访问linux共享目录,可以参考:Win10访问Ubuntu的samba共享文件

在这里插入图片描述


rsync同步

Linux作为服务端rsync的安装和配置

配置之前,可以看下/etc/default/rsync,这个配置用不到,因为它是for init.d。我们使用systemctl管理rsync服务。

我们先创建一份配置文件:cp /usr/share/doc/rsync/examples/rsyncd.conf /etc。之后systemctl status rsyncsystemctl start rsync启动服务了。但是默认的配置需要修改。安全起见,总得设置,哪个用户可以同步哪个目录。没有看到很好的中文介绍,所以只能看官方文档。所幸,官方文档只有一长页:Ubuntu Manpage: rsyncd.conf - configuration file for rsync in daemon mode

下面是我的一个配置,我简单注释下。

root@vultr:~/navidrome/music# cat /etc/rsyncd.conf 
# sample rsyncd.conf configuration file

# 这部分是全局设置,对下面所有模块都有效,是所有模块共有。
# 每个模块,指用方括号括起来的部分
# 这个配置中只有一个模块,music模块

# GLOBAL OPTIONS

#motd file=/etc/motd
#log file=/var/log/rsyncd
# for pid file, do not use /var/run/rsync.pid if
# you are going to run rsync out of the init.d script.
# The init.d script does its own pid file handling,
# so omit the "pid file" line completely in that case.
# pid file=/var/run/rsyncd.pid
#syslog facility=daemon
#socket options=

# MODULE OPTIONS

[music]
	comment = navidrome music
	path = /root/navidrome # 指定这个模块可以操作的目录
	use chroot = no # 不要使用chroot. docker的原理之一是用来chroot
#	max connections=10
	lock file = /var/lock/rsyncd
# the default for read only is yes...
	read only = no # 允许上传
	list = yes
	uid = %RSYNC_USER_NAME% # 文件传输者的uid,不清楚干啥的
	gid = *
#	exclude = 
#	exclude from = 
#	include =
#	include from =
#	auth users = 
#	secrets file = /etc/rsyncd.secrets
	strict modes = yes
#	hosts allow =
#	hosts deny =
	ignore errors = no
	ignore nonreadable = yes
	transfer logging = no
#	log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.
	timeout = 600
	refuse options = checksum dry-run
	dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

这里有个示例,也可以看下:Linux系统Rsync服务及配置


windows作为客户端rsync的安装和配置

首先需要在windows上安装rsync。我尝试了下,winget中没有rsync。

winget.exe search rsync
名称   ID            版本   匹配       源
Rclone Rclone.Rclone 1.62.2 Tag: rsync winget

# https://github.com/rclone/rclone/
winget.exe install Rclone.Rclone
winget.exe uninstall Rclone.Rclone

网上查了下,windows使用cwRsync Client。而关于rsync命令的使用,可以参考 rsync 用法教程 - 阮一峰的网络日志。

# 本地与服务端同步
rsync.exe -av local_src_dir/ user_name@your_server:/server_dst_dir

有个比较坑的是,会如下错误:

rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.2]
rsync: [Receiver] safe_read failed to read 4 bytes: Connection reset by peer (104)
rsync error: error in rsync protocol data stream (code 12) at io.c(283) [Receiver=3.2.2]

参考这个Why is this rsync connection unexpectedly closed on Windows?。在使用cwRsync的时候,要用-e参数,指定cwRsync目录下的ssh.exe而不是系统的ssh.exe

后面觉得保存这个命令的用法有点麻烦,写个脚本即可。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

前端开发两年半,我裸辞了

☀️ 前言 一晃两年半过去了,我离开了我的第一份前端开发工作,当你看到这篇文章,我已经离职两个月了,目前仍在艰难求职中,想记录分享一下我的经历,感兴趣的可以继续往下看,希望能给大家一些启示…

Objective-C 混用UITabBar与UINavigation

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 混用UITabBar与UINavigation做app,tab和nav,有时候显示有时候…

03 Web全栈 浏览器内置对象/事件/ajax

浏览器是一个JS的运行时环境,它基于JS解析器的同时,增加了许多环境相关的内容,用一张图表示各个运行环境和JS解析器的关系如下: 我们把常见的,能够用JS这门语言控制的内容称为一个JS的运行环境,常见的运行环…

专业科普:什么是单片机?

一、什么是单片机 单片机诞生于20世纪70年代末,它是指一个集成在一块芯片上的完整计算机系统。单片机具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器&#xff…

Edge浏览器可以多开吗?

问答链接:Edge浏览器可以多开吗? 可以。 如果你的edge浏览器是默认路径安装的,那么打开命令提示符窗口输入以下两条命令即可启动一个数据完全隔离的edge浏览器。 mkdir C:\logs001 "C:\Program Files (x86)\Microsoft\Edge\Applicati…

【宝塔服务器】宝塔通过composer安装TP依赖

屡屡碰壁,安装一个项目,发现没有依赖,需要使用composer安装,没接触过,找了网上也没攻略,自己弄了后有以下问题,经过调整解决了: 报错1:没有安装fileinfo扩展 Loading composer rep…

Linux下RPM软件包管理

目录 1、软件包管理介绍1.1、软件包分类1.2、源码包1.3、RPM包 2、RPM包管理-包命名和依赖性2.1、RPM命名规则2.2、RPM包依赖性 3、RPM包管理-安装升级和与卸载3.1、包全名与包名3.2、RPM安装3.3、RPM包升级3.4、卸载 4、RPM包管理-查询4.1、查询是否安装4.2、查询软件包详细信…

Java集合相关问题

java集合框架体系 数据结构 算法复杂度分析 时间复杂度分析:对代码运行时间所消耗时间多少进行分析空间复杂度分析:对代码运行所占用的内存的大小进行分析 时间复杂度 时间复杂度分析:来评估代码的执行耗时 假如执行每行代码的执行耗时一…

阿里云服务器ping不通如何解决?

阿里云服务器ping不通?什么原因?在安全组中允许【全部 ICMP(IPv4)】,当然阿里云服务器禁ping也是通过配置安全组的ICMP规则来实现的,阿里云服务器网来详细说下安全组开通ping功能教程: 目录 阿里云服务器ping不通的解…

微服务: sleuth和zipkin的用处与zipkin安装使用(下)

目录 0. 上篇传送门: 1. 前言简介 mq安装传送门: 微服务: 01-rabbitmq的应用场景及安装(docker) 1.1 Sleuth是一款分布式跟踪解决方案。 1.2 Zipkin是一个开源的分布式跟踪系统。 2. zipkin安装方式 2.1 windows下安装zipkin: 2.1.0 下载jar包位置 2.1.1 下载后,找…

华为防火墙之NAT技术

1.源NAT 源NAT技术对IP报文的源地址进行转换,将私网IP地址转换成公网IP地址,使大量私网用户可以利用少量公网IP地址访问Internet,大大减少了对公网IP地址的消耗。 源NAT转换的过程如下图所示,当私网用户访问Internet的报文到达防…

银河麒麟系统安装mysql数据库[mysql-5.7.28-linux-glibc2.12-x86_64]

银河麒麟系统安装mysql数据库 1.1 准备材料 mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz MySQL5.7下载地址 https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz 1.1 安装前准备工作 1、检查是否已经安装MySQL [rootlocalhost ~]# rpm …

redismariadb + keepalived 高可用

目录 机器准备 安装后服务 redis 安装redis mariadb 安装mariadb 启动和配置 互为主从同步配置 keepalived keepalived安装 修改主从 keepalived的配置 主从配置-mariadb监控 主从配置-redis监控 查看和使用 Keepalived Mariadb redis 机器准备 两台机器&…

transformer零基础学习

声明:以下文章链接仅用于个人学习与备忘。 基础知识 1:零基础解析教程 [推荐] https://zhuanlan.zhihu.com/p/609271490 2:Transformer 详解 [推荐] https://wmathor.com/index.php/archives/1438/ 3:如何从浅入深理解transfor…

行为型模式--状态模式

目录 举例 状态模式 定义 结构 代码实现 优缺点 优点: 缺点: 使用场景 举例 【例】通过按钮来控制一个电梯的状态,一个电梯有开门状态,关门状态,停止状态,运行状态。每一 种状态改变,都…

STM32外设系列—BH1750

文章目录 一、BH1750简介二、BH1750原理图三、BH1750数据手册3.1 指令集3.2 IIC通信读/写 四、BH1750程序设计4.1 IIC程序4.2 BH1750初始化程序4.3 读取BH1750测量结果4.4 获取光照强度4.5 相关宏定义 五、应用实例六、拓展应用6.1 实时调节LED亮度6.2 实时调整颜色阈值 一、BH…

C++【位图/布隆过滤器—海量数据处理】

文章目录 一、位图(1)位图概念介绍(2)简单模拟实现(3)位图应用 二、布隆过滤器(1)关于布隆过滤器概念及介绍(2)布隆过滤器的使用场景(3&#xff0…

【前端布局篇】浮动、定位、弹性布局,固比固、双飞翼、圣杯布局

一、布局方式介绍 布局模型是基于盒模型基础上进行的拓展,关于布局有流式布局(标准的布局),浮动布局、定位布局、flex布局等。 1.1 标准流(流动模型) 描述:元素按照自己默认的元素类型在页面…

Unity3D 连接MySQL数据库

1、MySQL下载安装运行 详见:MySQL下载安装运行 2、使用mysql-connector-net (1)官方下载地址:https://downloads.mysql.com/archives/c-net/,下载后直接双击安装即可。 提示:不要使用版本过高的connect…

Jmeter(三) - 从入门到精通 - 测试计划(Test Plan)的元件(详解教程)

1.简介 上一篇中我已经教你如何通过JMeter来创建一个测试计划(Test Plan),那么这一篇我们就将JMeter启动起来,创建一个测试计划(Test plan),然后现在给大家介绍一下测试计划(Test P…