
Jq jq je příkazový nástroj pro práci s JSONem v terminálu
Balíček pro jq se dá instalovat přímo z repozitářů jmenuje se jq:
apt-get install jq
Konfigurák s hodnotami pojmenenujeme variables.yml:
#!/bin/bash
WEBSERVER=$(ss -tulpn '( sport = :80 or sport = :443 )' 2>/dev/null | awk 'NR>1 {gsub(/.*users:\(\("|".*/, "", $0); print}' | sort -u)
NGINX_VH=$(nginx -T 2>/dev/null | grep -oE 'server_name [a-zA-Z0-9\.\-]+.*;' | awk '/server_name/ {for(i=2;i<=NF;i++) print $i}' | tr -d ';' | sort -u)
NGINX_PORT=$(ss -tulpnH '( sport = :80 or sport = :443 )' | awk '{print $5}' | sort -r)
jq -Rn \
--arg webserver "$WEBSERVER" \
--slurpfile vhosts <(jq -Rn 'inputs' <<< "$NGINX_PORT") \
--slurpfile ngxvh <(jq -Rn 'inputs' <<< "$NGINX_VH") \
'{
"Active Webserver": $webserver,
"Ports": $vhosts,
"Nginx VHosts": $ngxvh
}'