Linux执行一条命令并自动重试直到成功,自动化脚本
- 编辑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 保存,退出
- 添加执行权限
sudo chmod +x filename.sh
- 运行文件
方式一:直接运行
filename.sh
方式二:保存日志到指定路径,退出终端时运行不中断
nohup filename.sh > /data/log.log 2>&1 &