script para adicionar usuários a otrs

1

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
    
por Erik van den Berg 17.12.2014 / 15:38

2 respostas

1

É 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.

    
por 18.12.2014 / 07:24
0

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.

    
por 18.12.2014 / 15:24