实践小记-多服务器文档同步与将应用程序添加到系统服务中

最近项目中需要实现两台异地服务器图片同步,于是就开始查资料寻找合适的方法或者软件,其中在一篇文章中提到一个软件,WebSynchronizer,介绍是这样的:

档案同步化工具 – WebSynchronizer,由知名续传软件 ReGet 之软件出版公司所推出,是网站同步化、档案镜像、档案备份的绝佳工具,可以执行下列主要工作:

1) 本机资料夹及远程资料夹的同步化;
2) 两台远程计算机中的资料夹同步化;
3) 两个本机资料之同步化。

看介绍正好符合我的需求,于是便搜索这个软件,在BAIDU上搜索的都是1.3版本的,而且非开源软件,这个可愁了,现在不可能花钱去购买软件的,只能再找, 看看有没有破解版本的,结果中文搜索结果都没有破解的,于是又转向GOOGLE,结果不经意之间发现了WebSynchronizer1.5版,而且还有开源代码,难道是免费的?我赶紧下载下来,安装,一路下来也没有提示要输入序列号,就这样安装好了,真是喜出望外,后来看了一下更新日志,原来到1.5版本这个项目转成开源的了:

Current version: WebSynchronizer 1.5 (build 162)

Build 162 / 09 Jan
WebSynchronizer moved to open source

不错不错,界面好,设置简单,功能强大,绝对的好东西啊!

安装好以后,便开始测试同步,先在本地和青岛两台服务器进行测试,经过不断的摸索,越发的感叹软件的强大,但是美中不足的一点是不能做为服务运行在系统里,这就出问题了,服务器必需要求不登录也能运行同步软件,总不能每次同步都得远程登录吧,但是这款软件实在是太好了,不舍得丢掉,于是乎,就出现了后面要说的,把应用程序添加到系统服务中去。

这方面没做过,只能接着去Google了,这次一开始便直接指向英文,找软件,找开源的软件,但是没有,或者说我没有找到,其中有几个比较知名的软件,例如AppToService2.7,Application.as.Service.v3.0.0.61,但是只能试用几天,放服务器上哪能只是试用。于是又转向BaiDu,看看国人有没有研究这方面的资料,还真有,仔细琢磨一番,成了,其中需要几个小工具:

第一个工具是“srvinstw.exe”,这个软件可以Windows资源工具箱中找到,我找到了一个汉化版,感觉读母语更直接一些。它可以将应用程序变为Windows系统服务,这样一来,WebSynchronizer就可以在后台以系统服务形式运行,就不必每次都要登录Windows系统来启动软件同步了。

第二个工具是“srvany.exe”。将应用程序变成Windows系统服务,并不是简单使用“srvinstw.exe”就可以完成的,这里要注意,应用程序变成系统服务要分两种情况:如果程序员在开发设计某个应用程序的时候,就充分考虑到了可以将它作为系统服务,那么将这些应用程序变成Windows系统服务就非常简单,通过“srvinstw”就可以完成;但是,大部分应用程序在开发设计之初并没有考虑到这点,比如WebSynchronizer。单纯使用“srvinstw”是无法将它们变成系统服务的,这时就需要使用“srvinstw+srvany”的组合来完成这一操作,srvany.exe也可以在Windows资源工具箱中找到。

下面开始操作:

第一步:添加系统服务

运行srvinstw_Services_Manage_ZH.exe,选择“安装系统服务”,下一步,“服务器选项”,选择“本地服务器”,这样就可以将同步服务安装到服务器上;接着下一步,填写“服务名称”,例如:“WebSynchronizer-Service”;下一步,输入注册为服务的可执行程序的磁盘路径,注意,这一步很关键,因为WebSynchronizer在设计时并没有考虑当作系统服务使用,所以,这个地方的地址要用srvany.exe的磁盘地址来代替,这样可以完美解决这个难题;接下来,选择“注册的服务类型”,选择单选项“拥有自己进程的独立服务型”;下一步,登录身份选择系统帐号,这样就可以保证在系统启动而还没有登录时就可以启动该服务;接下来选择“启动类型”,根据需要,我选择“自动”;最后,点击完成,服务就安装成功了。

第二步:修改注册表

完成了系统服务的添加操作后,这个时候“WebSynchronizer-Service”还不能运行,需要对注册表进行手动编辑。打开注册表,展开“HKEY_LOCAL_MACHINESYSTEMCurrentControlset Services”,找到“WebSynchronizer-Service”项目,在该项下面新建一个名为“Parameters”的项目,接着在“Parameters”项下新建一个类型为字符串值的“Application”子键,双击该键修改值为WebSynchronizer主程序可执行文件的磁盘路径,如果你希望做的更完美一些,可以在“WebSynchronizer-Service”服务下建立一个名为Description的子键,数据类型同样为字符串值,数值可以写一些你对这个服务的描述。

通过以上两步操作,WebSynchronizer已经成功的添加到系统服务中了,这样同步服务就可以在系统后台默默的工作,而不用远程登录服务器了。

实践出真知,虽然麻烦点,但是感觉用WS的系统,还是使用WS的软件来实现比较妥当,后来找到一个软件FireDaemonPro也可以实现这个功能,而且还是破解版的,但是必需同时运行这个软件才能实现,这就多少增加了一些系统不必要的消耗,所以我没有采用。

总算了了一桩心事 🙂

websynchronizer1.5

srvany.exe

srvinstw_Services_Manage_ZH.exe

1 Comment

 Add your comment
  1. 系统自启动程序有没试过win的计划任务呢?有时觉得用计划任务自启动程序也很方便的。

Leave a Comment

Your email address will not be published.

*