本篇內(nèi)容主要講解“有哪些ssh遠(yuǎn)程執(zhí)行命令方法和Shell腳本”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“有哪些ssh遠(yuǎn)程執(zhí)行命令方法和Shell腳本”吧!
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到灌云網(wǎng)站設(shè)計(jì)與灌云網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋灌云地區(qū)。ssh執(zhí)行遠(yuǎn)程操作
命令格式
代碼如下:
ssh -p $port $user@$p 'cmd'
$port : ssh連接端口號(hào)
$user: ssh連接用戶名
$ip:ssh連接的ip地址
cmd:遠(yuǎn)程服務(wù)器需要執(zhí)行的操作
準(zhǔn)備工作
基于公私鑰認(rèn)證或者用戶名密碼認(rèn)證能確保登錄到遠(yuǎn)程local2服務(wù)器(有點(diǎn)基本運(yùn)維知識(shí)的人做這個(gè)事情都不是問(wèn)題)
cmd如果是腳本,注意絕對(duì)路徑問(wèn)題(相對(duì)路徑在遠(yuǎn)程執(zhí)行時(shí)就是坑)
不足
這個(gè)命令可以滿足我們大多數(shù)的需求,但是通常運(yùn)維部署很多東西的時(shí)候需要root權(quán)限,但是有幾處限制:
遠(yuǎn)程服務(wù)器local2禁止root用戶登錄
在遠(yuǎn)程服務(wù)器腳本里轉(zhuǎn)換身份用expect需要send密碼,這樣不夠安全
ssh的-t參數(shù)
代碼如下:
-t Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.
中文翻譯一下:就是可以提供一個(gè)遠(yuǎn)程服務(wù)器的虛擬tty終端,加上這個(gè)參數(shù)我們就可以在遠(yuǎn)程服務(wù)器的虛擬終端上輸入自己的提權(quán)密碼了,非常安全
命令格式
代碼如下:
ssh -t -p $port $user@$ip 'cmd'
示例腳本
代碼如下:
#!/bin/bash
#變量定義
ip_array=("192.168.1.1" "192.168.1.2" "192.168.1.3")
user="test1"
remote_cmd="/home/test/1.sh"
#本地通過(guò)ssh執(zhí)行遠(yuǎn)程服務(wù)器的腳本
for ip in ${ip_array[*]}
do
if [ $ip = "192.168.1.1" ]; then
port="7777"
else
port="22"
fi
ssh -t -p $port $user@$ip "remote_cmd"
done
到此,相信大家對(duì)“有哪些ssh遠(yuǎn)程執(zhí)行命令方法和Shell腳本”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!