LANG=C
LC_ALL=C
PATH=/sbin:/bin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/local/bin
export LANG LC_ALL PATH
PEES1="$PS1"
PS1="<br/>"
sh << 'EOF'
echo "<systemoutput>"
echo "<env>"
env | sort
echo "</env>"
echo "<hostname>"
hostname
echo "</hostname>"
echo "<meminfo>"
cat /proc/meminfo
echo "</meminfo>"
echo "<cpuinfo>"
cat /proc/cpuinfo
echo "</cpuinfo>"
(
echo "<scsidevices>"
cd /sys/bus/scsi/devices && ( 
for i in * ; do 
echo "<device name=\"$i\">"
for j in model vendor media uevent ; do
test -f $i/$j && ( echo "<$j>" ; cat $i/$j ; echo "</$j>" )
done
echo "</device>"
done
)
echo "</scsidevices>"
) 2>&1 
(
echo "<idedevices>"
cd /sys/bus/ide/devices && (
for i in * ; do 
echo "<device name=\"$i\">"
for j in model vendor media serial drivename ; do
test -f $i/$j && ( echo "<$j>" ; cat $i/$j ; echo "</$j>" )
done
echo "</device>"
done
)
echo "</idedevices>"
) 2>&1 
(
echo "<lsimegaraiddevices>"
X=`(/usr/bin/lspci || /sbin/lspci) | grep "LSI Mega"` ; echo "$X"
if [ ! -z "$X" ]; then 
PATH=$PATH:/usr/lib/nagios/plugins/lihas:/usr/local/bin:/usr/local/sbin ; export PATH
CMD=`( for i in MegaCli MegaCli64 MegaCli32 megacli megacli64 megacli32 ; do 
	if type $i 2> /dev/null > /dev/null ; then
		echo $i
		break
	fi 
done )`
$CMD -PDList -aALL
fi
echo "</lsimegaraiddevices>"
) 2>&1
(
echo "<networkdevices>"
X=`(/usr/bin/lspci || /sbin/lspci) | grep Ethernet` ; echo "$X"
c=`echo "$X" | wc -l` ; c=`expr $c - 1`
while [ $c -ge 0 ]; do
echo "<device name=\"eth$c\">"
ethtool -i eth$c
echo "</device>"
c=`expr $c - 1`
done
echo "</networkdevices>"
) 2>&1 
echo "<oskernel>"
uname -rsm
echo "</oskernel>"
for i in debian_version voyage.conf motd.voyage redhat-release trixbox/trixbox-version  SuSE-release linpus-release lsb-release distro-release issue; do
if [ -f /etc/$i ]; then 
echo "<osuserland file=\"/etc/$i\"><![CDATA["
cat /etc/$i | sed '
	s/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g;
	s/\xE4/\&#xE4;/g;
	s/\xF6/\&#xF6;/g;
	s/\xFC/\&#xFC;/g;
	s/\xC4/\&#xC4;/g;
	s/\xD6/\&#xD6;/g;
	s/\xDC/\&#xDC;/g;
	s/\xDF/\&#xDF;/g;
	s/\xC3\xA4/\&#xC3A4;/g;
	s/\xC3\xB6/\&#xC3B6;/g;
	s/\xC3\xBC/\&#xC3BC;/g;
	s/\xC3\x84/\&#xC384;/g;
	s/\xC3\x96/\&#xC396;/g;
	s/\xC3\x9C/\&#xC39C;/g;
	s/\xC3\x9F/\&#xC39F;/g;
	s/\x1B/\&#27;/g;
