我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们
文章版本: Enterprise Server 2.18

命令行实用程序

GitHub Enterprise Server 包含的各种实用程序可以帮助解决特殊问题或执行特定任务。

以 SSH 管理员用户身份登录后,您可以在虚拟机上的任何位置执行这些命令。 更多信息请参阅“访问管理 shell (SSH)”。

常规

集群

Git

导入和导出

支持

升级 GitHub Enterprise Server

用户管理

常规

ghe-announce

此实用程序会在每个 GitHub Enterprise 页面顶部设置横幅, 您可以使用横幅向用户广播消息。

用法:
# Sets a message that's visible to everyone
$ ghe-announce -s MESSAGE
> Announcement message set.
# Removes a previously set message
$ ghe-announce -u
> Removed the announcement message

ghe-check-disk-usage

此实用程序会检查磁盘中的大文件或已删除但文件句柄仍保持打开的文件。 如果尝试释放根分区中的空间,应运行此实用程序。

用法:
ghe-check-disk-usage

ghe-cleanup-caches

此实用程序会清理各种有可能占用根卷上的额外磁盘空间的缓存。 如果您发现一段时间内根卷磁盘空间的使用量显著升高,最好运行此应用程序,查看是否可以帮助降低整体使用量 。

用法:
ghe-cleanup-caches

ghe-cleanup-settings

此实用程序会擦除所有现有的 管理控制台 设置。

提示: 一般来说,只有在您已联系支持部门 并且他们要求您这样做的时候,才会执行此操作。

用法:
ghe-cleanup-settings

ghe-config

此实用程序可用于检索和修改 您的 GitHub Enterprise Server 实例 的配置设置。

用法:
$ ghe-config core.github-hostname
# Gets the configuration value of `core.github-hostname`
$ ghe-config core.github-hostname 'example.com'
# Sets the configuration value of `core.github-hostname` to `example.com`
$ ghe-config -l
# Lists all the configuration values

允许您在 cluster.conf 中查找节点的 uuid。

$ ghe-config _hostname_.uuid

ghe-config-apply

此实用程序会应用 管理控制台 设置,重新加载系统服务,准备存储设备,重新加载应用程序服务并运行任何待处理的数据库迁移。 相当于在 管理控制台 Web UI 中单击 Save settings,或相当于向 /setup/api/configure 端点发送 POST 请求。

您有可能永远不需要手动运行此实用程序,但如果希望通过 SSH 自动完成设置保存过程,也可以使用此实用程序。

用法:
ghe-config-apply

ghe-console

此实用程序会在您的 GitHub Enterprise 设备上打开 GitHub Rails 控制台。 如果没有来自 GitHub Enterprise 支持 的指示,不要使用此命令。不当使用可能导致损坏或数据丢失。

用法:
ghe-console

ghe-dbconsole

此实用程序会在您的 GitHub Enterprise 设备上打开 MySQL 数据库会话。 如果没有来自 GitHub Enterprise 支持 的指示,不要使用此命令。不当使用可能导致损坏或数据丢失。

用法:
ghe-dbconsole

ghe-es-index-status

此实用程序会以 CSV 格式返回 ElasticSearch 索引的摘要。

用法:

将包含标头行的索引摘要打印到 STDOUT

$ ghe-es-index-status -do
> warning: parser/current is loading parser/ruby23, which recognizes
> warning: 2.3.3-compliant syntax, but you are running 2.3.4.
> warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
> Name,Primary,Searchable,Writable,UpToDate,RepairProgress,Version
> code-search-1,true,true,true,true,100.0,72e27df7c631b45e026b42bfef059328fa040e17
> commits-5,true,true,true,true,100.0,7ed28813100c47813ef654c0ee2bb9abf21ab744
> gists-4,true,true,true,true,100.0,cf8e7d04fcf2564c902e2873c424a279cc41079d
> issues-4,false,false,false,true,100.0,d0bb08f71eebf6e7b070572aa399b185dbdc8a76
> issues-5,true,true,true,true,100.0,d0bb08f71eebf6e7b070572aa399b185dbdc8a76
> projects-2,true,true,true,true,100.0,c5cac1c4b3c66d42e609d088d174dbc3dd44469a
> pull-requests-6,true,true,true,true,100.0,6a466ad6b896a3499509990979bf9a18d7d41de3
> repos-6,true,true,true,true,100.0,6c8b5fbba0fc1e409558db411d05e092c1387082
> users-5,true,true,true,true,100.0,38984875552bb826c9ec42999f409cb2e95556eb
> wikis-4,true,true,true,true,100.0,2613dec44bd14e14577803ac1f9e4b7e07a7c234

