diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2017-09-20 13:22:17 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2017-09-20 13:23:21 +0200 |
commit | 74c34e9c4f25183935c64b4a0b03202ef56de23b (patch) | |
tree | 16d2e658b2859c49a356e85be4a8a9dff827648d /bin/itzks-hosts | |
parent | 3db41d65540ad6f59954207093c33a679b323cb0 (diff) | |
download | itzks-systems-74c34e9c4f25183935c64b4a0b03202ef56de23b.tar.gz itzks-systems-74c34e9c4f25183935c64b4a0b03202ef56de23b.tar.bz2 itzks-systems-74c34e9c4f25183935c64b4a0b03202ef56de23b.zip |
New script 'itzks-hosts'. Convert all LDAP host objects to a list in CSV file format.
Diffstat (limited to 'bin/itzks-hosts')
-rwxr-xr-x | bin/itzks-hosts | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/bin/itzks-hosts b/bin/itzks-hosts new file mode 100755 index 0000000..bb5239b --- /dev/null +++ b/bin/itzks-hosts @@ -0,0 +1,24 @@ +#!/bin/bash + +set -e + +ldapsearch -xLLL "(&(cn=*)(objectClass=ipHost))" \ + cn ipHostNumber macAddress description 2>/dev/null | perl -p0e 's/\n //g' | \ +while read KEY VALUE ; do + case "$KEY" in + dn:) + HOSTNAME= ; IP= ; MAC= ; DESC= ; DN=${VALUE} + OU=$(echo $DN | sed -r -e 's/cn=[^,]+,ou=[^,]+,ou=[^,]+,ou=([^,]+),.*/\1/') + ;; + cn:) HOSTNAME="${VALUE}";; + ipHostNumber:) IP="${VALUE}";; + macAddress:) MAC="${VALUE}";; + description:) DESC="${VALUE}";; + "") + if [ -n "$DESC" ]; then DESC="\"${DESC}\""; fi + echo "${OU},${HOSTNAME},${IP},${MAC},${DESC}" + ;; + esac +done + +exit 0 |