고객 사용자를 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 파일에 사용되는 탭을 정의해야 합니다.