在这个全新的工具和多样化的开发环境井喷的大环境下,任何开发者和工程师都有必要学习一些基本的系统管理命令。特定的命令和工具包可帮助开发者组织、排查故障并优化他们的应用程序,而且当出现错误时,也可以为运维人员和系统管理员提供有价值的分类信息。 无论你是新手开发者还是希望管理自己的应用程序,下面 20 条基本的系统管理命令都可以帮助您更好地了解您的应用程序。它们还可以帮助解决为什么应用程序可在本地正常工作但不能在远程主机上工作这类的系统故障。这些命令适用于 Linux 开发环境、容器和虚拟机。 1. curl curl 用于传输一个 URL。可以使用这条命令用于测试应用程序的端点或与上游服务端点的连接。curl 还可用于检查你的应用程序是否能连接到其他服务,例如数据库,或检查您的服务是否处于健康的状态。 举个例子,假如你的应用程序抛出一个 HTTP 500 错误,表示无法访问 MongoDB 数据库: -I 选项用于显示头信息,-s 选项表示使用静默模式,不显示错误和进度。检查数据库的端点是否正确: 那么可能是什么问题呢? 检查您的应用程序是否可以访问数据库以外的其他位置: 看起来这没问题,现在尝试访问数据库。您的应用程序正在使用数据库的主机名,因此请先尝试: 这表示您的应用程序无法解析数据库,因为数据库的 URL 不可用或主机(容器或VM)没有可用于解析主机名的域名服务器。 2. python -m json.tool / jq 使用 curl 后,API 调用的输出可读性可能较差。有时候,你希望将生成的 JSON 数据格式化输出以查找特定的条目。Python 有一个内置的库可帮助您实现这个需求。可以使用 python -m json.tool 来缩进和组织 JSON。要使用 Python 的 JSON 模块,需要使用管道机制,将 JSON 文件的输出作为输入,写入到 python -m json.tool 命令行。 要使用 Python 库,使用 -m (module) 选项将输出内容和 Python 库组合成管道。 对于更高级的 JSON 解析,可以安装 jq。jq 提供了一些从 JSON 输入中提取特定值的选项。要像上面的 Python 模块一样将 JSON 输出格式化,只需将 jq 应用到输出即可。 3. ls ls 用于列出目录中的文件,系统管理员和开发者会经常使用这个命令。在容器空间中,这条命令可以帮助确定容器镜像中的目录和文件。除了查找文件,ls 还可以用于检查权限。下面的示例中,由于权限问题,你不能运行 myapp。当你使用 ls -l 检查权限时,你会发现它的权限在 -rw-r--r-- 中没有"x",只有读写的权限。 4. tail tail 显示文件的最后一部分内容。通常情况下,你不需要浏览每行日志以进行故障排除。而是需要检查日志中对应用程序的最新请求的说明。例如,当你向 Apache HTTP 服务器发起请求时,可以使用 tail 来检查日志中发生的情况。 使用 tail -f 来跟踪日志文件并在发起请求时查看它们。 -f 选项表示跟随的意思,它可在日志被写入文件时输出它们。下面的示例具有每隔几秒访问端点的后台脚本,日志会记录请求。除了实时跟踪日志,还可以使用 tail 带上 -n 选项来查看文件的最后 100 行。 5. cat cat 主要用于查看文件内容和合并文件。你可能会使用 cat 来检查依赖项文件的内容,或确认已在本地构建的应用程序的版本。 上面的示例检查您的 Python Flask 应用程序是否已将 Flask 列为依赖项。 6. grep (责任编辑:本港台直播) |