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-meanread only = yes # home目录只读create mask = 0700 # 创建文件的默认权限directory mask = 0700 # 创建目录的默认权限;   valid users = %S # 默认任何人都可以连接,每个人使用自己的用户名和密码验证。这里可以限制只有允许的人可以访问
[music]comment = navidrome musicvalid users = root # 只用root用户可以访问这个共享目录force user = rootforce group = root; public = yes # 不用验证直接访问path = /root/navidrome/music # 共享路径browseable = yes # 每个人都能看到存在此共享目录read only = noavailable = yes # 这个共享目录可以使用create mask = 0755directory 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 musicpath = /root/navidrome # 指定这个模块可以操作的目录use chroot = no # 不要使用chroot. docker的原理之一是用来chroot
#	max connections=10lock file = /var/lock/rsyncd
# the default for read only is yes...read only = no # 允许上传list = yesuid = %RSYNC_USER_NAME% # 文件传输者的uid,不清楚干啥的gid = *
#	exclude = 
#	exclude from = 
#	include =
#	include from =
#	auth users = 
#	secrets file = /etc/rsyncd.secretsstrict modes = yes
#	hosts allow =
#	hosts deny =ignore errors = noignore nonreadable = yestransfer logging = no
#	log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.timeout = 600refuse options = checksum dry-rundont 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

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LangChain-Agent自定义Tools类 ——输入参数篇(二)

给自定义函数传入输入参数,分别有single-input 参数函数案例和multi-input 参数函数案例: from langchain.agents import Tool from langchain.tools import BaseTool from math import pi from typing import Union from math import pi from typing …

金蝶云星空财务软件被locked勒索病毒攻击后如何更快解密数据库数据?

金蝶云星空财务软件是一款广泛应用于企业财务管理领域的软件,然而,近期很多企业的金蝶云星空财务软件遭受到了locked勒索病毒的攻击,导致数据库数据被加密。而这次的locked勒索病毒采用了新的加密形式,它不仅能够扫描出各种软件系…

LLM 应用参考架构:ArchGuard Co-mate 实践示例

随着,对于 LLM 应用于架构领域探索的进一步深入,以及 ArchGuard Co-mate 开发进入深入区,我们发现越来越多的通用模式。 在先前的文章里,我们总结了一系列的设计原则,在这篇文章里,我们将介绍 ArchGuard Co…

数字信号的载波传输

从信号传输质量来看,数字系统优于模拟系统。 由于数字基带信号的频谱包含低频成分,而许多重要的通信信道是带通型的,比如无线信道和许多有线信道,这时需要调制成数字频带信号。 数字调制与模拟调制原理基本相似,有调幅…

STM32单片机(三)第二节:GPIO输出练习3(蜂鸣器)

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…

UWB超宽带定位技术的原理及定位方法

uwb定位技术即超宽带技术,它是一种无载波通信技术,利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。传统的定位技术是根据信号强弱来判别物体位置,信号强弱受外界 影响较大,因此定位出的物体位置与实际…

centos8.x系统安装K8S,kubernetes集群v1.23.9,docker支持的最后一个版本

1. 部署环境主机(条件说明) 卸载podman,centos默认安装了podman容器(不管有没有,执行下总没错),可能与docker存在冲突 #环境准备 master 192.168.186.128 CentOS Linux release 8.5 (Core) n…

CentOS 挂载ntfs格式U盘

1、查看磁盘信息 fdisk -l 如上图所示,可以看到插入的U盘/dev/sdc 2、查看磁盘块信息 lsblk 如上图所示,sdc即是插入的U盘,sdc1为磁盘块,挂载的时候使用sdc1 3、查看磁盘文件系统类型 parted -l 如上图所示,U盘是WD…

Electron + ts + vue3 + vite 项目搭建

Electron 是一个基于 Chromium 和 Node.js 的桌面应用程序开发框架,而 Vue3 则是一种流行的前端框架。将两者结合使用可以快速地打造出跨平台的桌面应用程序。在这种组合中,Electron 提供了强大的桌面应用开发能力,而 Vue3 则提供了易用的 UI…

4.28 白噪声功率谱密度的估计

前一节有下面结论: 什么仿真的白噪声波形是均匀的,均匀的特点是相关函数在0时刻是相关的(自己和自己相关的)0以外时刻都互相不相关

微信小程序——二维码推广海报

&#x1f60a;博主&#xff1a;小猫娃来啦 &#x1f60a;本文核心&#xff1a;本地图片和接口返回二维码制作一体化canvas海报 目录 创建一个画布通过canvas API绘制图像细节1 长按保存细节2 创建一个画布 在微信小程序中&#xff0c;我们使用<canvas>标签来创建一个画布…

Multi-sensor KIT 多传感器开发板

1.前言 经过一段时间的思考后&#xff0c;我决定设计一款能够兼容多个传感器的开发板。这个开发板由核心底板和扩展板组成&#xff0c;其中核心底板预留了多路的I2C、SPI、UART、ADC等接口&#xff0c;而扩展板则兼容了QMI8658A-EVB和CH101/201-EVB的支持。这个设计可以让我更…