前言:

一、为什么要用Rsync+sersync架构?

1、sersync是基于Inotify开发的,类似于Inotify-tools的工具

2、sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字,然后使用rsync同步的时候,只同步发生变化的这个文件或者这个目录。


二、Rsync+Inotify-tools与Rsync+sersync这两种架构有什么区别?

1、Rsync+Inotify-tools

(1):Inotify-tools只能记录下被监听的目录发生了变化(包括增加、删除、修改),并没有把具体是哪个文件或者哪个目录发生了变化记录下来;

(2):rsync在同步的时候,并不知道具体是哪个文件或者哪个目录发生了变化,每次都是对整个目录进行同步,当数据量很大时,整个目录同步非常耗时(rsync要对整个目录遍历查找对比文件),因此,效率很低。

2、Rsync+sersync

(1):sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字;

(2):rsync在同步的时候,只同步发生变化的这个文件或者这个目录(每次发生变化的数据相对整个同步目录数据来说是很小的,rsync在遍历查找比对文件时,速度很快),因此,效率很高。

小结:当同步的目录数据量不大时,建议使用Rsync+Inotify-tools;当数据量很大(几百G甚至1T以上)、文件很多时,建议使用Rsync+sersync。

环境说明:

操作系统:CentOS 7.0

源服务器:192.168.1.51

目标服务器:192.168.1.52

目的:

把源服务器上/data/image /data/pic两个目录

实时同步到目标服务器的data/image /data/pic


具体操作:

一、目标服务器安装Rsync服务端

1、关闭SELINUX

vi /etc/selinux/config

SELINUX=disabled

setenforce 0#立即生效

2. 配置防火墙IPTABLES

[root@master2 ~]# vim /etc/sysconfig/iptables

增加规则:-A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT

iptables -L -v -n 查看防火墙状态,873端口是否开放


3、检查是否安装rsync

[root@master2 ~]# rpm -qa|grep rsync

rsync-3.0.9-15.el7.x86_64


4、配置rsync的配置文件


vim /etc/rsyncd.conf

#Rsync configuration:

uid = root

gid = root

use chroot = no

port = 873

max connections = 2000

timeout = 200

log file = /var/run/rsyncd.log

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsyncd.lock

read only = false

auth users = lyc

secrets file = /etc/rsyncd.secret

hosts allow = 192.168.1.0/255

hosts deny = 0.0.0.0/32

list = yes

ignore errors = yes


[image]

path = /data/image


[pic]

pate = /data/pic


注解

#Rsync configuration:

uid = root #设置rsync运行权限为root

gid = root #设置rsync运行权限为root

use chroot = no # 安全相关,默认为true,修改为no,增加对目录文件软连接的备份

port = 873 # 指定rsync服务的默认端口号

max connections = 2000 # 并发连接数

timeout = 200 # 超时时间(秒)

log file = /var/run/rsyncd.log # 指定日志文件位置,启动rsync后自动产生这个文件,无需提前创建

pid file = /var/run/rsyncd.pid # 指定rsync的pid目录

lock file = /var/run/rsyncd.lock # 指定rsync的锁文件【重要】,支持max connections参数的锁文件

read only = false # no客户端可上传文件,yes只读

auth users = lyc #执行数据同步的用户名,可以设置多个,用英文状态下逗号隔开

secrets file = /etc/rsyncd.secret #用户认证配置文件,里面保存用户名称和密码,后面会创建这个文件

hosts allow = 192.168.1.0/255 #允许进行数据同步的客户端IP地址段,可以设置多个,用英文状态下逗>号隔开

hosts deny = 0.0.0.0/32 #禁止数据同步的客户端IP地址,这里设置了不禁止

#################################################

[image] # 模块

path = /home/ces/ #rsync服务端数据目录路径


5、创建rsync同步密码文件,并设置权限为600

[root@master2 ~]# echo "lyc:test123" > /etc/rsyncd.secret

[root@master2 ~]# chmod 600 /etc/rsyncd.secret

[root@master2 ~]# ll //etc/rsyncd.secret

