[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 #!/bin/bash 2 3 # 4 ## $Id: se3_csv_generer_entrees_computers.sh 6654 2011-11-27 16:35:54Z dbo $ ## 5 # 6 ##### Import des entrees computers d apres un CSV IP;NOM;MAC ##### 7 # 8 # Import des entrees computers d apres un CSV IP;NOM;MAC 9 10 # Stephane Boireau 11 12 if [ -z "$1" -o ! -e "$1" ]; then 13 echo "USAGE: Fournir un CSV des machines:" 14 echo " IP;NOM;MAC" 15 echo " Eventuellement:" 16 echo " IP;NOM;MAC;PARC" 17 echo "" 18 echo " Un fichier au format IP;NOM;MAC peut etre genere en effectuant un export" 19 echo " des reservations DHCP (se3-dhcp)." 20 exit 21 fi 22 DHCPCSV=$1 23 24 . /usr/share/se3/sbin/variables_admin_ldap.sh lib > /dev/null 25 if [ -z "$ROOTDN" ]; then 26 echo "ERREUR: La version de variables_admin_ldap.sh n'est pas assez recente." 27 echo " Les variables ROOTDN, PASSDN,... ne sont pas initialisees." 28 exit 29 fi 30 31 tmp=/root/tmp/creation_entrees_machines_d_apres_un_csv_$(date +%Y%m%d%H%M%S) 32 mkdir -p $tmp 33 34 while read A 35 do 36 IP=$(echo "$A"|cut -d";" -f1) 37 NOM=$(echo "$A"|cut -d";" -f2|tr "[A-Z]" "[a-z]") 38 MAC=$(echo "$A"|cut -d";" -f3|tr "[a-z]" "[A-Z]") 39 PARC=$(echo "$A"|cut -d";" -f4) 40 41 #t=$(echo "$IP"|sed -e "s|[0-9.]||g") 42 t=$(echo "$IP"|sed -e "s|[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}\.[0-9]\{1,\}||g") 43 if [ -n "$t" ]; then 44 IP="" 45 fi 46 47 t=$(echo "$NOM"|sed -e "s|[a-zA-Z0-9_.]||g") 48 if [ -n "$t" ]; then 49 NOM="" 50 fi 51 52 t=$(echo "$MAC"|sed -e "s|[A-F0-9:]||g") 53 if [ -n "$MAC" ]; then 54 MAC="" 55 fi 56 57 t=$(echo "$PARC"|sed -e "s|[a-zA-Z0-9_.]||g") 58 if [ -n "$t" ]; then 59 PARC="" 60 fi 61 62 if [ -n "$IP" -a -n "$NOM" -a -n "$MAC" ]; then 63 # Inutile de remplir le UNATTENDCSV: 64 # Il faut juste les entrees dans l'annuaire. 65 # Pour le reste: 66 # - importer le CSV dans DHCP 67 # - lancer unattended-generate.sh 68 # Creer un parc et y mettre ces machines. 69 #UMAC=$(echo "$MAC" | sed -e "s|:||g") 70 #if ! grep "^\"$UMAC\"," $UNATTENDCSV; then 71 # echo "^\"$UMAC\",\"ComputerName\",\"$NOM\"" >> $UNATTENDCSV 72 # echo "^\"$NOM\",\"FullName\",\"$NOM\"" >> $UNATTENDCSV 73 #fi 74 75 t=$(ldapsearch -xLLL macAddress=$MAC) 76 if [ -z "$t" ]; then 77 echo "dn: cn=$NOM,ou=Computers,$BASEDN} 78 cn: $NOM 79 objectClass: top 80 objectClass: ipHost 81 objectClass: ieee802Device 82 objectClass: organizationalRole 83 ipHostNumber: $IP 84 macAddress: $MAC 85 " > $tmp}/$NOM}.ldif 86 echo "Ajout de $NOM" 87 ldapadd -x -D $ROOTDN} -w $ADMINPW} -f $tmp}/$NOM}.ldif 88 if [ "$?" = "0" -a -n "$PARC" ]; then 89 90 t=$(ldapsearch -xLLL -b ou=Parcs,$BASEDN cn=$PARC) 91 if [ -z "$t" ]; then 92 echo "Creation du parc $PARC et ajout de $NOM au parc" 93 echo "dn: cn=$PARC,ou=Parcs,$BASEDN} 94 objectClass: groupOfNames 95 cn: $PARC 96 member: cn=$NOM,ou=Computers,$BASEDN 97 " > $tmp}/$PARC}_avec_$NOM}.ldif 98 ldapadd -x -D $ROOTDN} -w $ADMINPW} -f $tmp}/$PARC}_avec_$NOM}.ldif 99 else 100 echo "Ajout de $NOM au parc $PARC" 101 echo "dn: cn=$PARC,ou=Parcs,$BASEDN} 102 changetype: modify 103 add: member 104 member: cn=$NOM,ou=Computers,$BASEDN 105 " > $tmp}/$PARC}_ajout_$NOM}.ldif 106 ldapmodify -x -D $ROOTDN} -w $ADMINPW} -f $tmp}/$PARC}_ajout_$NOM}.ldif 107 fi 108 fi 109 fi 110 else 111 echo "Ligne 112 $A 113 non conforme, donc non traitee." 114 fi 115 done < $DHCPCSV 116 117 echo "Si des entrees ont ete ajoutees, pensez a relancer unattended-generate.sh"
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |