繁体   English   中英

作为Windows服务运行时python ssh / rsync挂起

[英]python ssh/rsync hang when run as windows service

我有一个脚本,应该使用rsync将文件从Linux盒中拉到Windows盒中。 我将其设计为Windows服务,这一点似乎正常工作。 rsync和ssh可执行文件启动,连接到Linux计算机,使用密钥进行身份验证,但不复制任何文件。 这是脚本的核心,不包括大多数Windows服务内容。

import subprocess
RSYNCPULL = '''"C:\\Program Files\\cwRsync\\bin\\rsync.exe" --remove-source-files
           --no-motd -e "\'C:\\Program Files\\cwRsync\\bin\\ssh.exe\'"
           user@IP:/var/log/* /cygdrive/c/logs/'''

class LogCopy( win32serviceutil.ServiceFramework ):
   #various functions for starting/stopping the service
    def sleep( self, sec ):
        win32api.Sleep( sec*1000, True )
    def start( self ):
        self.runflag = True
        while self.runflag:
            subprocess.call( RSYNCPULL )
            self.sleep( 10 )  

if __name__ == "__main__":
    qin32serviceutil.HandleCommandLine( LogCopy )   

Windows外壳程序可能会解释“ *”字符并进行扩展。 尝试之一:

  • 在您的“ *”之前加一个反斜杠。 这样,rsync将在连接的另一端为您扩展它
  • 删除“ *”,然后使用rsync的-r选项执行目录的递归副本

找出是什么。 我正在将任务作为系统运行。 我在管理员帐户下设置了ssh密钥,但没有系统。 因此ssh挂在提示符下以保存密钥。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM