GVKun编程网logo

cwRsync 在 windows 环境下的配置及使用(cwrsync使用方法)

3

在本文中,我们将为您详细介绍cwRsync在windows环境下的配置及使用的相关知识,并且为您解答关于cwrsync使用方法的疑问,此外,我们还会提供一些关于C#windows窗体应用程序WordI

在本文中,我们将为您详细介绍cwRsync 在 windows 环境下的配置及使用的相关知识,并且为您解答关于cwrsync使用方法的疑问,此外,我们还会提供一些关于C# windows 窗体应用程序 Word Interop 适用于 Windows 7 但不适用于 Windows 10、CentOS7 下 rsync 服务端与 Windows 下 cwRsync 客户端实现数据同步配置方法、cwRsync、cwRsync 4.0.5 文件同步配置步骤分享的有用信息。

本文目录一览:

cwRsync 在 windows 环境下的配置及使用(cwrsync使用方法)

cwRsync 在 windows 环境下的配置及使用(cwrsync使用方法)

    关于 cwRsync 的作用在此不再过多描述,在整个调研过程中,网上搜索了很多的相关资料,配置过程中也出现了很多细节问题,所以在这里主要针对配置过程中需要注意的地方进行提醒,以及对关键的配置操作进行说明。

    说明:

  1. 两台电脑,我这里用虚拟机(XP)模拟服务端,用本机(win7)模拟客户端。
  2. 服务端 IP:192.168.137.232;本机 IP:192.168.137.134。
    实现目的:将服务端 C:\data 目录中的文件定时同步到客户端 D:\data 目录中去。

    cwRsyncServer(服务端)配置步骤:

   1.  解压 cwRsyncServer_4.1.0_fuq.zip,双击 cwRsyncServer_4.1.0_Installer.exe

    2. 按照安装提示,逐步操作至创建账户的界面,如下图所示。ps:这里创建的账户是操作系统的,创建的这个账户是专门用来运行 cwRsyncServer 服务端程序的。建议这里不要使用安装程序默认提供的账户名和密码,不易记忆,应该创建一个自己常用的、容易记住的账户。当然也可以使用操作系统中已经存在的账户,但这里个人感觉还是创建一个专门的针对 cwRsyncServer 的账户较好,在今后的管理中方便明了。我这里新建了一个 “tongbu” 的账户。

    3.cwRsyncServer 服务程序安装成功后,关闭窗口。然后在系统服务管理界面中找到 RsyncServer 项,将其启动类型改为 “自动”,接着启动服务。

    4. 这一步的操作很重要,需要强调。服务端 C:\data 目录中的文件需要 cwRsyncServer 服务程序来维持同步,而我创建的 “tongbu” 账户是来运行 cwRsyncServer 服务程序的,所以 “tongbu” 账户需要对 C:\data 这个目录有足够的操作权限。这就需要我们来设置一下。

    5. 权限设置完后,修改 cwRsyncServer 的配置文件(安装目录 \ICW\rsyncd.conf)。下图是我应用的配置项,未用到配置项的说明可以到官网查询。

    ps:上图中指定的用户名和密码,可以随意指定的,客户端匹配时也得指定成这里设置的用户名和密码。不像网上有些资料描述的那样,都设置成了安装时所创建的操作系统的账户和密码。

    6. 按照配置文件中的指定,需要在 rsyncd.conf 文件所在的目录下创建密码文件 ——rsync.password。内容为 “用户名:密码”,即 “userdata:123456”。至此服务端的同步配置已经完成了。

    cwRsync 客户端的配置步骤:

    1. 在客户端的机器上解压 cwRsync_4.1.0_kh.zip 后,点击 cwRsync_4.1.0_Installer.exe。

    2. 按照安装程序的提示,逐步点击,直到提示安装成功为止。这里安装过程简单不再截图。

    3. 测试客户端与服务端的连接是否正常。开始 -> 运行 ->cmd,在命令行中输入如下内容:

telnet 192.168.137.232 873

    其中 873 是 cwRsyncServer 默认的端口号,我们也可以在服务端的配置文件进行其他端口的指定使用。

    4. 若客户端与服务端连接成功,会如下图所示。

    如果连接不成功,请查看服务端的防火墙,确保防火墙不阻止 873 端口的访问。



    5. 在客户端创建执行脚本文件,其中写入连接服务端进行同步的命令。在安装目录 \cwRsync\bin 目录下新建 fileRsync.cmd 文件,内容如下。当然创建成批量文件 (.bat) 也是可以的。这里我发现 cwRsync 客户端程序安装完后,我当前登录使用的账户是没有权限在 安装目录 \cwRsync\bin 下创建文件的,所以我将 安装目录 \cwRsync 和 安装目录 \cwRsync\bin 都设定成了我当前登录的账户可以完全控制,具体操作参考上面服务端的权限设定说明。

