当前位置:首页 » 编程软件 » ssh执行本地脚本

ssh执行本地脚本

发布时间: 2024-01-22 23:19:56

㈠ 在脚本中使用ssh时的几个注意事项

1. 超时设置
-o ConnectTimeout=3
2. 重定项标准输入到/dev/null
-n
当使用这样的形式时 (使用 key 认证):
while read line ; do ip=$(awk '{print $1}' < << $line ) ssh -n -o ConnectTimeout=3 $i uptime done < file
假如此时不使用 -n ,则只有第一行会被处理。
3. 批处理模式,在脚本中使用再合适不过(使用 key 认证)
-o BatchMode=yes
当 key 认证不成功时,有可能会弹出“密码认识”,从而影响脚本运行下去,此时可以打开 BatchMode模式。
4. 遇到未知主机:
-o StrictHostKeyChecking=no
当遇到未知的主机公钥时,自动接受key。
5. 糟遇远程主机连接后无响应:
当设置了 BatchMode 时 ServerAliveInterval 默认被设置成 300 秒(服务端无数据传回的持续时间)。
ServerAliveCountMax相当于是重试的次数,比如下面的例子,15秒 x 3 = 45 秒,即当 45 秒后,真正超时断开。
TCPKeepAlive打开时,便于发现网络的断开。当网络故障(比如路由器坏掉)或者远端开机、死机时,连接会主动断开,否则的话,将会等待相当一段时间后才会断开。
-o ServerAliveInterval=15
-o ServerAliveCountMax=3
-o TCPKeepAlive=yes
需要注意的是,这里的超时、无响应,仅是 ssh或者sshd无影响,假如是在远程上执行程序,程序无响应,则不能处理此时的超时,解决方法见《在Shell中实现异步》。

java SSH远程到linux 执行本地的脚本

scp file yonghuming@服务器 :/路径

把本地文件 file 传送到 服务器 的 /路径 下。
然后就可以远程执行了。

㈢ 怎么在一个shell脚本中执行远程主机的另一个shell脚本 ssh已经可以无密码登录了。

假设你要操作的是远程服务器
IP为:1.1.1.1
操作的脚本是 :/home/a.sh

操作命令为
ssh 1.1.1.1 “/bin/bash /home/a.sh”

㈣ shell本地脚本调用远程脚本,当远程脚本执行完再继续执行本地脚本

#!/bin/bash

#调用expect脚本执行远程sh
expect-c'
settimeout10000
spawnsshusr@ip
expect{
"yes/no"{send"yes ";exp_continue}
"*assword"{send"passwd "}
}
expect"#"
send"sh1 "
expect"#"
'
echo
ls-l

其中timeout时间需要设置足够长,不然会连接超时断掉。

或者你配置了rsh,可以把上面的expect过程替换成rsh [Host] [-l UserName] [-n] [Command]

热点内容
走心机编程教学 发布:2025-07-01 15:34:30 浏览:219
安卓系统哪个bug最少 发布:2025-07-01 15:34:16 浏览:777
不是安卓怎么让时间显示在屏幕上 发布:2025-07-01 15:20:54 浏览:509
黄岩数控编程培训 发布:2025-07-01 15:12:30 浏览:979
迷宫寻路算法 发布:2025-07-01 15:12:29 浏览:544
微信视频缓存目录 发布:2025-07-01 14:58:59 浏览:393
vmwarelinux教程 发布:2025-07-01 14:50:33 浏览:498
名词解释预算法 发布:2025-07-01 14:34:36 浏览:918
iis文件拒绝访问 发布:2025-07-01 14:34:20 浏览:570
苹果和安卓相比哪个游戏多 发布:2025-07-01 14:24:16 浏览:762