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
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////