遠端執行命令

2021-06-27 18:59:39 字數 1507 閱讀 8359

遠端執行命令

這個分兩步,很簡單很實用。

第一步,設定ssh免認證,免認證就是只不用密碼認證就可以直接登入,這在寫指令碼伺服器控制時特別有用。 

ssh-keygen -t rsa

cd ~/.ssh

ssh-copy-id xuexi01

注:xuexi01是主機名,也可寫成ip,如192.168.2.11

第二步,就是到遠端伺服器上去執行命令

假如現在有兩個伺服器,乙個叫aa,另乙個叫bb。現在我要在aa上去控制bb。

格式:ssh  bb的使用者名稱@bb的ip  "命令",其中ip也可以使用網域名稱,

格式:ssh  bb的使用者名稱@xuexi01  "命令"

ssh [email protected]  "echo aaa>>hzs_test.txt"

ssh [email protected] 'echo -e "haha\n hoho" >>hzs_test.txt'

--使用網域名稱

ssh tuxedo@xuexi01  "echo aaa>>hzs_test.txt"

ssh tuxedo@xuexi01 "/home/usera/script/test.sh"

遠端指令碼中使用了一些命令,而這些命令被shell解析器的識別依賴於path環境變數時,該指令碼需要在其第一行中包含執行profile檔案的命令。比如,在指令碼的第一行加上:

#!/bin/sh

上面兩步已經可以滿足要求了,第三步是通過指令碼簡本一些操作

第三步 可簡化操作

remotecommand.sh 內容如下:

#!/bin/sh

host_list="xuexi01 xuexi02 xuexi03"

ssh_port=22

for loop in $host_list

do echo "------ start executing in $loop: ----------------------------"

ssh -p $ssh_port $loop "$1"

echo "------ end executing in $loop:------------------------------"

echo

done

注:xuexi01,xuexi02,xuexi03 是三颱linux 的網域名稱,相當於每條命令都會在這三颱機子上執行

增加可執行許可權:

sudo chmod +x remotecommand.sh

執行指令碼:

./remotecommand.sh "cd ~; cd tmp; mkdir tt3"

這條命令相當於分別在xuexi01,xuexi02,xuexi03 三颱機子上執行  "cd ~; cd tmp; mkdir tt3"

遠端執行命令

一 需求 server 下發命令 client 執行命令 ssh協議 import os ret os.popen ls read print ret import subprocess 內建模組 和os模組的功能有相似之處 能執行作業系統的命令的功能 ret subprocess.popen di...

遠端執行命令

伺服器 遠端執行命令 from socket import import subprocess ip port 127.0.0.1 8080 back log 5buffer size 1024tcp server socket af inet,sock stream tcp server.bind...

ssh遠端執行命令

使用ssh不僅可以登入到遠端的linux主機,還可以執行命令。如果是要登入到遠端linux主機,那麼使用下面的命令 ssh username remoteip example ssh hduser 192.168.0.1 這個將開啟乙個登入到遠端主機192.168.0.1的login shell如果...