前言
因運維體系中涉及到用戶權限管理及統計,需將Gitlab用戶數據提取出來並錄入到公司內部自建的權限統計平臺。git
本文將對Gitlab的用戶信息數據批量導出進行操做說明!sql
思路
A)要對數據進行批量的導出,固然第一想法是將數據庫中對應的庫、表相關數據進行導出便可;數據庫
B)經過Navicat數據庫工具鏈接Gitlab的Postgresql數據庫,可以很方便的查找相關數據及信息導出,但工具在電腦本地,Gitlab在服務器,存在鏈接受權、鏈接信息等相關配置,這些操做可能涉及到服務重啓等操做,對現用的Gitlab服務存在潛在的隱患,故工具方式棄用;服務器
C)故筆者選擇:登錄Gitlab服務器進行數據庫登錄、數據查詢及信息導出操做;運維
操做
# 根據配置文件,定位相關信息 工具
[root@l-git4 ~]# cat /var/opt/gitlab/gitlab-rails/etc/database.ymlgitlab
# 查看Gitlab對應的系統用戶 post
[root@l-git4 ~]# cat /etc/passwd | grep gitlabspa
# 根據信息登錄數據庫 postgresql
# 切換用戶
[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