Windows 环境多服务文件同步

news/2025/1/11 18:42:03/文章来源:https://www.cnblogs.com/valu/p/18199749

多服务器文件同步的目标是将 SSCMS 系统生成的站点文件以及图片、附件等站点资源文件同步至独立服务器并对外提供访问,以避免直接将 SSCMS 系统暴露在外网。

我们推荐使用免费开源的 rsync 软件进行跨服务器文件同步,除了 rsync 软件之外,您也可以使用其他第三方软件进行文件同步。

通常,为了避免将管理后台暴露在外的风险,我们不会同步管理后台 ss-admin 文件夹,如果站点为纯静态页面,不包含登录、搜索、点击量统计等互动功能,我们可以只同步站点文件夹,如果包含互动功能,可以同步除 ss-admin 文件夹以外的所有文件,以保证 API 能够正常访问。

rsync 软件在 Windows 操作系统下的名称为 cwRsync,使用 cwRsync 来同步文件时,当源服务器文件修改后,目标服务器将自动同步文件,包括文件的更新、删除、重命名等均将同步至目标服务器。

1、下载安装文件:

cwRsync 包含服务器端(需要在源服务器中安装)安装包以及客户端(需要在目标服务器中安装)安装包,下载地址:

服务端下载:cwRsyncServer_4.1.0_Installer.exe(opens new window)

客户端下载:cwRsync_4.1.0_Installer.exe(opens new window)

2、服务端安装:

服务端服务器即源服务器,通常为 SSCMS 系统所在的服务器。

下载后双击运行文件 cwRsyncServer_4.1.0_Installer.exe,点击下一步,安装过程中会在当前系统下生成 SvcCWRSYNC 账户(可自定义),用来启动 RsyncServer 服务,该账户的密码是随机生成的,建议修改。如果安装完成系统中未出现这个账户,可能是操作被拦截,可以手动建立。

 

 

 

 

 

3、服务端配置

打开安装目录(默认为:C:\Program Files (x86)\ICW),编辑文件 rsyncd.conf

use chroot = false                #不使用chroot
strict modes = false              #静态模式
log file = rsyncd.log             #log文件名,可以指定路径
pid file = rsyncd.pid             #pid文件名,可以指定路径
port = 873                        #默认端口873
uid = 0                           #不指定uid,不加这一行将无法使用任何账户
gid = 0                           #不指定gid
max connections = 10              #最大连接数10# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygdrive/c/work
# 和linux不同的是windows的备份目录前面都要加/cygdrive[SVN]                                   #同步模块名称(可用方便好记的名称)
path = /cygdrive/d/Repositories         #需要备份的路径(服务端D盘Repositories目录)
read only = false                       #只读
transfer logging = yes                  #记录传输日志
ignore errors                           #忽略无关的IO错误
list = no                               #不列文件表
hosts allow = 192.168.1.0/255.255.255.0 #允许访问的IP多个用英文逗号,分割
hosts deny = *                          #不允许hosts allow以外的任何IP访问
include from = etc/rsyncd.ncac.include  #需要同步的目录或者文件 (可设置可不设置)
exclude from = etc/rsyncd.ncac.exclude  #不同步的目录或者文件
auth users = SvcCWRSYNC                 #认证用户名
secrets file = rsync.secrets            #认证用户的用户名和密码存储位置

以上代码需要注意的是文件目录的写法,比如 C:\Program Files (x86)\ICW 需要表示为 /cygdrive/c/Program Files (x86)/ICW

在 cwRsyncServer 的安装目录下,使用记事本程序建立一个 rsync.secrets 的文件,在里面添加用户名和密码等信息,例如 SvcCWRSYNC:J1yv3SIZe3m56f

注:用户名是可以重新指定的,但是要在该用户名和密码建立的前提下才可以。

在 Windows 管理工具中打开服务,或者在运行中输入 services.msc 打开服务,启动 RsyncServer 服务,为了使用方便,你可以将 RsyncServer 服务的属性修改为自动启动,然后在使用 netstat –an 命令看 8173 端口是否被监听。

 

提示

如果 RsyncServer 服务重启之后报错,则需要删除安装目录下 .pid 文件,此文件会跟着服务启动以后重新创建。

4、客户端安装

客户端服务器即终端服务器,通常为发布后的静态网站所在的服务器。

下载后双击运行 cwRsync_4.1.0_Installer.exe 文件,按照向导安装,客户端无需编辑配置文档,直接安装下一步即可。

系统变量中,将客户端的程序目录添加进 PATH 变量,注意,不是安装目录的根目录,而是程序的目录,即 bin 目录。

前文系统变量输入之后,该命令就可以直接运行,如果未成功,可以 CD 跳转到 BIN 目录,再运行命令。

打开命令行窗口,由于必须要在 rsync.exe 所在目录下运行命令,所以先 cd 到 cwRsync 的 bin 目录下,然后在执行命令:

cd 'C:\Program Files (x86)\cwRsync\bin'
rsync.exe -avzP --progress --delete --password-file=/cygdrive/c/SvcwRsync.ps<p.txt

rsync.exe 命令可选参数:

参数说明
-a 全部,相当于-rlptgoD
-r 递归
-l 链接文件,意思是拷贝链接文件
-p 表示保持文件原有权限
-t 保持文件原有时间
-g 保持文件原有用户组
-o 保持文件原有属主
-g 保持文件原有用户组
-D 相当于块设备文件
-v 详细模式输出
-z 传输时压缩
-P 显示传输进度
--progress 显示备份同步过程
--delete 删除 Client 中有 Server 没有的文件
--password-file 账户@ip::模块名 表示 Rsync 服务器,如果服务端没有配置用户名并允许匿名,则可以不加账户

