如何将所有 FreeIPA 用户列表导出为 csv 格式?

如何将所有 FreeIPA 用户列表导出为 csv 格式?

如何将所有 FreeIPA 用户导出到 csv 文件?

答案1

这个命令对我有用:

ipa user-find --all | grep -E "User Login|First|Last|UID|Email" > IPA_RAW.txt

之后,使用此 perl 行转换格式:

perl -ne 'chomp; print $_ . (($. % 8) ? "," : "\n")' IPA_RAW.txt | awk "Add your filters here" > users-list.csv

谢谢

答案2

迟来的但完整的“复制/粘贴”答案(基于以前的答案 - 谢谢 - 我本可以在写完 ipa2json 后退出);满足现在和将来的需求。

导出用户:

ipa user-find --all > ipa.txt

如果输出被截断,请使用以下命令调整限制并重试:

ipa config-mod --searchrecordslimit=######

要使用此方法,您需要在打算处理 ipa.txt 的机器(或容器)上安装 nodejs;为此,我建议使用 nvm:

# install nodejs version manager (nvm) for the current user (not root!)
wget https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash

# install the latest nodejs long time support (lts) version for the current user
nvm install --lts

为当前用户安装所需的脚本作为命令行工具:

npm i -g ipa2json      # to convert ipa output to json
npm i -g equalizejson  # to spread missing fields in every record
npm i -g json2csv      # to convert the json to csv

使用以下方法将 ipa 输出转换为 json:

ipa2json ipa.txt > ipa.json

均衡 json (您需要所有实例中的所有字段才能正确进行 csv 转换)并转换为 csv:

equalizejson ipa.json | json2csv > ipa.csv

要卸载 nvm、nodejs 和脚本,您只需删除$NVM_DIR文件夹(通常是~/.nvm),如在终端中输入“nvm”时所记录的那样。

相关内容