将索引摘要和管道结果打印到 column,以供读取:

$ ghe-es-index-status -do | column -ts,
> warning: parser/current is loading parser/ruby23, which recognizes
> warning: 2.3.3-compliant syntax, but you are running 2.3.4.
> warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
> Name             Primary  Searchable  Writable  UpToDate  RepairProgress  Version
> code-search-1    true     true        true      true      100.0           72e27df7c631b45e026b42bfef059328fa040e17
> commits-5        true     true        true      true      100.0           7ed28813100c47813ef654c0ee2bb9abf21ab744
> gists-4          true     true        true      true      100.0           cf8e7d04fcf2564c902e2873c424a279cc41079d
> issues-4         false    false       false     true      100.0           d0bb08f71eebf6e7b070572aa399b185dbdc8a76
> issues-5         true     true        true      true      100.0           d0bb08f71eebf6e7b070572aa399b185dbdc8a76
> projects-2       true     true        true      true      100.0           c5cac1c4b3c66d42e609d088d174dbc3dd44469a
> pull-requests-6  true     true        true      true      100.0           6a466ad6b896a3499509990979bf9a18d7d41de3
> repos-6          true     true        true      true      100.0           6c8b5fbba0fc1e409558db411d05e092c1387082
> users-5          true     true        true      true      100.0           38984875552bb826c9ec42999f409cb2e95556eb
> wikis-4          true     true        true      true      100.0           2613dec44bd14e14577803ac1f9e4b7e07a7c234

git-import

这些实用程序是可从 Subversion、Mercurial 和 Team Foundation Version Control 导入到 Git 仓库的工具套件。 更多信息请参阅“从第三方版本控制系统导入数据”。

git-import 的单个命令
git-import-detect
给定一个 URL,检测哪种类型的源控制管理系统位于另一端。 在手动导入过程中,此信息很可能是已知的,但在自动执行的脚本中非常有用。
git-import-hg-raw
将 Mercurial 仓库导入到此 Git 仓库。
git-import-svn-raw
将 Subversion 历史记录和文件数据导入到 Git 分支。 这属于直接复制树,会忽略任何主干或分支差异。
git-import-tfs-raw
从 Team Foundation Version Control 导入。
git-import-rewrite
导入的最后一步是重写仓库。 您可以在此步中重命名作者,系统会根据文件夹(为 Subversion 和 TFS)生成 Git 分支。

ghe-legacy-github-services-report

此实用程序会列出您的设备中使用 GitHub Services 的仓库,作为一种集成方法,此服务将于 2018 年 10 月 1 日停用。 您的设备上的用户可能已设置 GitHub Services,为发往某些仓库的推送创建通知。 更多信息请参阅 GitHub 博客 上的“宣布弃用 GitHub Services”或 GitHub 开发者文档中的“替换 GitHub Services”。 如需获取关于此命令的更多信息或附加选项,请使用 -h 标志。

用法:
ghe-legacy-github-services-report

ghe-logs-tail

此实用程序允许跟踪记录安装中的所有相关日志文件。 您可以传入选项,将日志限制为特定集合。 使用 -h 标志表示附加选项。

用法:
ghe-logs-tail

ghe-maintenance

此实用程序允许您控制安装维护模式的状态, 其设计为主要由 管理控制台 在后台使用,但也可以直接使用。

用法:
ghe-maintenance -h

ghe-nwo

此实用程序会根据仓库 ID 返回仓库名称和所有者。

用法:
ghe-nwo REPOSITORY_ID

ghe-org-admin-promote

使用此命令可为设备上具有站点管理员权限的用户提供组织所有者权限,或者为组织中的任何用户提供组织所有者权限。 您必须指定用户和/或组织。 ghe-org-admin-promote 命令始终会在运行前要求确认,除非您使用 -y 标志绕过确认过程。

