当前位置: 首页 > article >正文

Linux执行一条命令并自动重试直到成功,自动化脚本

  1. 编辑filename.sh文件
sudo vim filename.sh

i 插入模式,编辑文件

# 定义函数来执行并重试每个命令
execute_with_retry() {
  local cmd="$1"
  while true; do
    # 执行命令,并将返回状态存储在STATUS变量中
    eval $cmd
    STATUS=$?

    # 检查命令是否成功,如果成功则退出循环
    if [ $STATUS -eq 0 ]; then
      echo "$cmd 命令执行成功"
      break
    else
      # 如果命令失败,则打印错误信息并等待一秒钟后重试
      echo "$cmd 命令执行失败,状态码: $STATUS. 正在重试..."
      sleep 1
    fi
  done
}

# 分别定义三个命令
CMD1="命令1"
CMD2="命令2"
CMD3="命令3"

# 调用函数执行命令
execute_with_retry "$CMD1"
execute_with_retry "$CMD2"
execute_with_retry "$CMD3"

echo "所有命令执行完毕!"

esc 退出编辑模式
:wq 保存,退出

  1. 添加执行权限
sudo chmod +x filename.sh
  1. 运行文件

方式一:直接运行

filename.sh

方式二:保存日志到指定路径,退出终端时运行不中断

nohup filename.sh > /data/log.log 2>&1 &

http://www.kler.cn/a/546423.html

相关文章:

  • 如何在割接过程中确保服务不中断?
  • 【Elasticsearch】index索引相关模块
  • sql:时间盲注和boolen盲注
  • 3.3.4 VO-O语法- 算子分类(一)
  • webassembly009 transformers.js 网页端侧推理 NLLB翻译模型
  • 智能背后的阴影:LLM安全风险
  • 华为支付-商户基础支付场景准备
  • Flask和Django相比哪个更适合新手?
  • 利用背景图像进行信息泄露和 LPE:AnyDesk CVE-2024-12754、ZDI-24-1711
  • 内网穿透简单使用
  • uniapp商城之首页模块
  • Apache Iceberg 与 Apache Hudi:数据湖领域的双雄对决
  • USB Flash闪存驱动器安全分析(第一部分)
  • 文心一言4月起全面免费,6月底开源新模型:AI竞争进入新阶段?
  • Redis 01 02章——入门概述与安装配置
  • Go语言实现单例模式
  • 基于opencv的HOG+角点匹配教程
  • Day1 25/2/14 FRI
  • 执行js生成json文件并动态写入数据
  • HTTP请求报文头和相应报文头