在Linux下經常寫shell腳本,當然少不了需要在各臺機器上執行命令了。
假如現在我要在10.2.226.201上寫shell並且運行這個shell腳本。可是這個腳本需要在10.2.226.202和10.2.226.203上運行一下命令。如何實現呢?
摸索了幾種方法,可是感覺最簡單的方法就是通過SSH了。如何實現呢?
1. 在上面三臺機器上分別配置用戶ssh等效性連接。(注意:在所有機器上都要執行下面的操作)
cd /home/用戶名
ssh-keygen
ssh-copy-id -i .ssh/id_rsa.pub hostname01
ssh-copy-id -i .ssh/id_rsa.pub hostname02
ssh-copy-id -i .ssh/id_rsa.pub hostname03
SSH等效性連接提供了一種在集羣中其他主機上覆制文件和執行程序時不需要口令提示的安全方式。
2.配置好SSH等效性連接後,在這三臺機器上覆制文件和執行程序就不在需要口令了。當然ssh過去也是不需要口令的。
我在10.2.226.201上寫的腳步如何在其他機器上執行命名呢?
如果我連到另一臺機器上只是執行一個命令可以這樣寫:
ssh [email protected] cd /opt/
如果我連到另一臺機器上執行多於一個命令可以這樣寫:
ssh [email protected] "cd /opt/;pwd"
注意:當多於兩個命令時,一定要把所有命令以分號的方式寫在雙引號裏面。
3. 沒有第三步了。