日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

『ssh』使用shell远程执行命令

發(fā)布時間:2024/1/1 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 『ssh』使用shell远程执行命令 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

經(jīng)常需要遠程到其他節(jié)點上執(zhí)行一些shell命令,如果分別ssh到每臺主機上再去執(zhí)行很麻煩,因此能有個集中管理的方式就好了。所以介紹幾種shell命令遠程執(zhí)行的方法。
前提條件:配置shell免密登錄

執(zhí)行單條命令

ssh user@remoteNode "df -h"

執(zhí)行多條命令

ssh user@remoteNode "cd /home ; ls" #雙引號,必須有。如果不加雙引號,第二個ls命令在本地執(zhí)行;分號,兩個命令之間用分號隔開

執(zhí)行需要交互的命令

ssh user@remoteNode "sudo ls /root"

sudo: sorry, you must have a tty to run sudo

ssh user@remoteNode "top" TERM environment variable not set.

這兩條命令雖然提示的失敗原因不同,但它們有一個共同點:都需要與用戶交互(需要 TTY)。所以它們失敗的原因也是相同的:
默認情況下,當你執(zhí)行不帶命令的 ssh 連接時,會為你分配一個 TTY。因為此時你應該是想要運行一個 shell 會話。
但是當你通過 ssh 在遠程主機上執(zhí)行命令時,并不會為這個遠程會話分配 TTY。此時 ssh 會立即退出遠程主機,所以需要交互的命令也隨之結(jié)束。
好在我們可以通過 -t 參數(shù)顯式的告訴 ssh,我們需要一個 TTY 遠程 shell 進行交互!
添加 -t 參數(shù)后,ssh 會保持登錄狀態(tài),直到你退出需要交互的命令。

ssh user@remoteNode "sudo ls /root" sudo: sorry, you must have a tty to run sudo #必須分配一個終端 ssh -t user@remoteNode "sudo ls /root" [sudo] password for user: #加-t選項后成功,輸入用戶密碼

2.腳本方式:

2.1執(zhí)行本地腳本

ssh user@remoteNode < test.sh

2.2向腳本傳遞參數(shù)

ssh user@remoteNode 'bash -s' < test.sh age

2.3執(zhí)行遠程服務(wù)器上的腳本

ssh user@remoteNode "/tmp/test.sh" #寫腳本的絕對路徑

2.4執(zhí)行遠程服務(wù)器上的腳本并帶參數(shù)

ssh user@remoteNode "/tmp/test.sh arguement"

示例2: 初始化系統(tǒng)環(huán)境。在test.sh腳本中編寫:關(guān)閉selinux命令、關(guān)閉iptables、修改hosts文件、安裝jdk環(huán)境等。 #!/bin/bash #變量定義 ip_array=("192.168.1.1" "192.168.1.2" "192.168.1.3") user="tester" remote_cmd="/home/test.sh" for ip in ${ip_array[@]} do ssh -t -p $port $user@$ip "remote_cmd" done

命令使用方法

ssh [-p port] [user@]hostname [command]

port : ssh連接端口號
user: ssh連接用戶名
ip:ssh連接的ip地址
cmd:遠程服務(wù)器需要執(zhí)行的操作
其他選項:
-t:強制分配一個偽終端,可以在遠程機器上執(zhí)行任何全屏幕(screen-based)程序,所以非常有用,例如菜單服務(wù)。雙t選項(-tt)的意思是強制分配終端,即使ssh沒有本地終端。
-T:禁止分配偽終端。
-q:靜默模式,忽略所有警告和診斷信息。

總結(jié)

以上是生活随笔為你收集整理的『ssh』使用shell远程执行命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。