51 lines
1.8 KiB
Bash
51 lines
1.8 KiB
Bash
#!/bin/bash
|
|
|
|
main() {
|
|
issues='[]'
|
|
total=0
|
|
failed=0
|
|
|
|
name="$(uname -n 2>/dev/null || echo 'unknown')"
|
|
total=$((total + 1))
|
|
if [ "$name" != "unknown" ]; then
|
|
issue=$(jq -n --arg n "$name" '{
|
|
"issue title": "Hostname collected successfully",
|
|
"issue description": ("Hostname retrieved: " + $n),
|
|
"issue severity": 4,
|
|
"issue next steps": "No action needed. Informational check."
|
|
}')
|
|
issues=$(echo "$issues" | jq --argjson i "$issue" '. += [$i]')
|
|
else
|
|
failed=$((failed + 1))
|
|
issue=$(jq -n '{
|
|
"issue title": "Failed to collect hostname",
|
|
"issue description": "uname -n returned no output",
|
|
"issue severity": 2,
|
|
"issue next steps": "Check runner image and available commands."
|
|
}')
|
|
issues=$(echo "$issues" | jq --argjson i "$issue" '. += [$i]')
|
|
fi
|
|
|
|
disks=$(df -h / 2>/dev/null | tail -1 | awk '{print $4, $5}' || echo 'unknown')
|
|
total=$((total + 1))
|
|
issue=$(jq -n --arg d "$disks" '{
|
|
"issue title": "Disk space collected",
|
|
"issue description": ("Root filesystem available/full: " + $d),
|
|
"issue severity": 4,
|
|
"issue next steps": "No action needed. Informational check."
|
|
}')
|
|
issues=$(echo "$issues" | jq --argjson i "$issue" '. += [$i]')
|
|
|
|
summary=$(jq -n \
|
|
--arg t "$total" \
|
|
--arg f "$failed" \
|
|
'{
|
|
"issue title": "System Info Check (Bash) — Summary",
|
|
"issue description": ("Checked " + $t + " system commands; " + $f + " failed."),
|
|
"issue severity": 4,
|
|
"issue next steps": "Informational. Review details in description."
|
|
}')
|
|
issues=$(echo "$issues" | jq --argjson i "$summary" '. += [$i]')
|
|
|
|
echo "$issues" >&3
|
|
} |