将用户添加到 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

所以现在我想要一个 bash 脚本来读取每一行并otrs.AddCustomerUser.pl使用变量/输入执行脚本,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 文件中使用的选项卡。

相关内容