有关将python脚本配为windows Service并通过SSH连接的相关记录

有关将python脚本配为windows Service并通过SSH连接的相关记录

一.应用场景

需要通过gitlab中的ci中的ssh命令去同步windows机器下的代码,并重启服务脚本

二.主要步骤

1.在windows下安装OpenSSH,打开ssh服务,这样才可以在SSH中免密登录windows机器

2.将pyhon脚本配成windows服务,在ssh中通过命令重启服务。

三.详细步骤

1.在windows下安装OpenSSH(如果有自定义配置看这里,没有特殊情况就按以下操作)

前言:打开的powerShell 或者 CMD 窗口必须以管理员权限打开

1.下载最新的OpenSSH安装包

https://github.com/PowerShell/Win32-OpenSSH/releases/tag/v8.0.0.0p1-Beta

powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

3.打开防火墙

win10下使用这个命令

netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22

Windows 2012 and above使用这个命令

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

4.开启sshd

net start sshd

5.将sshd设为自启

Set-Service sshd -StartupType Automatic

安装好之后可以输入ssh命令,如有响应则代表配置成功

6.将linux(gitlab)服务器的公钥(注意linux的用户,在对应的用户下面找公钥)配置到windows机器上

(一定要用管理员权限打开PowerShell)

在 PowerShell 中执行 notepad .ssh\authorized_keys 命令创建文本文件,把客户端的公钥复制到这个文件中并保存

把文本文件的名称修改为 authorized_keys(没有后缀)

修改 ssh 服务的配置文件

以管理员权限打开 PowerShell,执行命令 notepad C:\ProgramData\ssh\sshd_config。

注释掉配置文件中的最后两行然后保存

最后在服务管理器器中重启 OpenSSH SSH Server 服务

2.将pyhon脚本的批处理.bat文件配成windows服务,在ssh中通过命令重启服务

1.下载软件     参考博客 https://blog.csdn.net/MAOZEXIJR/article/details/84546539

https://pan.baidu.com/s/1PI6qMjdVkuYyjRLokt7xRw 密码:fc1o

2.将解压出来的两个文件放到一个目录下,我这里举例在D盘下,

3.增加服务

命令格式 D:\instsrv.exe 服务名称 D:\srvany.exe (注意按管理员身份运行cmd,重要的事情说三遍)

举例 :D:\instsrv.exe platformOperation D:\srvany.exe

4.修改服务参数

1)打开注册表(win+r运行regedit)

查找路径:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/platformOperation

2)platformOperation服务增加子项 Parameters

给子项 Parameters 增加两个字符串类型的参数 AppDirectory 和 Application,并指定参数值

本例中(.bat文件自己写,这里不叙述)

AppDirectory = E:\python\platform_operation_dev(程序所在文件主路径)

Application = E:\python\platform_operation_dev\platform_operation.bat(程序运行的bat路径)

最终应该如下图

3)查看服务列表,并启动 platformOperation 服务

查看服务列表(win+r运行services.msc),启动服务,至此服务配置完毕

建议在任务管理器里面查看服务状态,服务列表的状态更新不及时。

4)提供几个操作服务的命令

sc start platformOperation 启动服务

sc stop platformOperation 停止服务

sc delete platformOperation 删除服务

四.后续

现在就可以在通过ssh启动,停止,同步windows的代码

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误通常是由于连接超时或连接丢失导致的。可能是由于网络中断、目标主机关闭或其他问题导致的。 你可以尝试以下几个解决方案: 1. 检查网络连接是否正常。尝试通过ping命令测试目标主机是否可达。 2. 检查ssh服务是否正在运行。可以通过在目标主机上运行以下命令来检查:`sudo service ssh status` 3. 尝试增加ssh连接的超时时间。可以在连接时指定超时时间,例如:`ssh -o ConnectTimeout=30 user@host` 4. 尝试重新启动ssh服务。可以在目标主机上运行以下命令:`sudo service ssh restart` 如果以上方法都无法解决问题,你可能需要进一步检查目标主机和网络的配置。 ### 回答2: 出现"End Of File (EOF). Exception style platform."这个问题可能有以下几个原因: 1. SSH连接中断:可能是由于网络中断、SSH服务器问题或其他原因导致的SSH连接中断。如果SSH连接不稳定或服务器端发生故障,会导致连接被迫关闭,进而出现EOF异常。 2. 脚本错误处理不完善:在Python脚本编写过程中,如果没有处理好网络连接异常或SSH连接异常的情况,当出现连接中断时,脚本可能会抛出该异常信息。 为了解决此问题,可以采取以下措施: 1. 检查网络连接稳定性:确保网络连接可靠,并且SSH服务器工作正常。可以尝试通过其他工具或手动方式连接SSH服务器,查看是否能够稳定连接。 2. 增加异常处理机制:在Python脚本中,使用try-except语句块可以捕获和处理异常。针对SSH连接异常情况,可以使用try-except语句块对异常进行捕获,并采取相应的处理措施,如重试连接记录异常信息等。 3. 使用SSH模块或库:可以考虑使用第三方的SSH模块或库,如paramiko等,它们提供了更加稳定和强大的SSH连接功能,并且对异常处理有更好的支持。 综上所述,"End Of File (EOF). Exception style platform."问题可能是由于网络中断或代码错误导致的。需要检查网络连接稳定性并增加异常处理机制,可以尝试使用SSH模块或库来解决该问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值