First commit
This commit is contained in:
commit
aac0c031f7
1 changed files with 193 additions and 0 deletions
193
Serverdoku.bash
Normal file
193
Serverdoku.bash
Normal file
|
@ -0,0 +1,193 @@
|
|||
#!/bin/bash
|
||||
|
||||
TOOLS="dmidecode lshw bc"
|
||||
for tool in ${TOOLS}
|
||||
do
|
||||
if ! which $tool > /dev/null
|
||||
then
|
||||
echo $tool fehlt.
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
HOSTNAME=$(hostname -f)
|
||||
OUTFILE=$HOSTNAME-wikidoku.txt
|
||||
|
||||
echo "Achtung: Bitte die generierte Datei $OUTFILE überprüfen und anpassen!"
|
||||
|
||||
cat > $OUTFILE <<EOF
|
||||
== Kurzinfo ==
|
||||
|
||||
* ...
|
||||
|
||||
EOF
|
||||
|
||||
MANUFACTURER=$(dmidecode | grep "System Information" -A 5 | grep Manufacturer | cut -d: -f2 | sed -e 's/^\ //')
|
||||
PRODUCTNAME=$(dmidecode | grep "System Information" -A 5 | grep "Product Name" | cut -d: -f2 | sed -e 's/^\ //')
|
||||
CPUCOUNT=$(lscpu | grep '^CPU(s):' | awk '{ print $2 }')
|
||||
CPUMODEL=$(lscpu | grep 'Model name:' | sed -re 's/Model name:\s+//g')
|
||||
MEMORY=$(lshw -C memory | grep -A10 '*-memory' | grep 'size:' | awk '{ print $2 }')
|
||||
HDDSIZE=$(lsblk -b --output NAME,SIZE | grep -v '─' | grep -v NAME | awk '{print $2}' | sed ':a;N;$!ba;s/\n/+/g' | bc | awk '{ byte =$1 /1024/1024^2 ; print byte " GB" }')
|
||||
|
||||
cat >> $OUTFILE <<EOF
|
||||
== Hardware ==
|
||||
|
||||
* ${MANUFACTURER} ${PRODUCTNAME}
|
||||
* ${CPUCOUNT} x ${CPUMODEL}
|
||||
* ${MEMORY} RAM
|
||||
* ${HDDSIZE} HDD
|
||||
|
||||
EOF
|
||||
|
||||
cat >> $OUTFILE <<EOF
|
||||
== Filesystem ==
|
||||
|
||||
{| class="wikitable"
|
||||
! Device
|
||||
! Mountpoint
|
||||
! Grösse
|
||||
! Beschreibung
|
||||
EOF
|
||||
|
||||
df -h | grep -v tmpfs | grep -v udev | grep -v ^Filesystem | while read line
|
||||
do
|
||||
DEVICE=$(echo $line | awk '{print $1}')
|
||||
SIZE=$(echo $line | awk '{print $2}')
|
||||
MOUNTPOINT=$(echo $line | awk '{print $6}')
|
||||
echo "|-" >> $OUTFILE
|
||||
echo "| ${DEVICE}" >> $OUTFILE
|
||||
echo "| ${MOUNTPOINT}" >> $OUTFILE
|
||||
echo "| ${SIZE}" >> $OUTFILE
|
||||
echo "| ..." >> $OUTFILE
|
||||
done
|
||||
|
||||
SWAPDEV=$(grep SWAP /etc/fstab | awk '{print $1}')
|
||||
SWAPDEVSIZE=$(free -m | grep ^Swap: | awk '{print $2}')
|
||||
|
||||
echo "|-" >> $OUTFILE
|
||||
echo "| ${SWAPDEV}" >> $OUTFILE
|
||||
echo "| none" >> $OUTFILE
|
||||
echo "| ${SWAPDEVSIZE}M" >> $OUTFILE
|
||||
echo "| Swap Space" >> $OUTFILE
|
||||
|
||||
cat >> $OUTFILE <<EOF
|
||||
|-
|
||||
|}
|
||||
|
||||
EOF
|
||||
|
||||
cat >> $OUTFILE <<EOF
|
||||
== Netzwerk ==
|
||||
|
||||
{| class="wikitable"
|
||||
! Device
|
||||
! IP/Mask
|
||||
! Hostname
|
||||
! Beschreibung
|
||||
EOF
|
||||
|
||||
for line in $(ip a s | grep '^[0-9]' | awk '{ print $2 }' | grep -v lo | sed -e 's/\:$//')
|
||||
do
|
||||
rows=$(ip a s $line | grep inet | sed -re 's/.*inet6?//' | awk '{ print $1 }' | grep -v '^fe80:' | wc -l)
|
||||
if [[ "$rows" -eq 0 ]]; then
|
||||
echo "|-" >> $OUTFILE
|
||||
echo "| '''${line}'''" >> $OUTFILE
|
||||
echo "| " >> $OUTFILE
|
||||
echo "| " >> $OUTFILE
|
||||
echo "| ..." >> $OUTFILE
|
||||
continue
|
||||
fi
|
||||
echo "|-" >> $OUTFILE
|
||||
echo "|rowspan="${rows}"| '''${line}'''" >> $OUTFILE
|
||||
for inet in $(ip a s $line | grep inet | sed -re 's/.*inet6?//' | awk '{ print $1 }' | grep -v '^fe80:'); do
|
||||
IFADDR=$(echo $inet | cut -d/ -f1)
|
||||
IFCIDR=$(echo $inet | cut -d/ -f2)
|
||||
IFHOSTNAME=$(getent hosts "${IFADDR}" | head -1 | awk '{ print $2 }')
|
||||
echo "| ${IFADDR}/${IFCIDR}" >> $OUTFILE
|
||||
echo "| ${IFHOSTNAME}" >> $OUTFILE
|
||||
echo "| ..." >> $OUTFILE
|
||||
echo "|-" >> $OUTFILE
|
||||
done
|
||||
done
|
||||
|
||||
cat >> $OUTFILE <<EOF
|
||||
|}
|
||||
|
||||
EOF
|
||||
|
||||
DEFAULTGW=$(ip route show default | grep ^default | awk '{print $3}')
|
||||
DEFAULTIF=$(ip route show default | grep ^default | awk '{print $5}')
|
||||
DEFAULTIFIP=$(ip a s dev ${DEFAULTIF} | grep inet | head -n1 | awk '{print $2}' | cut -d"/" -f1)
|
||||
echo "* '''Gateway:''' ${DEFAULTIF} ${DEFAULTGW}" >> $OUTFILE
|
||||
|
||||
cat >> $OUTFILE <<EOF
|
||||
== User mit Login Shell ==
|
||||
|
||||
In folgender Tabelle alle User mit '''gültiger Loginshell''' (z.B. /bin/sh, /bin/bash, /bin/zsh) sowie '''gültigem Passwort''' (z.B. Eintrag in /etc/shadow) aufführen.
|
||||
|
||||
{| class="wikitable"
|
||||
! Username
|
||||
! Login Shell
|
||||
! Zweck
|
||||
EOF
|
||||
|
||||
grep -e "sh$" /etc/passwd | while read line
|
||||
do
|
||||
USRNAME=$(echo $line | cut -d: -f1)
|
||||
USRSHELL=$(echo $line | cut -d: -f7)
|
||||
USRSHADOW=$(grep ${USRNAME} /etc/shadow | cut -d: -f2)
|
||||
if [[ ${USRSHADOW} = '!' ]]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
echo "|-" >> $OUTFILE
|
||||
echo "| ${USRNAME}" >> $OUTFILE
|
||||
echo "| ${USRSHELL}" >> $OUTFILE
|
||||
echo "| ..." >> $OUTFILE
|
||||
done
|
||||
|
||||
cat >> $OUTFILE <<EOF
|
||||
|-
|
||||
|}
|
||||
|
||||
EOF
|
||||
|
||||
cat >> $OUTFILE <<EOF
|
||||
== Sonstiges ==
|
||||
* ...
|
||||
|
||||
=== Dienste ===
|
||||
* SSH
|
||||
|
||||
== Backup ==
|
||||
*
|
||||
|
||||
== Zugänge ==
|
||||
* SSH
|
||||
|
||||
EOF
|
||||
|
||||
if [ -e /dev/ipmi0 -o -e /dev/ipmi/0 ]
|
||||
then
|
||||
ILOIP=$(ipmitool lan print | grep '^IP Address' | grep -v Source | awk '{print $4}')
|
||||
|
||||
cat >> $OUTFILE <<EOF
|
||||
== Management Module ==
|
||||
'''Zugangsmöglichkeiten:'''
|
||||
|
||||
* SSH (TCP Port 22): ssh root/Administrator@${ILOIP}
|
||||
* Web (TCP Port 443): https://${ILOIP}
|
||||
|
||||
EOF
|
||||
|
||||
fi
|
||||
|
||||
OS=$(lsb_release -i | sed -re 's/Distributor ID:\s+//g')
|
||||
OSCODENAME=$(lsb_release -c | sed -re 's/Codename:\s+//g')
|
||||
|
||||
echo "[[Category:Systemdokumentation]]" >> $OUTFILE
|
||||
if [[ -z "${OSCODENAME}" || "${OSCODENAME}" == "n/a" ]]; then
|
||||
echo "[[Category:${OS^}]]" >> $OUTFILE
|
||||
else
|
||||
echo "[[Category:${OS^}:${OSCODENAME^}]]" >> $OUTFILE
|
||||
fi
|
Loading…
Reference in a new issue