最后传递的参数 /cygdrive/d/wwwroot 表示同步到本地目录 D:\wwwroot 下。

运行成功屏幕显示password,此时输入账户对应的密码即可开始同步。

5、设置计划任务

为了避免人工定时操作,可以将命令编辑为 bat 文档,再添加到任务计划中。

创建一个批量处理脚本 rsync.bat,放到客户端安装目录的 bin 文件夹下,内容如下:

@echo off
set RSYNC_HOME= C:\Program Files\cwRsync\bin
cd %RSYNC_HOME%
rsync.exe -avzP --progress --delete --password-file=/cygdrive/c/rsync.password<p.txt administrator@192.168.1.10::SVN /cygdrive/e/SvnBackupData

接下来,在 Windows 管理工具 下打开 计划任务程序,执行以下操作:

 

 

 

 

 

 

 

 至此,计划任务配置完成。

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

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

相关文章

【Python】强化学习SARSA走迷宫

之前有实现Q-Learning走迷宫,本篇实现SARSA走迷宫。 Q-Learning是一种off-policy算法,当前步采取的决策action不直接作用于环境生成下一次state,而是选择最优的奖励来更新Q表。 更新公式:SARSA是一种on-policy算法,当前步采取的策略action既直接作用于环境生成新的state,…

编译mmdetection3d时,无root权限下为虚拟环境单独创建CUDA版本

在跑一些深度学习代码的时候,如果需要使用mmdetection3d框架,下载的pytorch的cudatoolkit最好需要和本机的cuda版本是一样的,即输入nvcc -V命令后显示的版本一样。 但是如果是在学校里,一般是服务器管理员装的cuda驱动是啥版本,cudatoolkit就是啥版本,且非root用户改变不…

原型设计工具

当下主流的原型设计工具有Axure、Figma、Pixso、墨刀。 一.Axure Axure,全称叫做 Axure RP 。Axure是一款功能强大的原型设计工具,被广泛用于用户体验(UX)和用户界面(UI)设计。这算是目前原型图领域最常用的工具,有着丰富的交互设计功能,可创建各种高保真、低保真的交互…

前端传递不同格式时间后端统一转化

这几天遇到了一个问题,就是我后端再接受查询条件的时候,关于条件我都是用 TimeQuery 来接受的,但是因为前端的比较混乱,就导致了有些传参是年月日,有些传参是年月日时分秒格式,就导致我后端一直出转化异常的错误,当时就是叫前端传参都用下统一的格式 package com.state.…

XYCTF2024

XYCTF2024 warm up 又是md5 源码 <?php include next.php; highlight_file(__FILE__); $XYCTF = "Warm up"; extract($_GET);if (isset($_GET[val1]) && isset($_GET[val2]) && $_GET[val1] != $_GET[val2] && md5($_GET[val1]) == md5(…

一文彻底整明白,基于Ollama工具的LLM大语言模型Web可视化对话机器人部署指南

在上一篇博文中,我们在本地部署了**Llama 3 8B**参数大模型,并用 Python 写了一个控制台对话客户端,基本能愉快的与 Llama 大模型对话聊天了。但控制台总归太技术化,体验不是很友好,我们希望能有个类似 ChatGPT 那样的 Web 聊天对话界面,本博文就安排起来……在上一篇博文…

常见Windows图标和缩略图问题的解决方法 steam图标变白、变地球

常见Windows图标和缩略图问题的解决方法 steam图标变白、变地球原文地址:https://itxiaozhang.com/common-windows-icon-thumbnail-issues-solutions/ 此教程配合视频学习效果最佳,视频教程在文章末尾。Windows桌面图标问题指南 在使用Windows操作系统时,我们经常会遇到各种…

使用GET方法访问网站

使用GET方法访问网站 服务器接收get参数 server.pyimport flask app = flask.Flask(__name__) @app.route(/) def index():province = flask.request.args.get(province)city = flask.request.args.get(city)print(province, city)return province+","+citydebug=Tru…

m基于BP译码算法的LDPC编译码matlab误码率仿真,对比不同的码长

1.算法仿真效果 matlab2022a仿真结果如下:2.算法涉及理论知识概要低密度奇偶校验码(Low-Density Parity-Check, LDPC)是一种高效的前向纠错码,因其优越的纠错性能和近似香农限的接近程度而广泛应用于现代通信系统中。LDPC码的编译码算法众多,其中Belief Propagation(BP)…

免费解锁Windows 11的HEVC支持:轻松播放4K电影的详细步骤

Windows 11的HEVC支持Windows 11 安装完成后,用电影和电视这个应用打开4K或者8K的MP4文件时,提示缺少解码器 以下就是本人解决过程 第一步:查找HEVC扩展的Microsoft Store页面 (本人直接浏览器打开:https://apps.microsoft.com/,搜索HEVC扩展,得到以下页面)复制地址栏的…

轻松玩转Python文件操作:移动、删除

哈喽,大家好,我是木头左!Python文件操作基础 在处理计算机文件时,经常需要执行如移动和删除等基本操作。Python提供了一些内置的库来帮助完成这些任务,其中最常用的就是os模块和shutil模块。这两个模块包含了许多与文件和目录操作相关的函数。 理解os模块 os模块是Python中…

解决Python执行命令时路径空格引发的困扰

哈喽,大家好,我是木头左!在编程实践中,常常需要通过Python执行系统命令,这包括调用外部程序、脚本或是其他命令行工具。然而,一个看似简单却常被忽视的细节——文件路径中的空格,可能会导致程序意外崩溃或行为异常。本篇文章将深入探讨当路径中包含空格时,如何在Python…