summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-09-20 13:22:17 +0200
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-09-20 13:23:21 +0200
commit74c34e9c4f25183935c64b4a0b03202ef56de23b (patch)
tree16d2e658b2859c49a356e85be4a8a9dff827648d /bin
parent3db41d65540ad6f59954207093c33a679b323cb0 (diff)
downloaditzks-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')
-rwxr-xr-xbin/itzks-hosts24
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