shell腳本模擬鍵盤輸入完成程序交互(定時重啓docker部署的項目樣例)

shell腳本模擬鍵盤輸入完成程序交互(定時從起docker部署的項目樣例)

背景

最近有一個利用docker部署的組件(test1)每天晚上12-1點總是會停止工作,但又找不到異常原因,重啓後恢復正常,國慶將至,打算寫一個定時任務每天凌晨2點重啓該組件

已知條件

docker部署的組件路徑:/data/app_ansible/test1

手動重啓docker步驟如下

cd /data/app_ansible/test1
sh ./exec.sh
-----------------------------------------------------
------------tomcate快速部署配置-----------------------
-----------------------------------------------------
以下爲執行模式
1:部署安裝  2:配置同步  3:啓動  4:重啓  5:停止  6:卸載   n:退出部署
請選擇執行模式:4
-----------------------------------------------------
以下爲主機列表(選着多個目標用空格隔開)
1:192.168.1.2
*:全部
n:退出部署
請選擇執行目標主機:1

重啓過程代碼省略

從上面的過程可以看出需要手動輸入執行模式(重啓,即輸入4)以及執行目標主機(只有一臺,即輸入1)

創建腳本

創建restartTest1.sh腳本並加入如下代碼

#! /bin/bash
cd /data/app_ansible/test1
sh ./exec.sh << XXG
4
1
XXG

注意:注意第三行的末尾的“<< XXG”以及末尾成對出現的XXG是關鍵,中間的4和1分別是執行exec.sh過程中需要依次輸入的兩次參數。

然後執行crontab -e添加定時任務即可

11 2 * * * sh /data/app_ansible/test1/restartTest1.sh

 

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