我有一个脚本,它应该使用 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 )