otrs에 사용자를 추가하는 스크립트

otrs에 사용자를 추가하는 스크립트

고객 사용자를 otrs(티켓팅 시스템)로 가져오는 빠른 방법을 찾고 있으며 Active Directory에서 다음을 내보냈습니다.

이름 성 비밀번호 이메일 사용자 이름

otrs/bin 폴더에는 다음과 같은 스크립트가 있습니다.

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

이제 각 줄을 읽고 otrs.AddCustomerUser.pl변수/입력을 사용하여 스크립트를 실행하는 bash 스크립트가 필요합니다. users.txt뭔가 있을 것이라고 생각 awk하지만 내 두뇌가 그것을 알아낼 수 없습니다. 거의 동일한 작업을 수행하는 스크립트를 많이 찾았지만 이를 작동시키는 올바른 방법을 찾을 수 없습니다.

users.txt 파일의 형식은 다음과 같습니다.

firstname[TAB]lastname[TAB]password[TAB]email[TAB]username\n

이것은 내가 지금 가지고 있는 코드이지만 작동하지 않습니다.

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

답변1

Bash를 사용하면 이 작업을 쉽게 수행할 수 있습니다. 다음 아이디어를 확장할 수 있습니다.

while read firstname lastname password email username; do \
    otrs.AddCustomerUser.pl -p password ...; done

점을 완전한 명령줄로 바꾸세요.

답변2

좋아요 다들 감사 해요. 특히 @pdp. 귀하의 코드는 거의 정확해 보입니다. 내가 사용한 정확한 코드는 아래와 같습니다. 아마도 다음 otrs 마이그레이션 프로그램에서 작동할 것입니다.

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

필요한지 확실하지 않으면 IFS=$'\t'csv 파일에 사용되는 탭을 정의해야 합니다.

관련 정보