shell遠端執行命令

2022-06-17 04:54:11 字數 1869 閱讀 2022

ssh主要引數說明

-l 指定登入使用者

-p 設定埠號

-f 後台執行,並推薦加上 -n 引數

-n 將標準輸入重定向到 /dev/null,防止讀取標準輸入

-n 不執行遠端命令,只做埠**

-q 安靜模式,忽略一切對話和錯誤提示

-t 禁用偽終端配置

#

!/bin/sh

host_list="

host1 host2 host3 host4

"ssh_port=2202

for loop in

$host_list

do echo

"executing in $loop:

"ssh -p $ssh_port $loop "$1"

#ssh -f   -p $ssh_port $loop  "$1" & 

echo

done

呼叫 tar zxvf /root/pat.tar.gz -c /home

在本地呼叫遠端指令碼

$ ssh -l oracle r7  '

/tmp/b.sh &

'

注意以下幾點:

&表示後台執行,也可以不加;

指令碼要擁有執行許可權;

如果遠端指令碼 b.sh 中使用了檔案,檔案必須要寫全路徑,不然的話,預設為指定使用者的home目錄,而非當前目錄。

使用管道模擬併發

#

!/usr/bin/ksh

#script: ptest.sh

#author: ray001

#date: 2008/10/03

#rev: 2.0

#for study##

purpose:

#實現程序併發,提高執行效率,同時能記錄每個執行失敗的子程序資訊

#定義併發程序數量

parallel=3

#定義臨時管道檔名

tmpfile=$.fifo

#定義匯出配置檔案全路徑名

cmd_cfg=$home/cfg/ptest.cfg

#定義失敗標識檔案

failure_flag=failure.log

####################### 函式定義 ########################

#中斷時kill子程序

function trap_exit

#通用執行函式

exec_cmd()

if [ $? -ne 0 ]

then

echo

"命令執行失敗

"return 1fi

}trap

'trap_exit; exit 2

' 1 2 3 15

#清理失敗標識檔案

rm -f $

#為併發程序建立相應個數的佔位

mkfifo $tmpfile

exec 4<>$tmpfile

rm -f $tmpfile

>&4 #

從任務列表 seq 中按次序獲取每乙個任務

while

read sec

do read

<&4( exec_cmd $ || echo $>>$ ; echo >&4 ) &done

<$cmd_cfg

wait

exec 4>&-

#併發程序結束後判斷是否全部成功

if [ -f $ ]

then

exit 1

else

exit 0

fi

shell 執行遠端命令

經常需要遠端到其他節點上執行一些shell命令,如果分別ssh到每台主機上再去執行很麻煩,因此能有個集中管理的方式就好了。一下介紹兩種shell命令遠端執行的方法。配置ssh免密碼登陸 如果是簡單執行幾個命令,則 ssh user remotenode cd home ls 基本能完成常用的對於遠端...

shell登入遠端伺服器執行命令

參考 大概如下 sshpass p password ssh o stricthostkeychecking no root h tt dev null 2 1 remotessh echo i am in h cd dir echo h tests exit remotessh其中 sshpass...

遠端執行命令

遠端執行命令 這個分兩步,很簡單很實用。第一步,設定ssh免認證,免認證就是只不用密碼認證就可以直接登入,這在寫指令碼伺服器控制時特別有用。ssh keygen t rsa cd ssh ssh copy id xuexi01注 xuexi01是主機名,也可寫成ip,如192.168.2.11 第二...