跳到主要内容

1、winodows到linux

1、实战:从windows同步数据到linux(增量定时同步)-2023.11.30(测试成功)

image-20231016062113861

rsync使用背景

rsync在云服务器和本地pc端都要安装下,方面后续推送下本地pc的静态数据。

winodws pc写好的东西,同步到linux服务器上,单向同步需求。

目录

[toc]

环境

linux服务器:centos7.9.2009 (rsync  version 3.1.2 )
win10 (cwrsync_6.2.12_x64_free)#使用次最新版本即可
  • 软件

链接:https://pan.baidu.com/s/1Kkps6jeW5v8fcUQN7lcw5g?pwd=3w2g 提取码:3w2g 2023.11.30-rsync-winodws客户端软件

image-20240404135506143

1、ecs上配置rsync服务端

  • 服务端配置,安装rsync
# 检查是否安装了 rsync
rpm -qa|grep rsync

# 如果没有安装的话,进行安装
yum install rsync -y

# 将 rsync 设置成开启自启,并启动
systemctl enable rsyncd
systemctl start rsyncd

systemctl restart rsyncd
  • 修改rsync配置文件
[root@mkdocs-server html]# vim /etc/rsyncd.conf
# /etc/rsyncd: configuration file for rsync daemon mode

# See rsyncd.conf man page for more options.

# 进行通信的端口,如果 firewall 打开的话,需要将对应的端口添加进去
port=8730

# 日志文件
log file=/var/log/rsync.log

# rsync 的进程 id
pid file=/var/run/rsync.pid

# 要同步的模块,这里一般以项目名命名
[cmi]

# 同步的目标文件夹
path=/root/rsync

# rsync daemon 在传输前是否切换到指定的 path 目录下,并将其监禁在内,用于增加传输的安全性
use chroot=no

# 指定最大的连接数
max connections=4

# yes 表示只读本地文件无法同步到服务器
read only=no

# 客户端请求显示模块列表时,该模块是否显示出来
list=true

# 服务运行时的用户
uid=root

# 服务运行时的用户组
gid=root

# 进行验证时的用户名,必须是系统存在的用户
auth users = root

# 连接用户时的密码
secrets file=/etc/rsyncd.passwd

# 允许的 ip
hosts allow=*
[root@mkdocs-server html]#

注意:

# 同步的目标文件夹
path=/root/rsync

# 连接用户时的密码
secrets file=/etc/rsyncd.passwd
# 1、创建目标的文件夹
mkdir /root/rsync

# 2、创建密码
# 创建文件夹
vim /etc/rsyncd.passwd
# 写入密码
echo "root:123456" > /etc/rsyncd.passwd #这里写入你自己云服务器的密码就行!!!

#更改文件权限
chmod 600 /etc/rsyncd.passwd

2、windows client上配置rsync

  • 下载地址

https://www.itefix.net/cwrsync-client

image-20230914223602245

image-20230914223643864

  • 安装rsync

双击安装。(将次软件的bin路径添加到自己pc的PATH里。)

D:\software_install2\cwrsync_6.2.12_x64_free\bin

image-20240404135304445

image-20240404135338863

3、winodws同步命令

rsync.exe -avPzruh --delete --port 8730 --password-file=/cygdrive/D/password.txt /cygdrive/D/mkdocs/site root@47.97.48.237::cmi/

说明:

#最新命令:
rsync.exe -avPzruh --delete --port 8730 --password-file=/cygdrive/D/password.txt /cygdrive/D/mkdocs/site root@47.97.48.237::cmi/


-a:归档模式,用于保持文件的属性、权限、时间戳等。
-v:显示详细输出,让您了解文件同步的进度和操作。
-p:显示文件传输的进度条和实时速度。
-z:在传输过程中压缩数据,减少网络带宽的使用。
-r:递归复制目录及其内容。
-u:只复制源中更新或新增的文件到目标目录。 **注意:这个很有用的!!!
-h:可读性大小。
--delete:删除目标目录中不在源中存在的文件和目录。

# cmi_password.txt 密码文件 写入 Linux 端配置的密码即可
# cmi 指代模块,我们这边正好按照

image-20230914223936222

⚠️ 注意:

下面就是 在 windows server 创建计划任务定时执行了。(目前暂不需要)

自己的需求是:编写完文档后,一键执行上传操作。

  • 本次同步命令如下:

最新的推送命令见下文。

::添加自己要执行的任务
echo Push winodws hexo static data to ecs...
rsync.exe -avPzruh --delete --port 8730 --password-file=/cygdrive/D/password.txt /cygdrive/D/hexo/public root@47.97.48.237::cmi/

image-20231017125258749

4、配置定时任务

1、新建D:\docusaurus\resource\shell\rsyncMdImages.bat文件,填入以下内容

::添加自己要执行的任务
echo Push winodws docusaurus static data to ecs...
rsync.exe -avPzruh --delete --port 8730 --password-file=/cygdrive/D/password.txt /cygdrive/D/docusaurus/build root@47.97.48.237::cmi-wiki/

将该文件另存为rysnc.bat文件,编码为ANSI

注:如果编码为utf8,文本中的中文会出现乱码导致执行出错。

2、开启定时任务

批处理完成了,怎么来实现周期性的运行该脚本呢?windows自带了非常强大的定时任务功能。进入计算机管理(此电脑右键“管理”),在系统工具->任务计划程序->任务计划程序库中能看到你电脑所有的定时任务,右键可以创建基本任务。 (或者直接在cmd输入compmgmt.msc

按图中输入名称及描述,点击下一步设置触发器(任务触发时间)

点击下一步设置任务执行操作,这里选择启动程序

选择刚才制作的bat脚本,点击下一步

点击完成创建任务

选择刚创建的任务,右键点击属性打开属性对话框,点击触发器并双击已设置的触发器设置任务重复执行

点击确定完成定时任务设置,右击任务启动任务。

  • 自己最终配置效果如下

1、新建D:\docusaurus\resource\shell\docusaurus.bat文件,填入以下内容

::添加自己要执行的任务
echo Push winodws docusaurus static data to ecs...
rsync.exe -avPzruh --delete --port 8730 --password-file=/cygdrive/D/password.txt /cygdrive/D/docusaurus/build root@47.97.48.237::cmi-wiki/

注意2个密码位置

  • ecs root密码

image-20230916075442783

  • windows上存放ecs密码位置

image-20230916075512684

参考文章

https://blog.csdn.net/qq_39007838/article/details/127562636

image-20230914204511865

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码 x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号 《云原生架构师实战》

image-20230107215126971

🍀 个人博客站点

http://onedayxyy.cn/

image-20231113073017981

image-20231113073039083

🍀 语雀

https://www.yuque.com/xyy-onlyone

image-20231113073101271

🍀 csdn

https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎

https://www.zhihu.com/people/foryouone

image-20230107215203185

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!