-rw------- 1 root root 14 4月 18 09:25 /[root@master2 ~]# cat /etc/rsyncd.secret

lyc:test123


6.启动rsync守护进程,并写入开机自启动

[root@master2 ~]# rsync --daemon

[root@master2 ~]# ps -ef | grep rsync

root 1662 1 0 09:34 ? 00:00:00 rsync --daemon

root 6310 6068 0 17:02 pts/0 00:00:00 grep --color=auto rsync

[root@master2 ~]# netstat -nulpt| grep rsync

tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 1662/rsync

tcp6 0 0 :::873 :::* LISTEN 1662/rsync

设置开机自启动,写入到/etc/rc.local里面

vim /etc/rc.local

# rsync server progress

/usr/bin/rsync --daemon --config=/etc/rsyncd.conf

7.创建相关待同步的目录/home/ces/并授予权限

[root@master2 ~]# mkdir -p /data/image/data/pic

[root@master2 ~]# chown -R root.root /data/image


二、在源服务器安装配置Rsync服务端+配置sersync

1、按照上面步骤配置按照Rsync服务端,需要注意的是创建rsync同步密码文件,内容只需要填写密码:test123

[root@master1 ~]# echo "test123" > /etc/rsyncd.secret

[root@master1 ~]# chmod 600 /etc/rsyncd.secret

[root@master1 ~]# ll -rw------- 1 root root 14 4月 18 09:25 /etc/rsync.password

[root@master1 ~]# cat /etc/rsyncd.secret

test123

2、手动测试rsync同步情况,此步非常关键,如果测试不成功,后面的sersync配好了也不会同步数据。

[root@master1 lyc]# rm -rf /test/

[root@master1 lyc]# mkdir -p /test/

[root@master1 lyc]# touch /test/lyc{1,2,3}{a,b,c}

[root@master1 lyc]# ls /test/

lyc1a lyc1b lyc1c lyc2a lyc2b lyc2c lyc3a lyc3b lyc3c


[root@master1 lyc]# rsync -avzP /lyc/ lyc@192.168.1.52::rsync --password-file=/etc/rsyncd.secret

sending incremental file list

./

lyca

