tmux 如何通过 SSH 帮助您管理 Cloudways 服务器
已发表: 2020-03-06
本文补充并扩展了我创建的关于使用 SSH 和 tmux 管理我的 Cloudways 服务器的视频。 在视频中,您可以看到我使用 tmux 管理到多个 Cloudways 服务器的 SSH 连接,并使用命令行工具 htop 分析服务器负载。
你可以在这里观看完整的视频:
由于这次谈话的内容远不止我在视频中介绍的内容,我想写这篇免费文章,并就我为什么使用 tmux 以及为什么我依赖 SSH 进行服务器管理提供更多见解。
给你一些背景知识,我不是受过培训的服务器管理员——甚至不是受过训练的 Web 开发人员。 我所做的一切都是自学的。 对我来说,边做边学是我最喜欢的获取技能或应对我面临的挑战的方法。 我不再是正规教育的朋友(我退出了 IT 安全硕士学位),而是相信参与技术以了解它的工作原理。
在观看视频和通读本文时,请记住这种方法。 正如您将看到的,我将文章分为两个部分。 每一篇都可能是一篇很长的文章,也可能是多篇单独的文章,但我认为在这种情况下它们可以很好地结合在一起。
- 通过 SSH 管理您的服务器
- 为什么要使用命令行?
- 用例:使用 htop 调试服务器负载
- 用例:在 Cloudways 服务器上使用 WP-CLI
- 为什么我推荐 tmux?
通过 SSH 管理您的服务器
使用 Cloudways 进行托管的优势之一是您可以通过命令行访问服务器和应用程序。 虽然它不是 root 访问权限,但您可以在命令行上做很多事情。
从我的角度来看,我没有获得对 Cloudways 服务器的 root 访问权限是合理的。 想象一下,如果每个服务器管理员都安装自己的工具和软件包,那么维护 2 万台服务器会是什么样子。 这是不可能实现的壮举。 话虽如此,Cloudways 让我们可以访问 WP-CLI 和许多其他标准工具。 这对于维护您的服务器和随时了解服务器正在做的事情非常有用。
我花了一段时间才了解通过 SSH 管理我的服务器的好处,但现在我看不到任何其他方式来处理这个问题。 我使用命令行的主要原因是:
- 我不必等待 Web 应用程序加载来查看我想看到的内容。
- 登录是通过 SSH 密钥管理的,因此我不必不必要地输入密码。
- 我可以保持 SSH 会话运行,而不必担心登录和注销。
- 我可以访问 WP-CLI,并且可以执行在常规 WP 管理仪表板中无法执行的操作。
- 我可以使用 cron 作业和脚本自动执行任务。
- 我不必将手从键盘上移开即可使用鼠标,而且可以让它们保持放松。
请注意,作为先决条件,您应该安装某种形式的 SSH 客户端。 如果您使用的是 Linux 或 Mac,则只需使用预装的终端应用程序即可。 如果您是像我一样的 Windows 用户,您可以安装PuTTY或使用Windows 子系统 Linux 附带的 Bash (这是我更喜欢的)。
如果您不想安装任何其他软件,您也可以从 Cloudways 控制台打开一个 SSH 终端,但这不是我建议日常使用的解决方案。 正如您将看到的,使用命令行界面的美妙之处在于不必登录到像 Cloudways 控制台这样的 Web 应用程序。
为什么要使用命令行?
使用命令行一开始感觉很吓人。 这对于服务器管理和在我的本地 PC 或 Mac 上使用命令行都是如此。 我对命令行的大部分知识来自我在 Internet 上阅读的教程或我在 Cisco 工作的朋友。 都是边做边学。
尤其是在配置服务器或服务(如 Web 服务器或服务器端缓存)时,很容易破坏事物。 不知道我在做什么并且没有任何使用命令行工具的经验并不一定会激发我尝试通过 SSH 管理我的服务器的信心。
我最终得到了宿醉,并通过以下三个规则发现了使用命令行的好处:
- 始终一步一步,并尝试准确了解您在这一步中所做的事情。
- 总是有一个还原点或备份,以防万一你搞砸了。
- 始终在安全的环境中进行测试,不要第一次在实时网站上执行命令行工具。
有了这些规则,我知道什么都不会出错。 我使用“克隆”功能在 Cloudways 上创建了我的实时网站的临时版本,并遵循了他们通过 SSH 登录的教程。 登录后,我开始使用 WP-CLI 和其他简单的服务器管理工具,如 htop。
如果您遵循类似的方法,您应该能够安全地学习如何使用命令行。 拥有开发或 IT 背景会有所帮助,但我认为没有必要。 只需将命令行视为与计算机交互的一种方式,就像您在桌面上使用鼠标一样。 特别是使用WP-CLI ,很容易在命令行上迈出第一步并在 WP Admin 仪表板上查看结果。
用例:使用 htop 调试服务器负载
在视频中,您将看到我正在使用工具 htop 来分析服务器资源使用情况。 htop 是一种标准工具,可让您实时了解服务器上当前发生的情况。 考虑到 Cloudways Platform 监控数据有时会有轻微的延迟,了解更多使用 htop非常有用。
每当 Cloudways bot 通知我 CPU 或 RAM 使用量激增时,我都会通过 SSH 登录到相应的服务器并运行 htop。 在几秒钟内,我可以识别占用资源的进程和应用程序。 使用 Cloudways 网络平台需要一两分钟的时间可以在 10-20 秒内完成。

这就是 htop 在实践中的样子:

