#!/usr/bin/env bash

# Collecting IPSec Debug Information

DATE=`date +%d-%m-%Y`

a_CMD=(
       "sudo ipsec status"
       "sudo swanctl -L"
       "sudo swanctl -l"
       "sudo swanctl -P"
       "sudo ip x sa show"
       "sudo ip x policy show"
       "sudo ip tunnel show"
       "sudo ip address"
       "sudo ip rule show"
       "sudo ip route"
       "sudo ip route show table 220"
      )


echo "DEBUG: ${DATE} on host \"$(hostname)\"" > /tmp/ipsec-status-${DATE}.txt
date >> /tmp/ipsec-status-${DATE}.txt

# Execute all DEBUG commands and save it to file
for cmd in "${a_CMD[@]}"; do
    echo -e "\n### ${cmd} ###" >> /tmp/ipsec-status-${DATE}.txt
    ${cmd} >> /tmp/ipsec-status-${DATE}.txt 2>/dev/null
done

# Collect charon logs, build .tgz archive
sudo journalctl /usr/lib/ipsec/charon > /tmp/journalctl-charon-${DATE}.txt && \
sudo tar -zcvf /tmp/ipsec-debug-${DATE}.tgz /tmp/journalctl-charon-${DATE}.txt /tmp/ipsec-status-${DATE}.txt >& /dev/null
sudo rm -f /tmp/journalctl-charon-${DATE}.txt /tmp/ipsec-status-${DATE}.txt

echo "Debug file is generated and located in /tmp/ipsec-debug-${DATE}.tgz"