0 100% 0.00kB/s 0:00:00 (xfer#1,to-check=11/13)

lycb

0 100% 0.00kB/s 0:00:00 (xfer#2,to-check=10/13)

lycc

0 100% 0.00kB/s 0:00:00 (xfer#3,to-check=9/13)

lycca

0 100% 0.00kB/s 0:00:00 (xfer#4,to-check=8/13)

lyccb

0 100% 0.00kB/s 0:00:00 (xfer#5,to-check=7/13)

lyccc

0 100% 0.00kB/s 0:00:00 (xfer#6,to-check=6/13)

lycla

0 100% 0.00kB/s 0:00:00 (xfer#7,to-check=5/13)

lyclb

0 100% 0.00kB/s 0:00:00 (xfer#8,to-check=4/13)

lyclc

0 100% 0.00kB/s 0:00:00 (xfer#9,to-check=3/13)

lycya

0 100% 0.00kB/s 0:00:00 (xfer#10,to-check=2/13)

lycyb

0 100% 0.00kB/s 0:00:00 (xfer#11,to-check=1/13)

lycyc

0 100% 0.00kB/s 0:00:00 (xfer#12,to-check=0/13)

sent 550 bytes received 239 bytes 1578.00 bytes/sec

total size is 0 speedup is 0.00


3、在源服务器上执行推送命令后,在目的服务器上查看同步目录/home/ces中的内容,如果内容同步完成,进行sersync的配置;未完成,检查rsync配置及认证用户密码信息。


三、源服务器上开始部署sersync服务

1、下载sersync

[root@master1 lyc]#wget -chttps://sersync.googlecode.com/files/sersync2.5.4_64bit_binary_stable_final.tar.gz

[root@master1 lyc]#tar -zxf sersync2.5.4_64bit_binary_stable_final.tar.gz-C/usr/local/

[root@master1 lyc]#mvGNU-Linux-x86/usr/local/sersync

由于谷歌的原因,不能成功下载的话,请手动下载上传到源服务器端


2、配置sersync

[root@master1 local]#mkdir -p sersync/bin sersync/image sersync/pic

[root@master1 local]#cp sersync/confxml.xmlsersync/image/

[root@master1 local]#mv sersync/serynce2sersync/bin/



3、修改配置文件image/confxml.xml、pic/confxml.xml

[root@master1 local]#vimsersync/image/confxml.xml


<?xml version="1.0" encoding="ISO-8859-1"?>

<head version="2.5">

<host hostip="localhost" port="8008"></host>

<debug start="false"/>

<fileSystem xfs="false"/>

<filter start="false">

<exclude expression="(.*)\.svn"></exclude>

<exclude expression="(.*)\.gz"></exclude>

<exclude expression="^info/*"></exclude>

<exclude expression="^static/*"></exclude>

</filter>

<inotify>

<delete start="true"/>

<createFolder start="true"/>

<createFile start="false"/>

<closeWrite start="true"/>

<moveFrom start="true"/>

<moveto start="true"/>

<attrib start="false"/>

<modify start="false"/>

</inotify>


<sersync>

<localpath watch="/data/image">

<remote ip="192.168.1.52" name="image"/>

<!--<remote ip="192.168.8.39" name="tongbu"/>-->

<!--<remote ip="192.168.8.40" name="tongbu"/>-->

</localpath>

<rsync>

<commonParams params="-artuz"/>

<auth start="true" users="lyc" passwordfile="/etc/rsyncd.secret"/>

<userDefinedPort start="true" port="873"/><!-- port=874 -->

<timeout start="true" time="200"/><!-- timeout=100 -->

<ssh start="false"/>

</rsync>

<failLog path="/tmp/rsync_fail_log.sh" timetoExecute="60"/><!--default every 60mins execute once-->

<crontab start="false" schedule="600"><!--600mins-->

<crontabfilter start="false">

<exclude expression="*.PHP"></exclude>

<exclude expression="info/*"></exclude>

</crontabfilter>

</crontab>

<plugin start="false" name="command"/>

</sersync>



<plugin name="command">

<param prefix="/bin/sh" suffix="" ignoreError="true"/> <!--prefix /opt/tongbu/mmm.sh suffix-->

<filter start="false">

<include expression="(.*)\.PHP"/>

<include expression="(.*)\.sh"/>

</filter>

</plugin>

<plugin name="socket">

<localpath watch="/opt/tongbu">

<deshost ip="192.168.138.20" port="8009"/>

</localpath>

</plugin>

<plugin name="refreshCDN">

<localpath watch="/data0/htdocs/cms.xoyo.com/site/">

<cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" passwd="xxxx"/>

<sendurl base="http://pic.xoyo.com/cms"/>

<regexurl regex="false" match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/>

</plugin>

</head>


[root@master1 local]#vimpic/confxml.xml

<?xml version="1.0"encoding"ISO-8859-1"?>

<headversion"2.5">

<hosthostip="localhost"port="8008"></host>

<debugstart"false"/>

<fileSystemxfs <filter"false">

<excludeexpression"(.*)\.svn"></exclude>

"(.*)\.gz"></exclude>

"^info/*"></exclude>

"^static/*"></exclude>

</filter>

<inotify>

<delete"true"/>

<createFolder <createFile <closeWrite <moveFrom <moveto <attrib <modify </inotify>


<sersync>

<localpathwatch="/data/pic" <remoteip="192.168.1.52"name="pic"/>

<!--<remote ip="192.168.8.39" name="tongbu"/>-->

<!--<remote ip="192.168.8.40" name="tongbu"/>-->

</localpath>

<rsync>

<commonParamsparams"-artuz"/>

<auth="true"users="lyc"passwordfile="/etc/rsyncd.secret"/>

<userDefinedPort"true""873"/><!-- port=874 -->

<timeout"true"time"200"/><!-- timeout=100 -->

<sshstart="false"/>

</rsync>

<failLogpath="/tmp/rsync_fail_log.sh"<!--default every 60mins execute once-->

<crontabschedule"600"><!--600mins-->

<crontabfilter <exclude"*.PHP"></exclude>

"info/*"></exclude>

</crontabfilter>

</crontab>

<plugin="false"="command" </sersync>



>

<paramprefix"/bin/sh"suffix""ignoreError/><!--prefix /opt/tongbu/mmm.sh suffix-->

<filter>

<includeexpression="(.*)\.PHP""(.*)\.sh" </filter>

</plugin>

<plugin"socket">

="/opt/tongbu"<deshost="192.168.138.20"="8009" </localpath>

</plugin>

="refreshCDN"="/data0/htdocs/cms.xoyo.com/site/"<cdninfodomainname="ccms.chinacache.com"="80"username="xxxx"passwd/>

<sendurlbase="http://pic.xoyo.com/cms"<regexurlregexmatch="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images" </plugin>

</head>


只需要修改以下配置:

24行:<localpath="/data/image"> #源服务器本地同步目录

25行:<remote="image"/> #目的服务器同步目录

31行:<auth/> #指定rsync的用户和密码文件

32行:<userDefinedPort<!-- port=874 --> #指定rsync的端口

33行:<timeoutstart="true"time"200"<!-- timeout=100 --> #超时时间(秒)




4、创建源服务器端同步目录

[root@master2 ~]# mkdir -p /data/image/data/pic

[root@master2 ~]# chown -R root.root/data/image/data/pic



5、把sersync的执行脚本加入到PATH并启动sersync

[root@master1 ces]#echo "export PATH=$PATH:/usr/local/sersync/bin/" >>/etc/profile

[root@master1 ces]#source/etc/profile

[root@master1 ces]#sersync2 -d -r -o /usr/local/sersync/image/confxml.xml

[root@master1 ces]#sersync2 -d -r -o /usr/local/sersync/confxml.xml

6、启动命令后返回结果如下为正常:

set the system param

execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches

execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events

parse the command param

option: -d run as a daemon

option: -r rsync all the local files to the Remote Servers before the sersync work

option: -o config xml name: /usr/local/sersync/confxml.xml

daemon thread num: 10

parse xml config file

host ip : localhosthost port: 8008

daemon start,sersync run behind the console

use rsync password-file :

user islyc

passwordfile is /etc/rsyncd.secret

config xml parse success

please set /etc/rsyncd.conf max connections=0 Manually

sersync working thread 12 = 1(primary thread) + 1(fail retry thread) + 10(daemon sub threads)

Max threads numbers is: 22 = 12(Thread pool nums) + 10(Sub threads)

please according your cpu ,use -n param to adjust the cpu rate

------------------------------------------

rsync the directory recursivly to the Remote Servers once

working please wait...

execute command: cd /ces && rsync -artuz -R --delete ./ --port=873 --timeout=200 lyc@192.168.1.52::rsync --password-file=/etc/rsyncd.secret >/dev/null 2>&1

run the sersync:

watch path is: /data/image


7、设置开机启动sersync

[root@master1]echo "sersync2 -r -d -o /usr/local/sersync/image/confxml.xml" >> /etc/rc.d/rc.local

/picconfxml.xml" >> /etc/rc.d/rc.local


四、测试

1、源服务器端创建文件

[root@master1]# touch lyc.txt /data/image /data/pic

[root@master1 /]# cd/data/image

[root@master1 image]# ls

lyc.txt

[root@master1 /]# cd/data/pic

[root@master1 pic]# ls

lyc.txt



2、目的服务器端查看

[root@master2 /]# cd /data/image

[root@master2 image]# ls

[root@master2 /]# cd/data/pic

[root@master2 pic]# ls

lyc.txt


3、同步失败解决办法

目的服务器端执行命令

rsync --daemon

源服务器端执行命令

/usr/local/sersync/bin/sersync2 -d -r -o /usr/local/sersync/image/confxml.xml

/usr/local/sersync/bin/sersync2 -d -r -o /usr/local/sersync/picconfxml.xml

Centos7.0系统下Rsync+sersync实现多文件数据实时增量同步的更多相关文章

  1. ios – iPad中的UIPrintInteractionController给了我两个警告

    我正在使用代码在我的应用程序中获取Airprint以将当前视图打印为图像.弹出Airprint对话框,但在日志屏幕中它显示两个警告:1)警告:在iPad上调用–[UIPrintInteractionControllerpresentAnimated:completionHandler:]找不到PDF标题:找不到`%PDF’.2)[UIPopoverController_commonPresentP

  2. ios – Xcode警告:“没有处理文件的规则”和“找不到目录”

    重命名我的项目文件夹后,我收到以下错误消息:什么可能出错?解决方法关于第一个警告,您可以在项目设置中的“构建阶段”中检查XCode,即头文件不会出现在“编译源”列表中.

  3. 你如何将xcode项目转换为cocoapod?

    我有一段代码,我发现我在多个不同的项目中重复使用,所以我想把它变成一个cocoapod并使用私人cocoapod仓库.我的问题是如何将xcode项目设置为cocoapod?它应该是一个静态库还是一个带有appdelegate的空“项目”?

  4. ios – 如何将文件添加到主包的/ Library / Sounds目录中?

    根据Apple’sdocumentation,/Library/Sounds中的声音文件将在尝试播放声音时由系统搜索.如何将声音文件添加到此文件夹?适用于iOS的正确文档应为here总之,您只需将声音文件作为应用程序包的非本地化资源添加到项目中.

  5. ios – 资产目录与文件夹参考:何时使用其中一个?

    我可以将文件放入Assets.xcassets,或者我可以将文件放入文件夹引用.我何时会选择一个而不是另一个?

  6. ios – 从icloud备份中限制sqlite-wal和sqlite-shm

    我是第一次使用coredata,我必须从文档目录中的iCloud备份限制sqlitedb文件,我使用下面的代码完成了它//阻止iCloud备份文档目录文件夹现在我不明白的是,我们还需要从icloud备份中限制sqlite-wal和sqlite-shm文件,如果是,那么如何从icloud备份限制sqlite-wal和sqlite-shm文件我想要一个解决方案,而无需从文档目录文件夹中更改sqlitedb位置…

  7. iOS:如何从文档目录中删除具有特定扩展名的所有现有文件?

    当我更新我的iOS应用程序时,我想删除Documents目录中的任何现有sqlite数据库.现在,在应用程序更新时,我将数据库从软件包复制到文档目录,并通过附加软件包版本来命名它.因此,在更新时,我还想删除可能存在的任何旧版本.我只是希望能够删除所有sqlite文件,而无需循环浏览并查找以前版本的文件.是否有任何方法可以对removeFileAtPath:方法进行通配符?解决方法那么,你想要删除所有*.sqlite文件?

  8. .dylib在Debug中链接,在XCode中找不到适用于iPhone的版本

    所以我已经将libxml2.2.dylib库包含在我的iPhoneXCode项目中,以创建一些Xml和XPath解析实用程序.当我编译并运行在模拟器和设备的调试模式时,我没有问题,但是,当我切换到发布模式我得到…

  9. ios – 从文件目录加载UIImage

    我正在尝试从文件目录加载一个UIImage,并将其设置为UIImageView,如下所示:但是,每当我尝试以上,图像从不加载.该图像在Documents/MyAppCustomDirectory/school.png中.以上是否正确从该目录加载?我也尝试了其他几个:UIImageimageWithContentsOfFile,以及基于SO响应的其他方法.解决方法要获取您应该使用的文档目录:我不太清

  10. Xcode 6 / iOS 8模拟器数据和软件包文件夹脚本

    随着xcode6的最新更改,它看起来像.app文件和文档文件夹不再驻留在iPhone模拟器目录中的同一个文件夹中.以前,我们可以访问目录和.app文件但在Xcode6中,模拟器目录是完全不同的:和其中CryptNumber1,2和3都不同.有没有办法找到包含.app文件的文件夹后,我可以得到相应的文件夹?我有这个麻烦.为什么…?

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部