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

这篇具有很好参考价值的文章主要介绍了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共享文件

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


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

后面觉得保存这个命令的用法有点麻烦,写个脚本即可。文章来源地址https://www.toymoban.com/news/detail-512990.html

到了这里,关于Linux服务器同步Windows目录同步-rsync的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows搭建NTP服务器——搭建时间同步服务器

    本环境搭建环境是windows2012R2 在Windows 服务器下,按住“ windows+r ”打开“运行”对话框,输入regedit,点击“确定”打开注册表。 依次打开HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeParametersType 鼠标双击Type 文件; 弹出对话框,在数据数值(V)项输入 NTP,单击确定 按照此

    2023年04月25日
    浏览(58)
  • windows2012部署的WSUS服务器无法连接微软服务器无法同步

    同步时,出现HTTP错误,详细信息如下: WebException: 基础连接已经关闭: 发送时发生错误。 --- System.IO.IOException: 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。 在 System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)    在 System.Web.Services.Protoc

    2024年02月08日
    浏览(49)
  • linux服务器文件实时同步

    在做系统集群部署时,涉及到两个或多个服务器之间文件同步.在软件层面linux服务环境找到以下两种同步方式 利用linux NFS功能将网络共享文件挂载成本地目录 采用文件监听,实时推送 服务器资源如下 服务器1 10.2.4.51 ,作为主服务器 服务器2 10.2.4.52 ,作为从服务器 2.1 主服务器

    2024年03月09日
    浏览(67)
  • linux两台服务器时间同步

    让Linux两台服务器时间同步,可以通过网络时间协议(NTP)来实现。NTP是一种可以在网络时间服务器和客户端之间同步时间的协议,通过使用NTP,可以保证网络中的所有计算机时间的准确性。 在服务器1上安装NTP服务: 编辑ntp配置文件/etc/ntp.conf,将server字段改为服务器1的IP地

    2024年02月09日
    浏览(45)
  • 局域网ntp服务器设置(windows时间同步服务器NetTime)(ubuntu systemd-timesyncd ntp客户端)123端口、ntp校时、ntp同步

    客户有个局域网,局域网里面有的设备,时间都不一致,导致交互的时候可能出现问题; 现在刚好有台主机,有两个以太网接口,其中一个可以连外网,能获取到网络时间,我们可以把这台主机做成ntp服务器,供局域网内其他主机做时间同步; 以下是相关操作方法步骤; 打

    2024年02月04日
    浏览(54)
  • Linux:服务器间同步文件的脚本(实用)

    比如有三台服务器, hadoop102、hadoop103、hadoop104 ,且都有 atguigu 账号 循环复制文件到所有节点的相同目录下,且脚本可以在任何路径下使用 1、查看环境变量 2、进入 /home/atguigu/bin 目录 在该目录下创建脚本,则该脚本可以在任何路径下使用,因为,这个路径添加在环境变量中

    2024年04月28日
    浏览(41)
  • Linux服务器与群晖rsync同步,linux服务器通过rsync的方式备份数据到群晖

    准备需要备份linux服务器的配置,安装rsync即可 1.登录群晖服务器,点击套件中心  2.点击红色框框,跳转到套件界面 3.点击Active Backup for Business 4.点击文件服务器-添加服务器-选择rsync服务器-下一步 5.填写远程服务器信息 6.在群晖系统上创建备份任务 打开群晖的Active Backup fo

    2024年02月10日
    浏览(54)
  • Linux -- Web服务器 快速搭建静态网站,替换默认网页目录

    先简单写个 页面          我们给网页写了一行内容 作为 静态网页的内容 ( 当然了,写的相当简单,您先理解着看)         可以看到的是,我们将内容 定向到了一个文件里,         这个文件的路径 (  /var/www/html  )熟悉不熟悉???         ===            

    2023年04月19日
    浏览(52)
  • Linux部署NTP时间服务器实现内外网时间同步

            NTP(Network Time Protocol)是网络时间协议,它的作用是同步网络中每台计算机的时间,使他们处于相同的时间环境,确保服务或软件在计算机中正常运行。         在ntp时间同步架构中,节点分为服务端(server)和客户端(client),server端配置为ntp时钟源,用来为

    2024年04月16日
    浏览(46)
  • 局域网ntp服务器设置(windows时间同步服务器NetTime)(ubuntu systemd-timesyncd ntp客户端)123端口、ntp校时、ntp同步(123端口UDP入站流量)

    客户有个局域网,局域网里面有的设备,时间都不一致,导致交互的时候可能出现问题; 现在刚好有台主机,有两个以太网接口,其中一个可以连外网,能获取到网络时间,我们可以把这台主机做成ntp服务器,供局域网内其他主机做时间同步; 以下是相关操作方法步骤; 打

    2024年01月23日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包