rsync --port=873 -vzrtopg --progress --delete --password-file=/cygdrive/c/pass/rsync.password userdata@192.168.137.232::t_files /cygdrive/e/test-files

    文件中只写了 rsync 这条执行命令,那么则需要将 安装目录 \cwRsync\bin 设置到环境变量 path 中去。否则在脚本文件中的命令如下。

cd C:\Program Files (x86)\cwRsync\bin
rsync --port=873 -vzrtopg --progress --delete --password-file=/cygdrive/c/pass/rsync.password userdata@192.168.137.232::t_files /cygdrive/e/test-files

    在 rsync 的执行命令中,有很多的配置选项,这些可以参考官方文档。另外还需要注意几点。

  • userdata 就是对应在服务端配置文件中指定的身份验证的用户名。
  • t_files 就是在服务端配置文件中指定的模块名称。
  • /cygdrive/e/test-files 指定将服务端文件同步到客户端的目录。
  • --password-file 指明客户端的身份验证密码文件,跟服务端的那个密码文件是对应的。只不过客户端的密码文件中不需要写认证用户名。这里注意,我在设置的过程中发现密码文件路径中不能有空格,不然会造成命令解析错误的。所以我单独把密码文件放到了 c:\pass 目录下。
    6. 既然上面提到了客户端也需要和服务端对应的密码文件,那么我们需要创建密码文件,在 c:\pass 目录创建 rsync.password 文件,内容为 “123456”。

    7. 在命令行中运行脚本文件,同时观察客户端的同步文件结果目录,发现服务端的文件已经同步到这里,则说明 cwRsync 配置及应用成功。





C# windows 窗体应用程序 Word Interop 适用于 Windows 7 但不适用于 Windows 10

C# windows 窗体应用程序 Word Interop 适用于 Windows 7 但不适用于 Windows 10

如何解决C# windows 窗体应用程序 Word Interop 适用于 Windows 7 但不适用于 Windows 10

我编写了一个应用程序来帮助用户使用 C# 生成字母。我创建了以富文本格式保存在 sql Server 数据库中的模板。我的开发机器是 Windows 7,我使用 Visual Studio 2019 来编写应用程序。我使用 NuGet 添加 Word 的互操作引用。该应用程序配置为面向 x86 的 Release、平台 Active(Any cpu)。它是一个 ClickOnce 应用程序,从共享驱动器安装在一个单独的目录中,但与保存字母的驱动器相同。

该应用程序在我的机器上正常运行,但在 Windows 10 用户机器上运行不正常。当它尝试保存文件时,她收到一条错误消息,提示“抱歉,我们找不到该文件”。我们都有 Word 2016。两台机器都是 64 位。我将这封信保存为 Word 中的备份,然后导出为 PDF。在导出为 PDF 之前,代码无法保存 Word 文档。请参阅下面的代码片段:

  1. public static void SavetoWord2(string CoverLetter,string LetterText,string FileSave,string BackUpSave,ref string ErrorString)
  2. {
  3. try
  4. {
  5. Microsoft.Office.Interop.Word.Application oWord = new Microsoft.Office.Interop.Word.Application();
  6. string headerfooterFile = Properties.FileResources.headerfooterTemplate;
  7. Document odoc = new Document();
  8. odoc = oWord.Documents.Add(@headerfooterFile);
  9. odoc.Activate();
  10. try
  11. {
  12. Clipboard.Clear();
  13. Clipboard.SetText(CoverLetter,TextDataFormat.Rtf);
  14. odoc.ActiveWindow.Selection.Paste();
  15. Clipboard.Clear();
  16. Clipboard.SetText(LetterText,TextDataFormat.Rtf);
  17. odoc.ActiveWindow.Selection.Paste();
  18. //01/26/2021 JS having trouble with the save on Pam''s machine so going to try to capture the correct error.
  19. try
  20. {
  21. odoc.SaveAs(@BackUpSave);
  22. }
  23. catch (Exception exBU)
  24. {
  25. ErrorString = "Error trying to save " + @BackUpSave + ": " + exBU.Message;
  26. }
  27. try
  28. {
  29. odoc.ExportAsFixedFormat(@FileSave,WdExportFormat.wdExportFormatPDF);
  30. }
  31. catch (Exception exPDF)
  32. {
  33. if (string.IsNullOrEmpty(ErrorString))
  34. {
  35. ErrorString = "Error trying to save " + @FileSave + " PDF: " + exPDF.Message;
  36. }
  37. else
  38. {
  39. ErrorString += " and Error trying to save " + @FileSave + " PDF: " + exPDF.Message;
  40. }
  41. }
  42. }
  43. catch (Exception exInner)
  44. {
  45. ErrorString = exInner.Message;
  46. MessageBox.Show(exInner.Message,Properties.LetterResources.SavetoWord,MessageBoxButtons.OK,MessageBoxIcon.Error);
  47. }
  48. Clipboard.Clear();
  49. oWord.Quit(SaveChanges: 0);
  50. Marshal.FinalReleaseComObject(oWord);
  51. //oWord.Visible = true;
  52. }
  53. catch (Exception ex)
  54. {
  55. ErrorString = ex.Message;
  56. MessageBox.Show(ex.Message,MessageBoxIcon.Error);
  57. }
  58. }

