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