32 lines
764 B
Bash
Executable File
32 lines
764 B
Bash
Executable File
#!/bin/bash
|
|
|
|
# Initialize counters
|
|
declare -A counts
|
|
statuses=("init" "pending" "running" "fail" "oom" "timeout" "completed")
|
|
for status in "${statuses[@]}"; do
|
|
counts[$status]=0
|
|
done
|
|
|
|
# Find and process all status.txt files
|
|
while IFS= read -r -d '' file; do
|
|
status=$(cat "$file" | tr -d '[:space:]')
|
|
|
|
if [[ " ${statuses[@]} " =~ " ${status} " ]]; then
|
|
((counts[$status]++))
|
|
fi
|
|
done < <(find "$1" -name "status.txt" -print0)
|
|
|
|
# Calculate total
|
|
total=0
|
|
for count in "${counts[@]}"; do
|
|
((total += count))
|
|
done
|
|
|
|
# Print the results
|
|
echo "Status | Count"
|
|
echo "-----------|---------"
|
|
for status in "${statuses[@]}"; do
|
|
printf "%-10s | %d\n" "$status" "${counts[$status]}"
|
|
done
|
|
echo "-----------|---------"
|
|
echo "Total | $total" |