您可将以下选项与实用程序配合使用:

此实用程序无法将非站点管理员升级为所有组织的所有者。 您可以使用 ghe-user-promote 将普通用户帐户升级为站点管理员。

用法:

将特定组织中的组织所有者权限授予一个用户

ghe-org-admin-promote -u USERNAME -o ORGANIZATION

将所有组织中的组织所有者权限授予特定的站点管理员

ghe-org-admin-promote -u USERNAME

将特定组织中的组织所有者权限授予所有站点管理员

ghe-org-admin-promote -o ORGANIZATION

将所有组织中的组织所有者权限授予所有站点管理员

ghe-org-admin-promote -a

ghe-reactivate-admin-login

在 10 分钟内登录尝试失败 10 次后,使用此命令可立即解锁 管理控制台。

用法:
$ ghe-reactivate-admin-login

ghe-resque-info

此实用程序会显示关于后台作业(活动作业和队列中的作业)的信息, 它提供的作业计数与每个页面顶部管理员统计信息栏中的计数相同。

此实用程序可以帮助确定 Resque 服务器在处理后台作业时是否会出现问题。 下列任一场景均可能指示 Resque 存在问题:

如果怀疑 Resque 出现故障,请联系 GitHub Enterprise 支持GitHub 高级支持 获取帮助。

使用此命令,您还可以暂停或恢复队列中的作业。

用法:
$ ghe-resque-info
# lists queues and the number of currently queued jobs
$ ghe-resque-info -p QUEUE
# pauses the specified queue
$ ghe-resque-info -r QUEUE
# resumes the specified queue

ghe-service-list

此实用程序会列出您的设备上已启动或停止(正在运行或等待)的服务。

用法:
$ ghe-service-list
start/running
  - github-resqued, process 12711
  - github-unicorn, process 12726
  - github-gitauth, process 12743
  - git-daemon, process 12755
  - babeld, process 12771
  - github-svn-proxy, process 12802
  - gist-unicorn, process 12832
  - gist-resqued, process 12881
  - render-unicorn, process 12939
  - hookshot-unicorn, process 13076
  - nodeload2, process 13192
  - slumlord-unicorn, process 13304
  - ghe-storage, process 2012
  - enterprise-manage-unicorn, process 2024
  - enterprise-manage-resque, process 2053

stop/waiting

  - ghe-replica-mode

如有需要,可将此命令返回的服务名称与“Upstart”命令结合使用,以手动停止、启动或重启这些服务。 例如:

$ sudo restart github-resqued

停止服务会导致安装停机,因此建议您在停止或重启任何服务之前联系 GitHub Enterprise 支持GitHub 高级支持

ghe-set-password

使用 ghe-set-password,您可以设置新密码,在 管理控制台 中进行身份验证。

用法:
ghe-set-password 

ghe-ssh-check-host-keys

此实用程序会对照已知泄露的 SSH 主机密钥检查现有的 SSH 主机密钥。

用法:
$ ghe-ssh-check-host-keys

如果发现主机密钥泄露,实用程序会以状态 1 退出并显示以下消息:

> One or more of your SSH host keys were found in the blacklist.
> Please reset your host keys using ghe-ssh-roll-host-keys.

如果未发现主机密钥泄露,实用程序会以状态 0 退出并显示以下消息:

> The SSH host keys were not found in the SSH host key blacklist.
> No additional steps are needed/recommended at this time.

ghe-ssh-roll-host-keys

此实用程序会滚动 SSH 主机密钥并将其替换为新生成的密钥。

用法:
$ sudo ghe-ssh-roll-host-keys
Proceed with rolling SSH host keys? This will delete the
existing keys in /etc/ssh/ssh_host_* and generate new ones. [y/N]

# Press 'Y' to confirm deleting, or use the -y switch to bypass this prompt

> SSH host keys have successfully been rolled.

ghe-ssh-weak-fingerprints

此实用程序会返回存储在 GitHub Enterprise 设备上的已知弱 SSH 密钥的报告。 您可以选择批量撤销用户密钥。 此实用程序将报告弱系统密钥,您必须在 管理控制台 中手动撤销这些密钥。

