批量执行命令

把命令放置到aa.txt文件中

#!/bin/bash

# 定义命令文件和错误日志
command_file="aa.txt"
error_log="curl_errors.log"

# 清空或创建错误日志
echo "错误报告 - $(date)" > $error_log

# 记录总命令数和失败数
total_commands=0
failed_commands=0

# 逐行读取命令文件
while IFS= read -r cmd; do
  ((total_commands++))
  echo "执行命令 $total_commands: $cmd"
  
  # 执行命令并捕获 HTTP 状态码和 curl 退出码
  http_code=$(eval "$cmd -s -o /dev/null -w '%{http_code}'")
  exit_code=$?
  
  # 检查是否失败
  if [ $exit_code -ne 0 ] || [[ ! "$http_code" =~ ^2 ]]; then
    ((failed_commands++))
    echo "❌ 命令 $total_commands 失败"
    echo "----------------------------------------" >> $error_log
    echo "失败命令: $cmd" >> $error_log
    echo "HTTP 状态码: $http_code" >> $error_log
    echo "Curl 退出码: $exit_code" >> $error_log
    echo "时间: $(date '+%Y-%m-%d %H:%M:%S')" >> $error_log
  else
    echo "✅ 命令 $total_commands 成功 (HTTP $http_code)"
  fi
done < "$command_file"

# 输出统计信息
echo
echo "执行完成!"
echo "总命令数: $total_commands"
echo "失败命令数: $failed_commands"
echo "错误日志: $error_log"

 

posted @ 2025-03-05 17:41  力王7314  阅读(16)  评论(0)    收藏  举报