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