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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux远程执行本地脚本,ssh远程执行命令方法和Shell脚本实例

發布時間:2025/3/20 linux 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux远程执行本地脚本,ssh远程执行命令方法和Shell脚本实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫這篇博客之前,我google了一堆相關文章,大都是說修改/etc/sudoers,然后NOPASSWD:指定的cmd,但是真心不管用,沒有遠程虛擬終端這個方法就是浮云,ubuntu10.04 server 親測!!

ssh執行遠程操作命令格式

ssh -p $port $user@$p 'cmd'

$port : ssh連接端口號

$user: ssh連接用戶名

$ip:ssh連接的ip地址

cmd:遠程服務器需要執行的操作

準備工作

基于公私鑰認證或者用戶名密碼認證能確保登錄到遠程local2服務器(有點基本運維知識的人做這個事情都不是問題)

cmd如果是腳本,注意絕對路徑問題(相對路徑在遠程執行時就是坑)

不足

這個命令可以滿足我們大多數的需求,但是通常運維部署很多東西的時候需要root權限,但是有幾處限制:

遠程服務器local2禁止root用戶登錄

在遠程服務器腳本里轉換身份用expect需要send密碼,這樣不夠安全

ssh的-t參數

-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.

中文翻譯一下:就是可以提供一個遠程服務器的虛擬tty終端,加上這個參數我們就可以在遠程服務器的虛擬終端上輸入自己的提權密碼了,非常安全

命令格式

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"

#本地通過ssh執行遠程服務器的腳本

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

這個方法還是很方便的,-t虛擬出一個遠程服務器的終端,在多臺服務器同時部署時確實節約了不少時間啊!

總結

以上是生活随笔為你收集整理的linux远程执行本地脚本,ssh远程执行命令方法和Shell脚本实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。