错误发生在 odoc.SaveAs 行上,但仅在从 Windows 10 计算机运行时发生。最初,我使用了我机器上的互操作,但后来将其更改为 NuGet 互操作,但这并没有解决问题。我尝试将 Embed Interop Types 更改为 False 但这并没有解决任何问题,因此我将其改回。互操作引用的别名属性是全局的,特定版本属性是 True。由于富文本,我担心更改文档编写器的类型。应用程序的其余部分对于 Windows 10 用户来说运行良好。有什么想法吗?

解决方法

OpenXML 没有成功,因为它不允许我正确添加标题或导出为 PDF。尽管我非常希望使用 OpenXML,但我最终还是回到了 Word Interop。我能够通过如下设置参考属性来解决这个问题:

嵌入互操作类型 = False 复制本地 = True

现在无论哪个操作系统运行程序,保存都有效。我有上面的部分答案,但忽略了 Copy Local = true 部分。

CentOS7 下 rsync 服务端与 Windows 下 cwRsync 客户端实现数据同步配置方法

CentOS7 下 rsync 服务端与 Windows 下 cwRsync 客户端实现数据同步配置方法

最近需求想定期备份服务器 d 盘的数据到 Linux 服务器上面,做个笔记顺便写下遇到的问题

以前整过一个 win 下的 cwrsync(客户端)+rsync(服务端:存储)的 bat 脚本

和整过一个 Linux 下的 rsync(客户端)+rsync(服务端:存储)的 sh 脚本

这次整一个 Linux 下 rsync(服务端) +windows(客户端)的笔记

客户端:192.168.10.19(cwrsync-Windows)

服务端:192.168.10.20(rsync-Linux)

 

rsync 简介:

rsync 是 linux 系统下的数据镜像备份工具。使用快速增量备份工具 Remote Sync 可以远程同步,支持本地复制,或者与其他 SSH、rsync 主机同步。

 

1、Centos7-rsync 服务端配置:

[root@zabbix /]# vi /etc/rsyncd.conf  #创建配置文件,添加以下代码
log file = /var/log/rsyncd.log
[backup]
path = /data1/backup
comment = backup
uid = root
gid = root
port = 873
read only = no
write only = no
auth users = ktrsync
secrets file = /data1/rsyncd/rsyncd.pass
hosts allow = *
#hosts deny = 192.168.10.30   禁止数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开
list = yes

配置参数说明,注意配置里面不要把这些中文复制进去了!
log file = /var/log/rsyncd.log   #日志文件位置,启动rsync后自动产生这个文件,无需提前创建。
[backup]    #自定义名称
path = /data1/backup   #Rsync服务端数据目录路径
comment = backup    #模块名称与[backup]自定义名称相同
uid = root  #设置rsync运行权限为root
gid = root  #设置rsync运行权限为root
port=873    #默认端口
read only = no   #设置为no,cwRsync客户端可上传文件,yes只读
write only = no  #设置为no,cwRsync客户端可下载文件,yes不能下载
auth users = ktrsync   #执行数据同步的用户名,可以设置多个,用英文状态下逗号隔开
secrets file = /data1/rsyncd/rsyncd.pass   #用户认证配置文件,里面保存用户名称和密码,后面会创建这个文件
hosts allow = *  #允许进行数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开,都应许写*
hosts deny = 192.168.10.30  #禁止数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开
list = yes  #显示Rsync服务端资源列表

2、创建用户认证文件

vi  /data1/rsyncd/rsyncd.pass  #配置文件,添加以下内容
ktrsync:123456  #格式,用户名:密码,可以设置多个,每行一个用户名:密码
:wq! #保存