然后,调试过程是通过 htop 识别占用异常数量服务器资源的应用程序,并更详细地检查该应用程序。 如果您看到该应用程序的 PHP 进程占用 CPU 或 RAM,您就知道它可能与 WP 插件或您的主题有关。 通常情况下,通过 WP-Cron 调度的进程堆积起来,现在被一次性执行,从而使您的服务器过载。
如果您看到 MySQL 或 MariaDB 进程占用了服务器资源,您就知道您不必查看插件或主题,而是查看数据库。 我已经看到数据库丢失了它们的索引,从而导致 SQL 查询运行非常缓慢。 如果您不知道是 PHP 还是 MySQL 导致了问题,您可能需要很长时间才能确定问题的根源。
可以想象,这只是 htop 可以做的事情的冰山一角。 这是一个实用的 htop 示例列表,它们使我的示例更上一层楼。
用例:在 Cloudways 服务器上使用 WP-CLI
了解如何使用 WP-CLI 可以真正改变您的日常开发方法。 在不移动鼠标的情况下安装 vanilla WP? 没问题。 通过安装附加插件删除所有瞬变? 简单。 分析哪些钩子最能减慢网站的加载时间? 您也可以使用 WP-CLI 做到这一点。
Cloudways 让我们可以通过命令行访问 WP-CLI,这真是太神奇了。 您可以轻松构建安装默认 WordPress 插件堆栈和主题的工具。 或者,您可以使用 WP-CLI 在几秒钟或几分钟内下载您站点的数据库备份(这取决于您的数据库大小)。
这里有一个问题:您必须使用命令行来访问 WP-CLI。 因此,您必须通过 SSH 登录到您的服务器才能在 Cloudways 托管的网站上执行 WP-CLI 命令。
如果没有其他理由让您熟悉命令行并开始使用 SSH 来管理您的服务器,那么 WP-CLI 应该是它。 让我给你举三个值得一试的例子:
1. 优化和修复您的数据库
由于我们没有在 Cloudways 上获得 PhpMyAdmin,因此可以选择使用 WP-CLI 优化和修复 WordPress 数据库很方便。 通过使用wp db optimize和wp db repair ,您可以使数据库加快速度并稳定其进程。
2. 在几秒钟内创建一个子主题
是的,您可以通过手动创建一个带有各自 style.css 和 functions.php 的新目录并将其上传到 wp-content/themes 中来创建子主题 - 但是如果您可以运行一个简单的命令来为您处理所有事情,为什么还要麻烦呢?
无需再查看 Codex 来检查规范是否发生变化,无需更多的 SFTP 登录和文件传输。 只需在命令行中运行以下命令,您的子主题就可以使用了:
wp脚手架子主题SLUG –parent_theme=SLUG –theme_name=TITLE –author=FULL-NAME –author_uri=URI –theme_uri=URI –activate –force
请注意,此命令将默认激活子主题。 如果您不想这样做,请省略命令末尾的“–activate –force”。
3. 为开发目的创建虚拟内容
所有开发人员都需要在开发阶段使用数据。 如果您不必在 WP Admin 仪表板中手动创建和复制帖子和页面怎么办? 如果 WP-CLI 可以通过一个简单的命令为您创建任意数量的虚拟数据怎么办?
通过运行 wp post generate –count=10,您可以在几秒钟内生成十个演示帖子。 相同的功能适用于创建页面、WooCommerce 虚拟数据,甚至允许您将 lorem ipsum 内容添加到帖子中。
只需使用 curl http://loripsum.net/api/4 | wp post generate –post_content –count=10 将创建 10 个帖子,每个帖子都有四段 Lorem Ipsum 文本。
为什么我推荐 tmux?
我希望,我上面给出的示例足以让您对尝试使用 SSH 来维护 Cloudways 服务器感到兴奋。 让我更深入地了解这篇文章,并谈谈我为什么使用 tmux 来管理我的 SSH 会话。
简而言之,tmux 可以让您一次管理多个终端会话。 意思是,当您在 tmux 会话期间在终端中执行某些操作时,tmux 将跟踪您正在执行的操作。 即使您不小心关闭了终端,您的会话也不会丢失。 您只需使用一个命令即可返回上次中断的位置并继续工作。
tmux 还允许您编写会话脚本。 例如,如果您倾向于一遍又一遍地执行相同的命令来设置开发环境,则可以使用 tmux 自动执行这些命令。
坦率地说,我不确定我是否会学习 tmux 所提供的所有功能——仅仅因为它太多了。 它类似于谷歌电子表格或 MS Excel——我们都知道这些工具有多么强大,但每天可能会使用它们 5% 的功能。 但是,我知道足以在我的日常 WordPress 开发中使用 tmux 。
正如您在视频中看到的,我使用 tmux 来跟踪我的 SSH 会话。 这使我免于一次又一次地登录我的 Cloudways 服务器。 我只是重新连接到名为“Cloudways”的 tmux 会话并继续在我的服务器上工作。 不涉及魔法,但即使是这个小小的调整也能每天为我节省时间。 我在家里为我的私人树莓派做同样的事情(我在空闲时间是一个聪明的家庭书呆子)。
tmux 很酷,因为它可以让您节省时间、提高工作效率并减少全天的手部动作。 如果您像我一样,长时间使用 PC 很容易导致手腕疼痛。 即使使用符合人体工程学的鼠标,它也不会消失。 不过,有效的是减少我用手做的动作。
经常将右手从键盘切换到鼠标总是感觉像是中断了流程。 我不得不考虑把右手放在哪里,手腕有轻微的压力,我摆脱了写作的节奏。 使用 tmux,一旦掌握了它,您就可以实现几乎无鼠标的工作效率。
我很想更深入地研究 tmux,但这超出了本文的范围。 相反,我会给你一些文章来帮助你开始使用 tmux 或提高你的技能:Linuxize 的tmux 入门、Keegan Lowenstein使用 tmux的好处和 Peter Jang使用 tmux的极简指南。
