顧客ユーザーを 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ファイルで使用されるタブを定義する必要があります。