當前位置:首頁 » 編程軟體 » 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]

熱點內容
c數字圖像處理源碼 發布:2024-11-16 15:13:28 瀏覽:401
為什麼蘋果處理器一直比安卓好 發布:2024-11-16 15:13:22 瀏覽:152
折標演算法 發布:2024-11-16 15:07:10 瀏覽:474
如何做好編譯類節目 發布:2024-11-16 14:56:51 瀏覽:976
正版激活伺服器搭建 發布:2024-11-16 14:47:04 瀏覽:777
安卓導航cd怎麼用 發布:2024-11-16 14:37:06 瀏覽:801
mysql同步兩個資料庫 發布:2024-11-16 14:20:55 瀏覽:759
北京php培訓 發布:2024-11-16 14:20:39 瀏覽:495
新秀麗拉桿箱密碼忘了怎麼辦 發布:2024-11-16 14:05:31 瀏覽:268
為什麼有些國外安卓機不支持電信 發布:2024-11-16 13:49:26 瀏覽:504