Fixed Generate Script
This commit is contained in:
63
scripts-backup/generate-report.sh
Executable file
63
scripts-backup/generate-report.sh
Executable file
@@ -0,0 +1,63 @@
|
||||
#!/bin/bash
|
||||
input="web_list.json"
|
||||
output="web_check.json"
|
||||
tmpfile=$(mktemp)
|
||||
|
||||
jq -c '.[]' "$input" | while read -r entry; do
|
||||
host=$(echo "$entry" | jq -r '.host')
|
||||
domain=$(echo "$entry" | jq -r '.domain')
|
||||
path=$(echo "$entry" | jq -r '.path')
|
||||
word=$(echo "$entry" | jq -r '.["word-to-check"]')
|
||||
basic_auth=$(echo "$entry" | jq -r '.basic_auth')
|
||||
user=$(echo "$entry" | jq -r '.basic_auth_name // empty')
|
||||
pass=$(echo "$entry" | jq -r '.basic_auth_pass // empty')
|
||||
|
||||
[[ -z "$path" ]] && path="/"
|
||||
|
||||
# --- SSL check ---
|
||||
ssl_info=$(echo | openssl s_client -servername "$domain" -connect "$domain:443" 2>/dev/null | openssl x509 -noout -dates -issuer)
|
||||
ssl_released=$(echo "$ssl_info" | grep 'notBefore' | cut -d= -f2)
|
||||
ssl_expiry=$(echo "$ssl_info" | grep 'notAfter' | cut -d= -f2)
|
||||
ssl_company=$(echo "$ssl_info" | grep 'issuer' | sed -n 's/.*O=\([^,]*\).*/\1/p')
|
||||
ssl_ok=0
|
||||
if [[ $(date -d "$ssl_expiry" +%s) -gt $(date +%s) ]]; then ssl_ok=1; fi
|
||||
|
||||
# --- Content check ---
|
||||
url="https://$domain$path"
|
||||
if [[ "$basic_auth" == "true" ]]; then
|
||||
content=$(curl -s -u "$user:$pass" "$url")
|
||||
else
|
||||
content=$(curl -s "$url")
|
||||
fi
|
||||
word_ok=0
|
||||
[[ "$content" == *"$word"* ]] && word_ok=1
|
||||
|
||||
# --- Scrivi in tmp JSON ---
|
||||
jq -n \
|
||||
--arg host "$host" \
|
||||
--arg domain "$domain" \
|
||||
--arg path "$path" \
|
||||
--arg word "$word" \
|
||||
--argjson wordcheck_ok "$word_ok" \
|
||||
--argjson sslcheck_ok "$ssl_ok" \
|
||||
--arg ssl_released "$ssl_released" \
|
||||
--arg ssl_expiry "$ssl_expiry" \
|
||||
--arg ssl_company "$ssl_company" \
|
||||
'{
|
||||
host: $host,
|
||||
domain: $domain,
|
||||
path: $path,
|
||||
wordtocheck: $word,
|
||||
wordcheck_ok: $wordcheck_ok,
|
||||
sslcheck_ok: $sslcheck_ok,
|
||||
"ssl-released": $ssl_released,
|
||||
"ssl-expiry": $ssl_expiry,
|
||||
"ssl-company": $ssl_company
|
||||
}' >> "$tmpfile"
|
||||
done
|
||||
|
||||
# --- Combina in array JSON ---
|
||||
jq -s '.' "$tmpfile" > "$output"
|
||||
rm "$tmpfile"
|
||||
|
||||
echo "Check completato. Output salvato in $output"
|
||||
Reference in New Issue
Block a user