2013-04-16 125 views
1

如何创建一个简单的批处理脚本(Windows)以关闭当前的plink会话,如果超时并自动重新连接?plink自动化批处理脚本

是这样的:

if "plink.exe" == "false" (
    "plink command to connect to SSH Server." 
) 

也许

如果 “plink.exe” == “假”( “批开辟新砰砰实例” )

回答

4

在这里,你去。

@echo off 
setlocal 
:: modify this line as appropriate 
set plink_args=-P 22 -i c:\path\to\private.ppk [email protected] 
set errors=0 

:loop 

:: if "find" exits with a non-zero status, plink.exe isn't running. 
(tasklist /fi "IMAGENAME eq plink.exe" | find /i "plink.exe" >NUL && (
    set errors=0 
)) || (
    start "" plink.exe %plink_args% 
    set /a "errors+=1" 
) 

if %errors% geq 5 (
    echo Unable to connect %errors% times in a row. Stopping. 
    goto :EOF 
) 

:: pause for 10 seconds (-n seconds + 1) 
ping -n 11 0.0.0.0 >NUL 
goto loop 

你知道,如果你有SSH服务器上的root权限,你可以修改sshd_config并让服务器发送每隔几分钟无操作分组,以防止连接超时溢出由于不活动。下面是我的sshd_config一个例子片段:

# noop anti-idle for 12 hours (10 minutes * 72) 
ClientAliveInterval 600 
ClientAliveCountMax 72 

它添加到您的sshd_config并重新启动ssh守护进程。这可以让你免于在客户端做一些这样的事情。

+0

谢谢!这样可行 –