當前位置:首頁 » 編程軟體 » ssh的shell腳本

ssh的shell腳本

發布時間: 2023-12-17 23:07:49

1. shell腳本中ssh到遠程機子時,提示輸入密碼用變數給出密碼 要怎麼做請各位幫忙

#!/usr/桐缺冊bin/expect
set pw pawword
spawn ssh 192.168.1.200
expect 'password: '
send "$pw\r"
expect '#'
send "exit\扮枯r"
expect eof

chmod +x ssh.sh
./局宏ssh.sh 試試呢 哈哈

2. 利用shell腳本執行ssh遠程另一台主機執行命令並返回命令的結果集

假設從主機A,檢查主機B上的進程,
需要在主機B上建立檢查用戶,例如叫x,
並設置通過public key認證登錄SSH,不會可以google搜一下,
然後,在A機器上執行:
ssh x@B ~/command.sh > result.txt
command.sh就是B機器上放置在x目錄下的腳本。
輸出結果應該是寫到了result.txt
或者另一種寫法
result=`ssh x@B ~/command.sh`
結果直接保存到result變數中了。
暫時沒有linux環境,所以沒有實際測試,你自己試試吧
免費提供最新Linux技術教程書籍,入門自學書籍《linux就該這么學》,為開源技術愛好者努力做得更多更好

3. Linux,在shell腳本中實現用ssh或者telnet方式登錄另一個linux主機,然後修改第二個linux上的一個文件。

#!/usr/bin/expect-f
settimeout30
setipaddr"192.168.0.100"#IP地址
setusername"root"#用戶名
setpassword"password"#密碼

spawnssh$username@$ipaddr
expect{
"yes/no"{send"yes ";exp_continue}
"password:"{send"$password "}
}
expect"]#"#用戶的提示符,根據需要修改一下
send"ls "#執行的命令,換成自己修改文件的
send"exit "
expecteof
exit

4. 本地shell腳本中ssh到遠程伺服器並執行命令

        在實際運用中在當前伺服器執行命令後,需要在另一台伺服器繼續執行某些命令,和耐衫分開去到另一台伺服器執行也是比較麻煩的,因此整理下集中執行的方式喚腔

1、首先配置ssh免密操作

Linux 下實現SSH互信: https://www.jianshu.com/p/2456d98aa607

2、簡單命令

ssh [email protected] "cd /var/lib; ls; cd "

2.1 使用時注意,雙引號必須有。若沒加雙引號,第二條及之後的命令會在本地執行

2.2 分號是將兩條語句間隔開

2.3 單雙引的區別:單引號不會解析值,是什麼就傳什麼;雙引號會解析值,將解析結果傳過去

3、多條命令

     ssh [email protected]<< reallssh

      cd /var/lib/test

      tar -zxvf api.com.tar.gz

      ......

      exit

      reallssh

3.1 命令寫在 << reallssh(開始畝悶) 至 reallssh(結束) 之間

3.2 reallssh可自己定義為其他形式

3.3 在結束前加上exit退出遠程

4、可能遇到的問題

問題:遠程登錄主機時出現Pseudo-terminal will not be allocated because stdin is not a terminal. 錯誤

解決方案:字面意思是偽終端將無法分配,因為標准輸入不是終端。

所以需要增加-t -t參數來強制偽終端分配,即使標准輸入不是終端。

to force pseudo-tty allocation even if stdin isn』t a terminal.

參考樣例如下:

ssh -t -t [email protected] -p 22

--------------------------------------------------------------------------------

參考:https://blog.csdn.net/jinking01/article/details/84386769

5. 請問我在Linux下想實現一個終端同時通過SSH執行其它多個終端內的shell腳本怎麼實現

ssh $IP_102 -l $User "sh 102.sh"&
ssh $IP_103 -l $User "sh 103.sh"&
這樣執行就可以同時執行了,否則是一個一個執行的。
如果判斷是否執行完成就寫一個log日誌,看好讀日誌就可以了。

熱點內容
matlab編譯工具箱 發布:2024-11-17 08:22:44 瀏覽:30
eda編譯和綜合區別 發布:2024-11-17 08:12:30 瀏覽:993
ftp伺服器前端怎麼用 發布:2024-11-17 08:12:30 瀏覽:66
基金怎麼配置才合適 發布:2024-11-17 07:59:53 瀏覽:786
linux下編譯cpp 發布:2024-11-17 07:59:18 瀏覽:644
javaweb資料庫 發布:2024-11-17 07:59:18 瀏覽:909
hadoop在win10上編譯 發布:2024-11-17 07:47:35 瀏覽:291
c安全編程 發布:2024-11-17 07:44:05 瀏覽:816
演算法上中位 發布:2024-11-17 07:39:05 瀏覽:978
空調壓縮機哪種好 發布:2024-11-17 07:36:50 瀏覽:755