3、设置文件权限

chmod 600 /etc/rsyncd.conf  #设置文件所有者读取、写入权限
chmod 600 /data1/rsyncd/rsyncd.pass #设置文件所有者读取、写入权限

4、启动 rsync

systemctl start rsyncd   #启动
systemctl stoprsyncd   #停止
systemctl restart rsyncd #重新启动

 

5、Windows-cwRsync 客户端

安装 cwrsync 客户端说明:https://www.cnblogs.com/Sungeek/p/9042049.html

cwRsync

cwRsync

下载地址:https://www.itefix.no/i2/cwrsync-get

包括客户端和服务端  版本4.0.5

一、windows服务器端安装配置
1.下载安装服务端
2.配置
配置了一下 rsyncd.conf

use chroot = false
strict modes = false
hosts allow = *
log file = rsyncd.log
pid file = rsyncd.pid # Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[test]
path = /cygdrive/c/work
read only = false
transfer logging = yes

只是将 [test] 中的 path 改成了我本机的备份目录

[test]
path = /cygdrive/d/backup
read only = false
transfer logging = yes

修改配置内容如下,参数解释:

use chroot = false # 不使用chroot 
strict modes = false #使用静态模式

pid file = rsyncd.pid # 日志记录文件
log file = rsyncd.log # 日志记录文件 
[test] # 这里是认证的模块名,在client端需要指定 
path = /cygdrive/e/bak # 需要做镜像的目录,如e/bak(此目录需要给  SvcCWRSYNC 账户的读取权限)
transfer logging = yes # 记录传输日志
read only = yes # 只读
list = no # 不允许列文件
hosts allow = 192.168.0.0/255.255.252.0 
hosts deny = * # 禁止除192.168.1.0/255.255.255.0段外的连接IP
uid = 0 #解决运行后的 @ERROR : invalid uid 错误
gid = 0 #解决运行后的 @ERROR : invalid gid 错误 
lock file = rsyncd.lock #解决文件被锁定无法复制问题
#auth users = SvcCWRSYNC # 认证的用户名,这里没有这行,则表明是匿名 #secrets file = /cygdrive/c/pass/rsync.passwd # 认证文件名
启动服务
我们在控件面板-->管理工具-->服务,找到该服务 RsyncServer 并启动它

创建认证文件 c/pass/rsync.passwd 内容格式:用户:密码,如SvcCWRSYNC:star888 启动RsyncServer服务并保证开机自动重启,服务器端配置完毕。
二、 客户端安装配置
1.下载客户端安装
2.通过命令建一个批处理
3.rsync -av rsync://192.168.2.242/test /cygdrive/e/test

rsync -avzP --progress --delete --password-file=/cygdrive/c/pass/rsync.passwd SvcCWRSYNC@192.168.2.242::test /cygdrive/e/test
意思是将192.168.2.242的服务端下的test模块下的e:\bak目录同步到客户端的e:\test下
命令参数解释:
-avzP
-a 参数,相当于-rlptgoD,-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
-z 传输时压缩;
-P 传输进度;
-v verbose,详细模式输出
-u是只同步已经更新的文件,避免没有更新的文件被重复更新一次,不过要注意两者机器时钟的同步
--progress
显示备份过程
--delete              删除那些DST中SRC没有的文件
--password-file    指定密码文件,只需包含密码而不用包含用户名
SvcCWRSYNC@192.168.2.242::test
SvcCWRSYNC      登陆服务器端的用户名  
192.168.2.242     服务器端的ip地址
test                   服务器端指定的认证模块名,多个同步作业靠此模块名区分  
/cygdrive/e/test   存放服务器端同步文件的本地目录

因为只是最简单的数据同步,所以就不使用 ssh 了,直接启动 rsync 服务就可以了。然后按照 usage 上面教的。
rsync -av /cygdrive/d/test localhost::test
完成了数据的同步工作,一切顺利。顺便说一下,/cygdrive/d 是安装完 cwRsync ,会自动将系统上所有的盘 mount 成 /cygdrive/x ,x 表示盘符,小写的,并把安装目录 mount 成 / 了。

二、linux作为server时与windows间的同步
1、准备机器,此时使用linux作为server
server---192.168.0.132 (linux)
client---192.168.0.202 (windows)

2、安装与配置linux主机的rsync
(1)查看linux上是否安装rsync:
#rpm -qa|grep rsync
若无则安装,或者使用tar编译安装
#rpm -ivh rsync-2.6.8-3.1.rpm

(2)打开rsync服务
#chkconfig xinetd on
#chkconfig rsync on

