Linux SSH 遠程執行腳本

1. 環境

有時我們的程序會部署在多個Linux服務器上,每次部署程序我們不可能把程序一一部署到各個服務器上,我們需要實現一個腳本來自動完成這事,這其中有兩個難點:
1. 程序文件必須同步到各個服務器
2. 在各個服務器上啓動程序
下面就圍繞這兩個問題來解決。

2. 解決問題

2.1 文件同步

文件同步實現起來比較簡單,你可以使用scp,ftp,lftp,http 等等,這裏我給大家推薦rsync 這個命令一般Linux服務器默認安裝的都有,這個用來同步實在是方便多了,不懂的大家可以百度下,這裏我提供一個我使用的

rsync -avrh --exclude '*.swp' --exclude '*.log' --delete ./ root@HOST1:/home/foo

2.2 腳本遠程執行

先寫個測試腳本remote.sh,後面用來遠程執行

#!/bin/bash

echo $1
echo $HOSTNAME

這個腳本用來打印第一個參數和運行時的主機名
執行下述這個命令將 remote.shHOST1 上執行,無需拷貝

ssh root@HOST1 'bash -s' < remote.sh test

運行結果:

test
HOST1

3. 總結

這裏只是提供一個小范例,想對rsync 更深入地可以Google,從這個例子我們可以看出SSH 這個工具的強大之處,其實它的作用還有很多,比如端口映射等等也是非常用的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章