用法:
# Print a report of weak user and system SSH keys
$ ghe-ssh-weak-fingerprints

# Revoke all weak user keys
$ ghe-ssh-weak-fingerprints --revoke

ghe-ssl-acme

此实用程序允许您在 GitHub Enterprise 设备上安装 Let's Encrypt 证书。 更多信息请参阅“配置 TLS”。

您可以将以下附加选项与实用程序结合使用:

用法:
ghe-ssl-acme -e

ghe-ssl-ca-certificate-install

此实用程序允许您在 GitHub Enterprise 服务器上安装自定义根 CA 证书。 证书必须采用 PEM 格式。 此外,如果您的证书提供者在一个文件中包含多个 CA 证书,则必须将其拆分到多个单独文件中,随后再将这些文件逐个传递到 ghe-ssl-ca-certificate-install

Run this utility to add a certificate chain for S/MIME commit signature verification. For more information, see "About commit signature verification."

如果 您的 GitHub Enterprise Server 实例 无法连接到另一台服务器的原因是后者使用自签名 SSL 证书或没有为其提供必要 CA 包的 SSL 证书,请运行此实用程序。 确认这种情况的一种方法是通过 您的 GitHub Enterprise Server 实例 运行 openssl s_client -connect host:port -verify 0 -CApath /etc/ssl/certs。 如果可以验证远程服务器的 SSL 证书,SSL-Session 的返回代码应为 0,如下所示。

SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES128-SHA
    Session-ID: C794EBCC3CBC10F747C9AFC029C03C1048FC99CFC34D13D7444E0F267C58DF4C
    Session-ID-ctx:
    Master-Key: 02A7C47CFD6EEC87D3C710E9DD87390E04EF82DDD7514AE03127D5DC1945FC0CAEFB5395791AEA598667EFA61B9EA8C5
    Key-Arg   : None
    Start Time: 1394581597
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)

另一方面,如果*无法<0>验证远程服务器的 SSL 证书,SSL-Session 的返回代码应为非零值:

SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES128-SHA
    Session-ID: 82CB288051A6DB66094C50A69CF1292AEE7E54C6B01B659B98AB336F8C33863E
    Session-ID-ctx:
    Master-Key: 01B025B2F764043A27919A8D1355AAECD8844FF0831B1D664042334790574A6F4025BAB085D4ED71D71AAB3091B849E5
    Key-Arg   : None
    Start Time: 1394581782
    Timeout   : 300 (sec)
    Verify return code: 27 (certificate not trusted)

您可以将以下附加选项与实用程序结合使用:

用法:
ghe-ssl-ca-certificate-install -c /path/to/certificate

ghe-ssl-generate-csr

此实用程序允许您生成可与商业或私有证书颁发机构共享的私钥和证书签名请求 (CSR),以获取可与您的实例配合使用的有效证书。 更多信息请参阅“配置 TLS”。

如需获取关于此命令的更多信息或附加选项,请使用 -h 标志。

用法:
ghe-ssl-generate-csr

ghe-storage-extend

某些平台需要使用此脚本扩展用户量。 更多信息请参阅“增加存储容量”。

用法:
$ ghe-storage-extend

ghe-version

此实用程序会打印 您的 GitHub Enterprise Server 实例 的版本、平台和内部版本号。

用法:
$ ghe-version

ghe-webhook-logs

此实用程序会返回 web 挂钩交付日志,供管理员审查和确定任何问题。

用法:
ghe-webhook-logs
显示过去一天所有发生故障的挂钩交付
ghe-webhook-logs -f -a YYYYMMDD
显示交付的完整挂钩有效负载、结果以及任何异常。
ghe-webhook-logs -g delivery-guid -v
显示全局 web 挂钩交付
ghe-webhook-logs --global

集群

ghe-cluster-support-bundle

此实用程序创建的支持包 tarball 包含采用 Geo-replication 或集群配置的各个节点中的重要日志。

默认情况下,此命令会在 /tmp 中创建 tarball,但为了便于通过 SSH 进行传输,您也可以通过 cat 将打包文件创建到 STDOUT 中。 在 Web UI 未响应或从 /setup/support 下载支持包失败的情况下,您可以使用此方法。 如果要生成包含旧日志的 extended 包,则必须使用此命令。 您还可以使用此命令将集群支持包直接上传到 GitHub Enterprise Support。

