Importar base de dados [RESOLVIDO]

1. Importar base de dados [RESOLVIDO]

Ronil Estevam
ronil21

(usa Ubuntu)

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


  


2. backup ldap

André Gustavo Neves Lopes
andrelopes.mrx

(usa FreeBSD)

Enviado em 11/01/2010 - 17:39h

Boa noite,

utilize o slapcat, para fazer backup do seu ldap, ele vai gerar a saida no formato LDIF, existe uma dica postada aqui mesmo no vivaolinux, com a sintaxe, veja:


http://www.vivaolinux.com.br/dica/Fazendo-backup-no-OpenLDAP/


André Gustavo
blog: http://blog.mrx.com.br
gtalk: andre@mrx.com.br


3. Re: Importar base de dados [RESOLVIDO]

Ronil Estevam
ronil21

(usa Ubuntu)

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]

Ronil Estevam
ronil21

(usa Ubuntu)

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

Paulo
phcmaia

(usa Fedora)

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

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


6. Re: Importar base de dados [RESOLVIDO]

Ronil Estevam
ronil21

(usa Ubuntu)

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:

Paulo
phcmaia

(usa Fedora)

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

Paulo
phcmaia

(usa Fedora)

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

Ronil Estevam
ronil21

(usa Ubuntu)

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

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







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts