天天看點

Linux 利用 expect 進行 scp 自動同步檔案

現在有一個這樣的需求:

執行一個腳本,自動從指定伺服器上全量拉取指定目錄的檔案,遠端伺服器的使用者名、端口、密碼、目錄配置在執行的shell腳本中。

要實作這樣的需求,我們使用scp 來實作,但是scp 在執行的過程中需要輸入密碼,是以我們就需要用到一個工具 “expect” 來實作自動化腳本。

關于 expect 的使用可以參考:http://blog.csdn.net/catoop/article/details/48289991

下面附上2個腳本:

1、進行檔案同步的腳本,檔案名 expect_scp

2、執行本機操作的 shell 腳本,檔案名 deploy.sh

deploy.sh 為什麼可以直接執行的腳本,内部調用 expect_scp 為專門用來拉取遠端伺服器上檔案的腳本。

腳本比較簡單,就不逐行介紹了。

----------------------------------------------

ps:本例的原來用意是做自動化部署用的,測試環境的代碼在測試伺服器上,該deploy.sh 腳本為正式環境,當測試環境測試通過後,正式環境通過執行 deploy.sh 就可以進行相關内容的同步并進行自動停止和重新開機服務,完成正式環境的自動化部署。

這個腳本,我們可以在别的伺服器上或者通過部署平台進行調用執行。

繼續閱讀