Gitlab用戶信息批量導出

前言

    因運維體系中涉及到用戶權限管理及統計,需將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

相關文章
相關標籤/搜索