summaryrefslogtreecommitdiff
path: root/bin/itzks-hosts
blob: bb5239ba542c6bc8509f79f19823c5897199a7c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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