(3)创建 rsyncd.conf 文件
#touch /etc/rsyncd.conf
#vi /etc/rsyncd.conf(内容如下:)
uid = nobody
gid = nobody
max connections = 4

[www]
path = /www
comment = BACKUP WWW
ignore errors
read only = yes
list = no
auth users = wwwuser
hosts allow=192.168.0.202
secrets file = /etc/wwwuser.pass

(4)启动基于xinetd进程的rsync服务
#/etc/init.d/xinetd start

3、配置windows的rsync客户端 
(1)安装client端的rsync包
(2)打开cmd,执行同步计划:
cd C:\Program Files\cwRsync\bin
rsync -vzrtopg --progress --delete root@192.168.0.132::www /cygdrive/d/test
(此时须输入root用户的密码,就可进行同步了。)

定时任务

下面介绍一下如何通过windows中的“任务计划”来创建定时任务,执行定时同步。

      首先在客户端的机器上的: 控件面板->任务计划->点击“添加任务计划”, 在相应的弹出窗口中点击下一步,然后点击导航窗口中的“浏览”按钮,如下,并从中选择之前创建的批处理文件”dnt_sync.bat”:

     cwrsync3   

      这时系统会显示如下窗口提示当前计划任务执行方式,我这里选择每天执行(一次):

     cwrsync4

      到这里,系统就会创建一个叫dnt_sync的任务计划,同时在接下来的窗口中提示任务的开始执行时间:

    cwrsync5

 

      这里不做任何修改,直接点击下一步,接着是身份验证(通常是管理员身份),必定任务计划非同儿戏,要有足够的权限才可以玩的转:)

    cwrsync6

      最后点击完成,就创建了一个任务计划。只不过它是按天执行的,如果我们希望其每分钟执行一次又该怎么办呢,其实很简单,只要在用鼠标点击新创建的任务计划,并在弹出菜单中选择“属性”,这时在弹出窗口的“日程安排”中点击“高级按钮”,如下:

    cwrsync7

 

      这时就会弹出一个叫“高级计划选项”的子窗口,在其它做如下设置:

    cwrsync8

      到这里,这个计划任务就会每天24小时,以每分钟运行一次的方式来同步之前的那两个文件夹了。

      最近使用软件的时间超过了开发软件的时间,导致开发的代码量不像之前那么多了,呵呵。不过这类软件还是很有应用场景的,估计将来会用的上,故写作本文与大家分享的同时以“备份”处之。

cwRsync 4.0.5 文件同步配置步骤分享

cwRsync 4.0.5 文件同步配置步骤分享

测试成功,整理一份文档给你

同步工具:cwRsync

① 服务端:cwRsyncServer_4.0.5_Installer(安装过程会添加windows账户SvcCWRSYNC);客户端:cwRsync_4.0.5_Installer

② 服务端配置rsyncd.conf,web工程安全选项卡中为SvcCWRSYNC添加完全控制权限,例外端口:52326,创建密匙文件:server_key,最后启动服务

③ 客户端创建密匙文件:client_key,

④ 修改服务端和客户端密匙文件权限

"D:\Program Files\ICW\Bin\chmod.exe" -c 600 /cygdrive/d/"program files"/cwrsync/bin/client_key
"D:\Program Files\ICW\Bin\chown.exe" administrator /cygdrive/d/"program files"/cwrsync/bin/client_key

⑤ 本地同步服务器脚本
rsync -avz --progress --exclude=''*.config'' --delete /cygdrive/d/publish/chinahbnet/* rsync://xzl@192.168.1.9:52326/t_chinahbcom <D:\"Program Files"\cwRsync\bin\client_key
pause

需要注意的地方:

rsync://xzl@192.168.1.9:52326
而非
xzl@192.168.1.9:52326
如果没有rsync://则会提示ssh相关的错误
加密机制
您可能感兴趣的文章:
  • windows下使用cwRsync定期备份网站(服务器文件同步)
  • windows下文件同步工具 CwRsync 4.0.2 安装配置方法(图文)
  • Windows远程数据、文件同步工具cwRsync配置方法

我们今天的关于cwRsync 在 windows 环境下的配置及使用cwrsync使用方法的分享已经告一段落,感谢您的关注,如果您想了解更多关于C# windows 窗体应用程序 Word Interop 适用于 Windows 7 但不适用于 Windows 10、CentOS7 下 rsync 服务端与 Windows 下 cwRsync 客户端实现数据同步配置方法、cwRsync、cwRsync 4.0.5 文件同步配置步骤分享的相关信息,请在本站查询。

本文标签: