É muito fácil de fazer com o Bash. Você pode se estender da seguinte ideia:
while read firstname lastname password email username; do \
otrs.AddCustomerUser.pl -p password ...; done
Substitua os pontos pela linha de comando completa.
Estou procurando uma maneira rápida de importar usuários de clientes para otrs (sistema de tickets). Tenho uma exportação do Active Directory com:
nome sobrenome senha nome de usuário e-mail
Existe um script na pasta otrs / bin com este script:
otrs.AddCustomerUser.pl [-f firstname] [-l lastname] [-p password] [-g groupname] [-e email] [-c CustomerID] username
if you define -g with a valid group name then the user will be added that group
Então, agora eu gostaria de ter um script bash que lê cada linha e executar o script otrs.AddCustomerUser.pl
com as variáveis / entrada de users.txt
. Acho que será algo com awk
, mas meu cérebro não consegue descobrir . Eu encontrei muitos scripts que fazem quase o mesmo, mas eu não consigo encontrar o caminho certo para fazê-lo funcionar.
O arquivo users.txt é formatado como
firstname[TAB]lastname[TAB]password[TAB]email[TAB]username\n
espero que você possa ajudar. caso contrário, será uma maratona de duas horas ..:)
Este é o código que eu tenho agora, mas não está funcionando.
#!/bin/bash
while read
firstname=$( echo $line | cut -f1 )
lastname=$( echo $line | cut -f2 )
password=$( echo $line | cut -f3 )
email=$( echo $line | cut -f4 )
user=$( echo $line | cut -f5 )
do /opt/otrs/bin/otrs.AddCustomerUser.pl -f $firstname -l $lastname -p $password -e $email -c CUSTOMER $user
done < /root/tabdelimited.csv
É muito fácil de fazer com o Bash. Você pode se estender da seguinte ideia:
while read firstname lastname password email username; do \
otrs.AddCustomerUser.pl -p password ...; done
Substitua os pontos pela linha de comando completa.
Ok. Obrigado a todos. especialmente @pdp. Seu código foi quase perfeito para mim. O código exato que eu usei está abaixo ... talvez para o próximo otrs migrador:
#!/bin/bash
IFS=$'\t'
while read First Last Pw Email User; do
/opt/otrs/bin/otrs.AddCustomerUser.pl -f $First -l $Last -p $Pw -e $Email -c CustomerCompany $User
done < /root/tabdelimited.csv
Não sei se o IFS=$'\t'
é necessário, ele deve definir as guias usadas no arquivo csv.