这段时间在做测试,当测试数据发生错误时,需要关闭linux服务器上的服务并重启,反复重启过于麻烦,因此写了一个批处理脚本自动关闭和启动服务。
(1)关闭和开启本地服务
net stop xx
net start xx
(2)在linux服务器上关闭和开启云服务(使用公钥连接,具体可参考linux常用指令)linux常用指令_gjg244的博客-CSDN博客
ssh xxx@180.21.88.11 "killall -w aService"
ssh xxx@180.21.88.11 "nohup aService >/dev/null 2>&1 &"
>/dev/null 2>&1 表示不输出任何信息到终端
nohup command & 表示想让command指令后台运行
(3)清空本地日志
rd /s /Q "D:/安全文件/注册表"
(4)由于步骤(3)出现了中文字符需要在首行加上utf-8编码格式
命令行控制器(CMD)默认情况下,编码为936(简体中文 GBK编码)
chcp 65001
注:
远程执行命令时,脚本中的内容可视为被双引号包含起来的
远程执行命令的情况下,例如:ssh user@remote_host "${COMMOND}":
- 使用单引号的时候,$COMMAND定义的命令字符都会在本地被去掉特殊意义,只是一串完全没有解析引用的字符串传过去远程主机;
- 如果是使用双引号时,$COMMAND定义的特殊命令字符都会在本地被解析引用,比如上面COMMAND中的反引号、EXTRACT_DIR变量、i变量,所以此时要在COMMAND中的特殊字符前加上转义符号“”,这样就会去掉在本地的解析引用;但是如果COMMAND变量中也有一个BAK_TIME变量引用前是不用加转义符的,因为这个变量就是希望在本地引用的。
参考博客:
1、http://blog.sina.com.cn/s/blog_4aae007d010192qc.html