暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux Shell脚本执行成功等待几秒再次执行,无限循环

运维笔谈 2024-11-11
70

点击上方蓝字”运维笔谈”,对话回复 “阿里云k8s” 可以获取《阿里云Kubernetes项目实战手册》PDF。

由于我导入MySQL的表比较新,主键冲突需要删掉对应的表记录,我这边有个fix.sh的脚本可以修复。但是跑一会儿又要去执行下,所以我想搞一个简单的 shell 脚本,该脚本会执行 `fix.sh`,等待 `fix.sh` 执行完成后,再等待 5 秒,然后再次执行 `fix.sh`,无限循环下去。

写了一个示例的脚本:

    #!/bin/bash


    SCRIPT="fix.sh"
    RETRY_DELAY=5 # 等待时间(秒)


    while true; do
    # 执行 fix.sh 脚本
    ./${SCRIPT}


    # 检查退出状态码
    if [ $? -eq 0 ]; then
    echo "Script ${SCRIPT} 执行成功."
    else
    echo "Script ${SCRIPT} 执行错误."
    fi


    # 等待 5 秒
    sleep ${RETRY_DELAY}
    done

    以下是脚本的详细解释

    1. 变量:

    - `SCRIPT`:要执行的脚本文件名。

    - `RETRY_DELAY`:每次执行完脚本后的等待时间(秒)。

    2. 无限循环:

    - 使用 `while true; do ... done` 来创建一个无限循环。

    3. 执行过程:

    - 使用 `./${SCRIPT}` 来执行 `fix.sh` 脚本。

    - 使用 `$?` 检查 `fix.sh` 的退出状态码。如果退出状态码为 0,表示脚本成功执行;否则,表示脚本执行失败。

    这样我就不需要时刻去盯着然后手动执行了。

    文章转载自运维笔谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论