用法:
标准包
$ ssh -p 122 admin@hostname -- 'ghe-cluster-support-bundle -o' > cluster-support-bundle.tgz
扩展包
$ ssh -p 122 admin@hostname -- 'ghe-cluster-support-bundle -x -o' > cluster-support-bundle.tgz
将包发送给支持团队
$ ssh -p 122 admin@hostname -- 'ghe-cluster-support-bundle -u'
将包发送给支持团队并将其与事件单关联
$ ssh -p 122 admin@hostname -- 'ghe-cluster-support-bundle -t ticket-id'

ghe-dpages

此实用程序允许您管理分布式页面服务器。

用法:
ghe-dpages
显示仓库位置和健康状态摘要
ghe-dpages status
撤出集群节点之前撤出页存储服务。
ghe-dpages evacuate pages-server-

ghe-spokes

此实用程序允许您管理分布式 git 服务器上各仓库的三个副本。

用法:
ghe-spokes
显示仓库位置和健康状态摘要
ghe-spokes status
显示存储仓库的服务器。
ghe-spokes route
撤出集群节点上的存储服务。
ghe-spokes server evacuate git-server-

ghe-storage

此实用程序允许您在撤出集群节点之前撤出所有存储服务。

ghe-storage evacuate storage-server-

Git

ghe-btop

当前 Git 操作的类 top 接口。

用法:

ghe-btop [  | --help | --usage ]

ghe-repo

此实用程序允许您切换到仓库的目录并以 git 用户身份打开交互式 shell。 您可以通过 git-*git-nw-* 等命令对仓库执行手动检查或维护。

用法:
ghe-repo username/reponame

ghe-repo-gc

此实用程序会手动重新打包仓库网络,以优化包存储。 如果仓库较大,运行此命令有助于减小其整体大小。 GitHub Enterprise 会在与仓库网络交互的过程中自动运行此命令。

您可以添加可选的 --prune 参数来移除不是从分支、标记或其他任何 ref 引用的不可达 Git 对象。 此方法特别适用于立即移除之前泄露的敏感信息

用法:
ghe-repo-gc username/reponame

导入和导出

ghe-migrator

ghe-migrator 属于高保真工具,可帮助用户从一个 GitHub 实例迁移到另一个实例。 您可以整合实例或将组织、用户、团队和仓库从 GitHub.com 移至 GitHub Enterprise。

更多信息请参阅迁移用户、组织和仓库数据上的指南。

支持

ghe-diagnostics

此实用程序会执行各项检查并收集关于安装的信息,您可以将此类信息发送给支持团队,以帮助诊断您遇到的问题。

目前,此实用程序的输出与下载 管理控制台 中的诊断信息类似,但会逐渐增加一些 Web UI 中未提供的其他改进。 更多信息请参阅“创建和共享诊断文件”。

用法:
ghe-diagnostics

ghe-support-bundle

注:如果您使用的是 Geo-replication 配置或 GitHub Enterprise 集群,则应使用 ghe-cluster-support-bundle 命令检索支持包。有关详细信息,请参阅“命令行实用程序”。

此实用程序会创建包含您的实例中重要日志的支持包 tarball。

默认情况下,此命令会在 /tmp 中创建 tarball,但为了便于通过 SSH 进行传输,您也可以通过 cat 将打包文件创建到 STDOUT 中。 在 Web UI 未响应或从 /setup/support 下载支持包失败的情况下,您可以使用此方法。 如果要生成包含旧日志的 extended 包,则必须使用此命令。 您还可以使用此命令将支持包直接上传到 GitHub Enterprise Support。

用法:
标准包
$ ssh -p 122 admin@hostname -- 'ghe-support-bundle -o' > support-bundle.tgz
扩展包
$ ssh -p 122 admin@hostname -- 'ghe-support-bundle -x -o' > support-bundle.tgz
将包发送给支持团队
$ ssh -p 122 admin@hostname -- 'ghe-support-bundle -u'
将包发送给支持团队并将其与事件单关联
$ ssh -p 122 admin@hostname -- 'ghe-support-bundle -t ticket-id'