'
echo "]]></osuserland>"
fi
done
# virtualization 
(
echo "<selfstatus>"
cat /proc/self/status | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</selfstatus>"
) 2>&1 
( 
echo "<dmi-system-product-name><![CDATA["
dmidecode -s system-product-name
echo "]]></dmi-system-product-name>"
) 2>&1
( 
echo "<dmi-manufacturer-product><![CDATA["
dmidecode | egrep -i 'manufacturer|product'
echo "]]></dmi-manufacturer-product>"
) 2>&1
( 
echo "<dmi-domU><![CDATA["
dmidecode | egrep -i 'domU'
echo "]]></dmi-domU>"
) 2>&1
( 
echo "<disk-by-id>"
ls -1 /dev/disk/by-id/
echo "</disk-by-id>"
) 2>&1
( 
echo "<beancounters>"
ls -1 /proc/user_beancounters
echo "</beancounters>"
) 2>&1
( 
echo "<ethtool-eth0>"
ethtool -i eth0
echo "</ethtool-eth0>"
) 2>&1
( 
echo "<dmesg-grep-virtual>"
dmesg | grep -i virtual
grep -i virtual /var/log/dmesg 
echo "</dmesg-grep-virtual>"
) 2>&1
(
echo "<proc-1-cgroup>"
cat /proc/1/cgroup
echo "</proc-1-cgroup>"
) 2>&1
(
echo "<proc-1-environ>"
cat /proc/1/environ | tr '\0' '\n' 
echo "</proc-1-environ>"
) 2>&1
# /virtualization 
(
echo "<processes>"
ps xa | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</processes>"
) 2>&1 
echo "<cgrouptaskslist>"
( cd /sys/fs/cgroup/systemd/lxc || exit
if [ "`echo */tasks`" = "*/tasks" ]; then exit ; fi 
for i in */tasks ; do 
echo "<cgrouptasks name=\"$i\" flavour=\"systemd\">"
cat $i
echo "</cgrouptasks>"
done
) 2>&1 
( cd /sys/fs/cgroup/pids/lxc || exit
if [ "`echo */tasks`" = "*/tasks" ]; then exit ; fi 
for i in */tasks ; do 
echo "<cgrouptasks name=\"$i\" flavour=\"pids\">"
cat $i
echo "</cgrouptasks>"
done
) 2>&1 
echo "</cgrouptaskslist>"
(
echo "<ifconfig>"
ip a l | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</ifconfig>"
) 2>&1 
(
echo "<routes>"
ip r l | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</routes>"
) 2>&1 
(
echo "<mount>"
cat /proc/mounts | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</mount>"
) 2>&1 
(
echo "<df>"
df | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</df>"
) 2>&1 
(
echo "<drbd>"
cat /proc/drbd | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</drbd>"
) 2>&1 
(
echo "<md>" 
cat /proc/mdstat | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</md>"
) 2>&1 
(
echo "<fdisk>"
fdisk -l | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</fdisk>"
) 2>&1 
(
echo "<vgdisplay>"
vgdisplay | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</vgdisplay>"
) 2>&1 
(
echo "<lvdisplay>"
lvdisplay | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</lvdisplay>"
) 2>&1 
echo "<fstab>"
cat /etc/fstab | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</fstab>"
(
echo "<dmidecode><![CDATA["
( dmidecode | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g' 2>&1 )
echo "]]></dmidecode>"
) 2>&1 
if [ -d /etc/vservers ]; then
echo "<vservers>" 
(
echo "<vserversstat>" 
vserver-stat | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</vserversstat>"
) 2>&1 
( cd /etc/vservers || exit 
if [ "`echo *`" = "*" ]; then exit ; fi 
for i in * ; do
echo "<vserver name=\"$i\">"
( cd $i ; find . -type f | egrep -v "/(RCS|\.distributions|\.defaults|\.?newvserver-vars)/" | while read a ; do
  echo "<tag name=\"$a\" value=\"$( cat $a | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g' )\"/>"
  done
)
echo "</vserver>"
done
)
echo "</vservers>"
else
    echo "<vservers/>"
fi  
(
echo "<openvz>" 
vzlist -a | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</openvz>"
) 2>&1 

if [ -d /var/lib/lxc/ ]; then
echo "<lxc>" 
(
echo "<lxcstat>" 
lxc-ls | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</lxcstat>"
) 2>&1 
( cd /var/lib/lxc/ || exit 
if [ "`echo *`" = "*" ]; then exit ; fi 
for i in * ; do
if [ "$i" = RCS                  ]; then continue ; fi
if [ ! -d /var/lib/lxc/$i        ]; then continue ; fi
if [ ! -f /var/lib/lxc/$i/config ]; then continue ; fi
echo "<lxc-instance name=\"$i\">"
cat /var/lib/lxc/$i/config | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</lxc-instance>"
done
) 2>&1 
echo "</lxc>" 
else
echo "<lxc/>" 
fi
(
echo "<kvm>" 
ps -f -C kvm | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</kvm>"
) 2>&1 
(
echo "<exports>" 
cat /etc/exports | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</exports>"
) 2>&1 
(
echo "<iptables table=\"filter\">" 
iptables -n -L -v -t filter
echo "</iptables>"
) 2>&1 
(
echo "<iptables table=\"nat\">" 
iptables -n -L -v -t nat
echo "</iptables>"
) 2>&1 
(
echo "<iptables table=\"mangle\">" 
iptables -n -L -v -t mangle
echo "</iptables>"
) 2>&1 
(
echo "<iptables table=\"raw\">" 
iptables -n -L -v -t raw
echo "</iptables>"
) 2>&1 
(
echo "<iptables table=\"security\">" 
iptables -n -L -v -t security
echo "</iptables>"
) 2>&1 
(
echo "<iptables-save>" 
iptables-save
echo "</iptables-save>"
) 2>&1 
(
echo "<ssh-keylist>" 
ls -l /etc/ssh/*.pub
echo "</ssh-keylist>"
) 2>&1 
(
echo "<ssh-fingerprint hash=\"SHA256\" keyfile=\"/etc/ssh/ssh_host_rsa_key.pub\">" 
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
echo "</ssh-fingerprint>"
) 2>&1 
(
echo "<ssh-fingerprint hash=\"SHA256\" keyfile=\"/etc/ssh/ssh_host_dsa_key.pub\">" 
ssh-keygen -lf /etc/ssh/ssh_host_dsa_key.pub
echo "</ssh-fingerprint>"
) 2>&1 
(
echo "<ssh-fingerprint hash=\"SHA256\" keyfile=\"/etc/ssh/ssh_host_ecdsa_key.pub\">" 
ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub
echo "</ssh-fingerprint>"
) 2>&1 
(
echo "<ssh-fingerprint hash=\"MD5\" keyfile=\"/etc/ssh/ssh_host_rsa_key.pub\">" 
ssh-keygen -E md5 -lf /etc/ssh/ssh_host_rsa_key.pub
echo "</ssh-fingerprint>"
) 2>&1 
(
echo "<ssh-fingerprint hash=\"MD5\" keyfile=\"/etc/ssh/ssh_host_dsa_key.pub\">" 
ssh-keygen -E md5 -lf /etc/ssh/ssh_host_dsa_key.pub
echo "</ssh-fingerprint>"
) 2>&1 
(
echo "<ssh-fingerprint hash=\"MD5\" keyfile=\"/etc/ssh/ssh_host_ecdsa_key.pub\">" 
ssh-keygen -E md5 -lf /etc/ssh/ssh_host_ecdsa_key.pub
echo "</ssh-fingerprint>"
) 2>&1 
(
echo "<packets manager=\"dpkg\">"
COLUMNS=150 dpkg -l | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</packets>"
(
echo "<packets manager=\"rpm\">"
rpm -qa | sed 's/&/\&amp;/g;s/</\&lt;/g;s/>/\&gt;/g'
echo "</packets>"
) 2>&1 
( 
echo "<lshw>"
lshw -numeric -xml |sed 1d
echo "</lshw>"
) 2>&1
( 
echo "<lsusedcpusockets>"
lscpu -e=SOCKET |sed 1d |sort -u |wc -l
echo "</lsusedcpusockets>"
) 2>&1
( 
echo "<facter-json><![CDATA["
facter -j
echo "]]></facter-json>"
) 2>&1
( 
echo "<ohai-facts-json><![CDATA["
ohai
echo "]]></ohai-facts-json>"
) 2>&1
( 
echo "<ansible-facts-json><![CDATA["
ansible localhost -m setup |sed '1c{'
echo "]]></ansible-facts-json>"
) 2>&1
(
echo "<ipmitool><![CDATA["
ipmitool lan print
ipmitool user list
echo "]]></ipmitool>"
) 2>&1
(
echo "<conf-config-xml><![CDATA["
cat /conf/config.xml
echo "]]></conf-config-xml>"
) 2>&1
echo "<pfctl-nat><![CDATA["
pfctl -s nat
echo "]]></pfctl-nat>"
) 2>&1
(
echo "<pfctl-rules><![CDATA["
pfctl -s rules
echo "]]></pfctl-rules>"
) 2>&1
(
echo "<ifconfig-a><![CDATA["
ifconfig -a
echo "]]></ifconfig-a>"
) 2>&1
(
echo "<ip-j-p_a><![CDATA["
ip -j -p a
echo "]]></ip-j-p_a>"
) 2>&1
(
echo "<ip-j-p_r><![CDATA["
ip -j -p r
echo "]]></ip-j-p_r>"
) 2>&1
(
echo "<sysctl-a><![CDATA["
sysctl -a
echo "]]></sysctl-a>"
) 2>&1
(
echo "<opnsense_version_json><![CDATA["
cat /usr/local/opnsense/version/core
echo "]]></opnsense_version_json>"
) 2>&1
(
echo "<pciconf-lv><![CDATA["
pciconf -lv
echo "]]></pciconf-lv>"
) 2>&1
echo "</systemoutput>"
EOF
PS1="$PEES1"
exit

# ( tr -d '\r\002' | sed '/^<systemoutput>/,/^<\/systemoutput>/p;d' ) < hwlog > hwlog.xml

