在 CentOS 中,您可以使用 nohup 命令结合 shell 脚本来实现命令自动重试
retry_command.sh 的 shell 脚本文件:#!/bin/bash
# 设置重试次数
max_retries=5
# 设置要执行的命令
command_to_run="your_command_here"
# 初始化计数器
counter=0
# 循环执行命令直到成功或达到最大重试次数
while [ $counter -lt $max_retries ]; do
# 使用 nohup 执行命令并将输出重定向到日志文件
nohup $command_to_run > output.log 2>&1 &
# 获取后台进程的进程 ID
pid=$!
# 等待进程结束
wait $pid
# 检查进程退出状态
if [ $? -eq 0 ]; then
echo "命令执行成功"
break
else
echo "命令执行失败,重试次数:$((counter+1))/$max_retries"
counter=$((counter+1))
fi
# 如果未达到最大重试次数,则等待一段时间后再次尝试
if [ $counter -lt $max_retries ]; then
sleep 5
fi
done
if [ $counter -eq $max_retries ]; then
echo "已达到最大重试次数,命令执行失败"
fi
将 your_command_here 替换为您要执行的实际命令。
保存脚本文件并为其添加可执行权限:
chmod +x retry_command.sh
./retry_command.sh
此脚本将尝试执行指定的命令,并在失败时自动重试,直到成功或达到最大重试次数。每次重试之间将等待 5 秒。您可以根据需要调整重试次数和等待时间。