Как можно экспортировать всех пользователей FreeIPA в файл csv?
У меня сработала эта команда:
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
спасибо
Поздний, но полный ответ "копировать/вставить" (на основе предыдущих - спасибо - я мог бы уйти после написания ipa2json); для настоящих и будущих нужд.
Экспорт пользователей с помощью:
ipa user-find --all > ipa.txt
Если выходные данные усечены, отрегулируйте ограничение с помощью приведенной ниже команды и повторите попытку:
ipa config-mod --searchrecordslimit=######
Чтобы использовать этот метод, вам нужны nodejs на машине (или в контейнере), где вы собираетесь обрабатывать ipa.txt ; для этого я предлагаю использовать 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» в терминале.