當前位置:首頁 » 編程軟體 » 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-01-22 12:55:25 瀏覽:220
可編程脈沖電源 發布:2025-01-22 12:49:22 瀏覽:829
歐規墨規美規中東哪個配置高 發布:2025-01-22 12:48:00 瀏覽:777
安卓機怎麼用不了多久 發布:2025-01-22 12:47:44 瀏覽:761
安卓怎麼錄屏別人直播 發布:2025-01-22 12:35:20 瀏覽:385
1030怎麼配置電腦 發布:2025-01-22 12:35:19 瀏覽:89
sql資料庫的埠 發布:2025-01-22 12:20:02 瀏覽:362
安卓最終幻想8怎麼設置中文 發布:2025-01-22 12:19:23 瀏覽:651
怎麼查電腦配置和網路 發布:2025-01-22 12:19:16 瀏覽:586
linuxsnmp查看 發布:2025-01-22 12:17:49 瀏覽:37