1. 程式人生 > >多臺伺服器批量增加,修改crontab

多臺伺服器批量增加,修改crontab

shell指令碼 批量增加: # Local Cluser LOCAL="10.10.10.10" # for local crontab_cluster="$LOCAL" # For Tmp TMP_FILE="/tmp/crontab" #定義陣列lines # lines 陣列為需要新增的crontab內容 注:lines下標要從0開始 # lines[0]="" 是為與原記錄間隔空行,非必需 lines[0]="" lines[1]="# crontab script" lines[2]="#*/1 * * * * ..." lines[3]="#*/2 * * * * ..."  # 將原crontab 內容寫入 $TMP_FILE 檔案中
DEPLAY_CRONTAB_CMD1="crontab -l > $TMP_FILE" # 將新增內容後的 $TMP_FILE 檔案內容重新寫入crontab
DEPLAY_CRONTAB_CMD3="crontab  $TMP_FILE" # 定義需要進行批量操作的伺服器列表 hosts=$crontab_cluster for host in ${hosts} do    (執行 $DEPLAY_CRONTAB_CMD1命令)
    # 向 $TMP_FILE 檔案新增 lines陣列 內容     for ((i=0;i<${#lines[*]};i++))     do         DEPLAY_CRONTAB_CMD2="echo \"${lines[i]}\" >> $TMP_FILE"         (執行 $DEPLAY_CRONTAB_CMD2命令)     done     (執行 $DEPLAY_CRONTAB_CMD3命令)     (檢查 $DEPLAY_CRONTAB_CMD3命令執行結果判斷是否繼續) done (刪除 TMP_FILE檔案)

批量修改:
# Local Cluser LOCAL="10.10.10.10" # for local crontab_cluster="$LOCAL" # For Tmp TMP_FILE="/tmp/crontab"
# num 定義要修改內容所在行行數 lines定義該行修改後的內容 注:num lines的陣列下標要保持一致且從0開始 num[0]=5     //第五行 lines[0]="#*/1 * * * *..."   //第五行的內容改為這個字串 num[1]=6 lines[1]="#*/2 * * * * ..." # 將原crontab 內容寫入 $TMP_FILE 檔案中
DEPLAY_CRONTAB_CMD1="crontab -l > $TMP_FILE" # 將新增內容後的 $TMP_FILE 檔案內容重新寫入crontab
DEPLAY_CRONTAB_CMD3="crontab  $TMP_FILE" # 定義需要進行批量操作的伺服器列表 hosts=$crontab_cluster for host in ${hosts} do     (執行 DEPLAY_CRONTAB_CMD1命令)     # 修改 $TMP_FILE 檔案內容     for ((i=0;i<${#num[*]};i++))     do         DEPLAY_CRONTAB_CMD2="sed -i \"${num[i]}c ${lines[i]}\" $TMP_FILE"         (執行 DEPLAY_CRONTAB_CMD2命令)     done    (執行 $DEPLAY_CRONTAB_CMD3命令)    (檢查 $DEPLAY_CRONTAB_CMD3命令執行結果判斷是否繼續) done (刪除
TMP_FILE檔案)  附:原始碼下載