在 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 秒。您可以根據需要調整重試次數和等待時間。