Pular para o conteúdo

Importar base de dados [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Importar base de dados [RESOLVIDO]

Enviado em 11/01/2010 - 16:29h

Ola, estou implementado um servidor ldap aqui no trabalho, temos um servidor moodle(ambiente virtual de aprendizagem) com varios usuarios e necessito importar estes usuarios para que o servidor ldap faça a autenticação. Minha duvida é, o ldap, até onde sei so trabalha com arquivos LDIF, porem quando o faço o export dos usarios, so posso salva-lo no formato do padrao do mysql ou csv, ou xml entre outros. Como posso pegar essa base e importar para meu serviodor ldap? Desde ja agradeço pela atenção

Responder tópico

3. Re: Importar base de dados [RESOLVIDO]

Enviado em 12/01/2010 - 08:03h

Na verdade, o que eu gostaria era pegar a base de usuarios do meu sistema moodle e importar para meu servidor ldap, porem o ldap so trabalha com arquivos ldif, a duvida eh como faço pra converter um arquivo xml, ou xls ou ainda sql para ldif? aguardo retorno.

4. Re: Importar base de dados [RESOLVIDO]

Enviado em 20/01/2010 - 15:01h

Alguem saberia como converter um arquivo .csv para .ldif ?
Desde ja agradeço pela atenção.

5. Re

Enviado em 20/01/2010 - 15:04h

o arquivo com seus usuarios é um formato .csv ??

6. Re: Importar base de dados [RESOLVIDO]

Enviado em 20/01/2010 - 16:06h

Exatamente, sendo que como utilizo o phpmyadmin, posso exporta-los para outros formatos, necessito converte-los para ldif, com isso importa-los para meu servidor openldap. Alguma ideia de como fazer isso?

7. Re:

Enviado em 21/01/2010 - 12:43h

Cara se não me engano , pelo phpLdapAdmin dá pra vc fazer tipo uma provisão em massa ! usando um arquivo CSV !
Dá uma olhada !!! :D

Abraço

8. Re

Enviado em 21/01/2010 - 14:46h

Cara acabei de ver
Usa esse script em perl
http://www.emaillab.org/mutt/contrib/csv2ldif.pl
Cria um arquivo cvs2ldif.pl com o conteudo da pagina
chmod 777 csv2ldif.pl
Dai a execução é assim
./csv2ldif DN < arquivo.csv
DN é tipo
cn=seudominio,cn=com,cn=br saca ????

Valeu !!

9. Resolvido

Enviado em 27/01/2010 - 17:37h

gostaria de agradeçer pela ajuda e atenção na resolução deste problema. Resolvi o problema em parte da seguinte forma:

- Exportei os usuarios moodle atraves do phpmyadmin para um arquivo csv
- Atraves do script abaixo(encontrei no viva o linux) converti os arquivos csv para ldif

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#!/bin/bash
#Para utililar o script você terá que instalar o dialog.
#Como adequar a realidade do seu arquivo CSV
#As variáveis f1, f2 e f... são correspondente as colunas do csv, por tanto basta que você posicione-as de acordo com o layout do arquivo que você pode ver abaixo:

#f1 = dn: (f2) (f3) (f4)
#(f11)
#(f12)
#(f8)
#sn: (f9)
#(f13)
#(f14)
#street: (f16) (f17)
#l: (f18)
#st: (f19)
#postalCode: (f20)
#objectClass: inetOrgPerson
#objectClass: top
#description: (f10)
#homePhone: (f15)


testaTrueFalse ()
{
if [ $? = 1 ]
then
exit
fi
}

#inicializa variável onde o parâmetro é linha do comando head que será usado logo abaixo
cont=1
#captura do teclado o arquivo a ser convertido
arquivo=$( dialog --stdout --inputbox 'Por favor digite o nome do arquivo CSV a ser convertido sem a extensão' 0 0 "arquivoCSV")

#Chama Função
testaTrueFalse

#define o delimitador
delimitador=$( dialog --stdout --inputbox 'Defina o delimitador de seu arquivo CSV. Ex: "," ";" caso o delimitador seja tabulação digite "t" (sem as aspas)' 0 0 "arquivoCSV")

#Chama Função
testaTrueFalse

#Expresão regular para retirar as aspas do arquivo CSV
sed '1,$s/"//g' $arquivo.csv > /tmp/$arquivo.csv

#Define o nome do arquivo resultante
arqResult=$( dialog --stdout --inputbox 'Digite o nome do arquivo resultante' 0 0 "arquivoLDIF")

#Chama Função
testaTrueFalse

rm $arqResult

while [ $cont -le 4 ]
do

#Definindo variáveis para impressão do arquivo
f1=$(head -n$cont /tmp/$arquivo.csv | cut -f1 -d$delimitador | tail -n1)
f7=$(head -n$cont /tmp/$arquivo.csv | cut -f7 -d$delimitador | tail -n1)
f11=$(head -n$cont /tmp/$arquivo.csv | cut -f11 -d$delimitador | tail -n1)

#Iprimindo variáveis no arquivo resultante
echo dn: uid=$f7,ou=moodleusers,dc=sead,dc=uece,dc=br >> $arqResult.ldif
echo objectClass: posixAccount >> $arqResult.ldif
echo objectClass: top >> $arqResult.ldif
echo objectClass: inetOrgPerson >> $arqResult.ldif
echo gidNumber: $f1 >> $arqResult.ldif
echo sn: $f11 >> $arqResult.ldif
echo uid: $f7 >> $arqResult.ldif
echo homeDirectory: /home/$f7 >> $arqResult.ldif
echo cn: $f7 >> $arqResult.ldif
echo uidnumber: $f1 >> $arqResult.ldif
echo " " >> $arqResult.ldif
cont=`expr $cont + 1`
done

# echo $arquivo.csv >> $arqResult.ldif
ls -s $arquiResult.ldif
#chama Função
testaTrueFalse

#echo "Arquivo Gerado" $arqResult.ldif

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder