首页 > 系统相关 >使用 nssm 把 bat 安装成 windows 服务

使用 nssm 把 bat 安装成 windows 服务

时间:2023-12-17 23:11:19浏览次数:51  
标签:nssm bat 服务 文件 windows rsync 秘钥 --

一、背景:

目的:

客户端电脑在指定文件夹下会不定时地产生一些新的文件,现在要对这些文件进行远程备份到服务器上。

工具:

使用rsync进行文件的备份。rsync优秀的好像是差分算法,可以快速比较本地文件与服务器上文件的差异并增量式地推送新文件到服务器上。

遇到的问题:

rsync不会自动触发文件监测与上传,只能够人工执行命令进行触发文件推送备份。
明显,不符合要求。我们的要求是自动触发。

问题的解决方案

方案1:主动触发:指定文件夹中文件变化就触发备份命令;
方案2:定时触发:比如1分钟执行一次备份命令。
目前方案2即可满足要求,下面说的都指的方案2。

针对方案2,定时触发的思路:

思路1:windows定时任务,无限期地每隔1分钟执行一次命令。
思路2:把命令写入脚本文件中,在脚本文件中写一个1分钟执行一次命令无限循环的代码。然后用nssm把脚本安装成windows服务,服务再配置开机自启动,并且nssm可以很好地管理服务,服务失效会自动重启它。
说明:思路1试了之后,能实现,但总感觉它不可靠。有兴趣的可以自己百度试一试。
本文下面就开始说思路2~~~~~~~~~~~~~~~~

二、环境

客户端,我本地的测试电脑:

window10,×64.
已安装rsync客户端,路径:C:\Program Files (x86)\cwRsync\bin
备份命令:# rsync.exe --port=873 -arvzP --timeout=30 --contimeout=30 --password-file=/cygdrive/秘钥文件 /cygdrive/本地路径/ 用户名@服务器ip::模块名
路径下,创建rsyncSOS.bat文件,写入:

@echo off
if "%1" == "h" goto once
:once
::立即执行一次
::执行任务
rsync.exe --port=873 -arvzP --timeout=30 --contimeout=30 --password-file=/cygdrive/秘钥文件 /cygdrive/本地路径/ 用户名@服务器ip::模块名

if "%1" == "h" goto begin
:begin
::每60秒延迟后,执行一次命令
pushd "%~dp0"
timeout /t 60 /nobreak
::执行命令
rsync.exe --port=873 -arvzP --timeout=30 --contimeout=30 --password-file=/cygdrive/秘钥文件 /cygdrive/本地路径/ 用户名@服务器ip::模块名
goto :begin

注意:如果本地路径中包含中文,需要把此命令放到记事本中,然后另存为...,另存时选择ANSI编码。否则有可能会报错,找不到路径。

服务端

Linux cumt.cms.116 4.18.0-193.el8.x86_64 #1 SMP Fri May 8 10:59:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
已安装rsync服务端

二、工具:nssm

nssm.exe文件,点击下载

nssm is a service helper which doesn't suck.
nssm是一个蛮好用的服务助手。

nssm可以监视运行中的服务,一旦服务失效nssm将会重新启动它。

三、使用nssm把.bat安装成服务:

1.根据windows系统是32位还是64位,进入nssm.exe所在的文件夹下。我的电脑是64位操作系统,进入F:\ckk\software\nssm-2.24\win64下,Shift+右键,启动cmd,执行nssm install,呼出服务安装GUI
   
2. 服务安装配置:

Application项:


  image.png

Log on项:
虽然此项不作任何修改,默认选择system用户执行。但后面会出现问题。回头再说。先这样。
Exit action项:


  image.png

I/O项:


  image.png

File rotation项:


  image.png

Environment项:
PATH=C:\Windows\System32;C:\Program Files (x86)\cwRsync\bin

  image.png

 

最后,点击“install service”完成安装。

3.启动服务

先不要启动...,说说Log on项的问题。
备份命令:# rsync.exe --port=873 -arvzP --timeout=30 --contimeout=30 --password-file=/cygdrive/秘钥文件 /cygdrive/本地路径/ 用户名@服务器ip::模块名
备份命令里,有一个--password-file=/cygdrive/秘钥文件,指定的秘钥文件,这个秘钥文件里存的是密码,在rsync.exe执行的时候需要用它。但是log on里使用的是

  image.png
也就是system用户,system来启动的服务,system用户来执行的rsync.exe程序。所以这边去把秘钥文件的属主改一下,否则rsync.exe程序会报错。
修改“秘钥文件”属主
秘钥文件右键属性-安全-高级-所有者-更改-输入要选择的对象名称(输入system)-检查名称-确定....
  image.png
然后就可以启动服务了。当然,你也可以在Log on项指定管理员用户启动服务,不过我这边情况特殊。特殊在哪呢?我们的客户端当然是给很多客户机子装的,不太好要到人家的密码吧。。。但是system用户不要密码O(∩_∩)O哈哈~。
  image.png

 

启动服务
nssm start rsyncSOS
配置服务启动类型,可以去服务管理上看看。我这边配的是“自动”。

  image.png

 

四、nssm其他常用命令:

修改服务
nssm edit 服务名
删除服务
nssm remove 服务名

标签:nssm,bat,服务,文件,windows,rsync,秘钥,--
From: https://www.cnblogs.com/7qin/p/17910074.html

相关文章

  • 在 Windows 11 中为 WSL2 启用 Systemd 以及修复ping不通和DNS无法解析等的问题
    前言今天使用WSL2(Ubuntu22.04.1LTS)的时候,遇到了ping不通的问题,提示:ping:connect:Networkisunreachable以及执行sudoaptupdate命令出现错误:Failedtofetchhttp://archive.ubuntu.com/ubuntu/dists/focal/InReleaseTemporaryfailureresolving'archive.ubunt......
  • Windows 注册表取证 常用分析项
    Windows注册表取证常用分析项注册表主要单元:SYSTEM:对应的注册表分支为HKEY_LOCAL_MACHINE\SYSTEM,对应的存储文件是\Windows\System32\config\SYSTEM,其作用是存储计算机硬件和系统的信息。NTUSER.DAT:对应的注册表分支是HKEY_CURRENT_USER,存储在用户目录下,与其他注册表文件是分......
  • mybatis 注解开发
    注解开发<mappers><!--直接读取映射文件--><!--<mapperresource="kong/UserMapper.xml"/>--><!--获取dao文件xml文件存放的路径和dao接口的包名要对应--><packagename="com.kong.dao"/>......
  • Mybatis(黑马)
    1.框架概述课程介绍三层架构和ssm框架的对应关系jdbc操作数据库的问题分析jdbc代码回顾javapublicstaticvoidmain(String[]args){Connectionconnection=null;PreparedStatementpreparedStatement=null;ResultSetresultSet=null;try{//加载数据库......
  • Mybatis-Plus技术教程
    Mybatis-Plus课程目标了解Mybatis-Plus整合Mybatis-Plus通用CRUDMybatis-Plus的配置条件构造器Mybatis-Plus的Service封装代码生成器1Mybatis-Plus介绍1.1Mybatis-Plus介绍MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强......
  • Swin Transformer: Hierarchical Vision Transformer using Shifted Windows详解
    初读印象comment::(Swin-transformer)代码:https://github.com/microsoft/Swin-Transformer动机将在nlp上主流的Transformer转换到cv上。存在以下困难:nlp中单词标记是一个基本单元,但是视觉元素在尺度上有很大的变化。图像分辨率高,自注意力操作计算复杂度是图像大小的二次方......
  • Windows利用nvm进行node版本控制(node 版本管理工具nvm的安装与使用)
    为什么需要对node进行版本管理?不同项目的node的版本并不相同,不同版本之间的兼容性并不好,所以需要工具(node版本管理工具)进行快速切换node版本。下载与安装(Windows)1.卸载电脑原有node直接去控制面板/win11设置卸载就行2.安装nvmGithub下载地址下载地址里面有两类nv......
  • Windows 12将为个人电脑将带来颠覆性改变!PC史无前例的五大变化
    多方迹象显示,2024年将正式开启AIPC元年,2027年AIPC将成为市场主流。而Windows12的到来,将为个人电脑将带来颠覆性改变。近日举办的英特尔人工智能创新应用大赛上。联想集团副总裁、中国区首席市场官王传东发言表示,一台真正意义上的AIPC产品,应具备五大特征:首先是内嵌个人智能体......
  • 多开软件对Windows电脑内存的占用情况
    当今,许多人在日常使用电脑时可能会遇到需要同时打开多个应用程序或者多个账户的情况。为了应对这种需求,一些用户选择使用多开软件来实现在同一台电脑上同时打开多个应用程序或账户的功能。然而,使用多开软件可能会对Windows电脑的内存占用产生一定的影响。首先,让我们来了解一下多......
  • Windows2008R2 IIS配置证书 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 错误解决方法
    IISCrypto 用这个工具很方便,也可以手动修改注册表工具内置最佳实践,点击 BestPractices再Apply,然后重启服务器即可,设置前记得备份注册表。参考:https://blog.csdn.net/a873744779/article/details/103635882https://blog.csdn.net/jackbon8/article/details/82702563 ......