多台服务器批量增加,修改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文件)

 

你可能感兴趣的:(crontab,shell)