ghe-support-upload

此实用程序会将您的设备中的信息发送到 GitHub Enterprise Support。 您可以指定本地文件,或通过 STDIN 提供最大 100MB 的数据流。 可以选择将上传的数据与支持事件单相关联。

用法:
将文件发送给支持团队并将其与事件单相关联
ghe-support-upload -f path/to/your/file -t ticket-id
通过 STDIN 上传数据并将其与事件单相关联
ghe-repl-status -vv | ghe-support-upload -t ticket-id -d "Verbose Replication Status"

升级 GitHub Enterprise Server

ghe-upgrade

此实用程序会安装或验证升级包。 如果升级失败或中断,您还可以使用此实用程序回滚补丁版本。 更多信息请参阅“升级 GitHub Enterprise Server”

用法:
验证升级包
ghe-upgrade --verify UPGRADE-PACKAGE-FILENAME
安装升级包
ghe-upgrade UPGRADE-PACKAGE-FILENAME
回滚补丁版本

您必须使用升级包文件 (.pkg) 回滚补丁版本。 不支持热补丁包文件 (.hpkg)。 运行命令后需要重启。

ghe-upgrade --allow-patch-rollback EARLIER-PATCH-RELEASE-FILENAME

ghe-upgrade-scheduler

此实用程序可以管理已排定的升级包安装。 您可以显示、新建或移除已排定的安装。 您必须使用 cron 表达式创建日程。 更多信息请参阅 Cron 维基百科词条

用法:
新增已排定的包安装
$ ghe-upgrade-scheduler -c "0 2 15 12 *" UPGRADE-PACKAGE-FILENAME
显示已排定的包安装
$ ghe-upgrade-scheduler -s UPGRADE PACKAGE FILENAME
> 0 2 15 12 * /usr/local/bin/ghe-upgrade -y -s UPGRADE-PACKAGE-FILENAME > /data/user/common/UPGRADE-PACKAGE-FILENAME.log 2>&1
移除已排定的包安装
$ ghe-upgrade-scheduler -r UPGRADE PACKAGE FILENAME

ghe-update-check

此实用程序将检查 GitHub Enterprise 是否有新的补丁版本可用。 如果有新的补丁版本,并且实例中有可用空间,系统将下载此包。 默认情况下,包会保存到 /var/lib/ghe-updates。 管理员随后可执行升级

包含下载状态的文件位于 /var/lib/ghe-updates/ghe-update-check.status

要查看最新的 GitHub Enterprise 版本,请使用 -i 开关。

用法:
$ ssh -p 122 admin@hostname -- 'ghe-update-check'

用户管理

ghe-org-membership-update

此实用程序将对您的实例中的所有成员强制实施默认的组织成员关系可见性设置。 更多信息请参阅“配置组织成员关系的可见性”。设置选项为 publicprivate

用法:
ghe-org-membership-update --visibility=SETTING

ghe-user-csv

此实用程序会将安装中所有用户的列表转储为 CSV 格式。 CSV 文件包含电子邮件地址、用户所属类型(例如管理员、用户)、用户拥有的仓库数量、SSH 密钥数量、组织成员关系数量、上次登录的 IP 地址等。 使用 -h 标志可获取更多选项。

用法:
ghe-user-csv -o > users.csv

ghe-user-demote

此实用程序会将指定用户从管理员状态降级为普通用户状态。 建议使用 Web UI 执行此操作,但会在 ghe-user-promote 实用程序运行出错并且需要再次通过 CLI 将用户降级的情况下提供此实用程序。

用法:
ghe-user-demote some-user-name

ghe-user-promote

此实用程序会将指定用户帐户升级为站点管理员。

用法:
ghe-user-promote some-user-name

ghe-user-suspend

此实用程序会挂起指定用户,避免他们登录、推送或从仓库拉取。

用法:
ghe-user-suspend some-user-name

ghe-user-unsuspend

此实用程序会取消挂起指定用户,向他们授予登录、推送以及从仓库拉取的权限。

用法:
ghe-user-unsuspend some-user-name

问问别人

找不到要找的内容?

联系我们