如何在Putty中设置自动登录后执行命令并设置超时时间?
美国、香港服务器
如何在Putty中设置自动登录后执行命令并设置超时时间?
10-12 来源:
## 方案 1:图形界面 Remote command(少量命令,登录后延时执行)
路径:`Connection → SSH → Remote command`
把延时写在服务器命令中,使用 `sleep N`,单位秒。
示例:登录后等待 3 秒,执行多条命令,保留终端
sleep 3; uptime; df -h; free -h; bash
多条中间穿插延时:
sleep 2; uptime; sleep 3; df -h; sleep 2; ls /www; bash
配置步骤:
1. `Connection > Data` 填自动登录用户名
2. SSH 页面粘贴上面命令
3. `Connection > SSH > Auth` 加载 ppk 私钥
4. `Connection`:**Seconds between keepalives = 60**(每 60 秒发保活包,防止空闲被防火墙踢掉)
5. 回到 Session 保存会话。
这里 sleep 是**登录成功后服务器等待**,不是 PuTTY 本地等待登录过程。
## 方案 2:-m 读取本地脚本(大量命令 + 多处延时,推荐)
本地新建 `run.txt`,**换行格式转为 Unix‑LF**(Notepad++:编辑→换行符→转为 Unix),内容:
sleep 2
uptime
sleep 3
df -h
sleep 2
free -h
bash
桌面快捷方式目标示例:
D:\putty\putty.exe -load "我的服务器会话" -t -m D:\putty\run.txt
t`:强制分配伪终端,保证 sleep、bash 交互正常
## 方案 3:plink 设置【连接超时】(连服务器阶段超时,图形 PuTTY 做不到)
plink 是 putty 套件里命令行工具,可以设置**ConnectTimeout 连接超时**(尝试连接多久连不上就放弃)。
新建 bat 脚本示例:
@echo off
D:\putty\plink.exe -load "我的服务器会话" -t -o ConnectTimeout=15 -m D:\putty\run.txt
- `-o ConnectTimeout=15`:15 秒连不上服务器直接终止(网络连接超时)
- 脚本内部 sleep 还是写在 run.txt 里面。
## 两个容易混淆的超时配置说明
### ① PuTTY 保活(防止空闲被防火墙断开连接)
图形界面 → `Connection`
`Seconds between keepalives = 60`
作用:连接成功后,空闲时每 60 秒发送空数据包,避免 NAT / 机房防火墙把 SSH 连接杀掉,**不是命令执行延时**。
### ② Linux 服务器端设置单条命令最大执行超时(命令跑太久强制杀掉)
登录后远程命令使用 Linux 自带`timeout`工具
示例:最多等待 10 秒执行 df,超时就终止,保留 shell
timeout 10 df -h; uptime; bash
- `timeout 10 command`:command 执行超过 10 秒强制结束。
## 完整综合示例 Remote command 框直接复制
登录后等待 2 秒,执行 uptime;df 最多执行 8 秒;再等待 1 秒,最后保留终端:
sleep 2; uptime; timeout 8 df -h; sleep 1; free -h; bash
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快