前言
因運維體系中涉及到用戶權限管理及統計,需將Gitlab用戶數據提取出來並錄入到公司內部自建的權限統計平台。
本文將對Gitlab的用戶信息數據批量導出進行操作說明!
思路
A)要對數據進行批量的導出,當然第一想法是將數據庫中對應的庫、表相關數據進行導出即可;
B)通過Navicat數據庫工具連接Gitlab的Postgresql數據庫,能夠很方便的查找相關數據及信息導出,但工具在電腦本地,Gitlab在服務器,存在連接授權、連接信息等相關配置,這些操作可能涉及到服務重啟等操作,對現用的Gitlab服務存在潛在的隱患,故工具方式棄用;
C)故筆者選擇:登陸Gitlab服務器進行數據庫登陸、數據查詢及信息導出操作;
操作
# 根據配置文件,定位相關信息
[root@l-git4 ~]# cat /var/opt/gitlab/gitlab-rails/etc/database.yml
# 查看Gitlab對應的系統用戶
[root@l-git4 ~]# cat /etc/passwd | grep gitlab
# 根據信息登陸數據庫
# 切換用戶
[root@l-git4 ~]# su - gitlab-psql
# 登陸數據庫(-h指定host,-d指定數據庫)
-sh-4.2$ psql -h /var/opt/gitlab/postgresql -d gitlabhq_production
# 查看幫助信息
gitlabhq_production=# \h
# 查看數據庫
gitlabhq_production=# \l
# 查看庫中的表(執行命令后,按回車鍵顯示更多表信息)
gitlabhq_production=# \dt
# 通過篩查,可在庫中找到users表,相關用戶信息都記錄在表中!
# 查看users表結構
gitlabhq_production=# \d users
# 查看表信息
gitlabhq_production=# SELECT * FROM users;
# 查看users表中的name字段
gitlabhq_production=# SELECT name FROM users;
# 登出數據庫
gitlabhq_production=# \q
# 確定表表users中的 username , email , state 字段是需要提取的信息,進行導出操作
-sh-4.2$ echo 'select username,email,state from users;' |psql -h /var/opt/gitlab/postgresql -d gitlabhq_production > info.txt