如何在 Linux 中列出可用的软件包组
但是如果想一次性安装一个软件包组,在 Linux 中有可能吗?又如何通过命令去实现呢?Media
via https://linux.cn/article-10116-1.html
但是如果想一次性安装一个软件包组,在 Linux 中有可能吗?又如何通过命令去实现呢?Media
via https://linux.cn/article-10116-1.html
cloc:计算不同编程语言源代码的行数
你可以用 cloc 很容易地统计多种语言的源代码行数。它还可以计算空行数、代码行数、实际代码的行数,并通过整齐的表格进行结果输出。Media
via https://linux.cn/article-10118-1.html
你可以用 cloc 很容易地统计多种语言的源代码行数。它还可以计算空行数、代码行数、实际代码的行数,并通过整齐的表格进行结果输出。Media
via https://linux.cn/article-10118-1.html
如何在 Linux 下锁住键盘和鼠标而不锁屏
它很简单但非常实用,你可以锁定屏幕的显示直到用户在键盘上输入自己设定的密码Media
via https://linux.cn/article-10119-1.html
它很简单但非常实用,你可以锁定屏幕的显示直到用户在键盘上输入自己设定的密码Media
via https://linux.cn/article-10119-1.html
如何在救援(单用户模式)/紧急模式下启动 Ubuntu 18.04/Debian 9 服务器
将 Linux 服务器引导到单用户模式或救援模式是 Linux 管理员在关键时刻恢复服务器时通常使用的重要故障排除方法之一。Media
via https://linux.cn/article-10120-1.html
将 Linux 服务器引导到单用户模式或救援模式是 Linux 管理员在关键时刻恢复服务器时通常使用的重要故障排除方法之一。Media
via https://linux.cn/article-10120-1.html
在 Ubuntu 18.04 LTS 上使用 KVM 配置无头虚拟化服务器
使用 KVM,我们可以在几分钟之内,很轻松地将任意 Linux 服务器转换到一个完全的虚拟化环境中,以及部署不同种类的虚拟机,比如 GNU/Linux、*BSD、Windows 等等。Media
via https://linux.cn/article-10121-1.html
使用 KVM,我们可以在几分钟之内,很轻松地将任意 Linux 服务器转换到一个完全的虚拟化环境中,以及部署不同种类的虚拟机,比如 GNU/Linux、*BSD、Windows 等等。Media
via https://linux.cn/article-10121-1.html
Linux 拥有了新的行为准则,但是许多人都对此表示不满
因为新行为准则的作者那富有争议的过去,现在这件事成为了热点话题。许多人都对这新的行为准则表示不满。Media
via https://linux.cn/article-10122-1.html
因为新行为准则的作者那富有争议的过去,现在这件事成为了热点话题。许多人都对这新的行为准则表示不满。Media
via https://linux.cn/article-10122-1.html
如何在 Linux 中找到并删除重复文件
如果你们像我一样,在类 Unix 操作系统中,大量多版本的相同文件放在不同的备份目录,你可以使用下面的工具找到并删除重复文件。Media
via https://linux.cn/article-10123-1.html
如果你们像我一样,在类 Unix 操作系统中,大量多版本的相同文件放在不同的备份目录,你可以使用下面的工具找到并删除重复文件。Media
via https://linux.cn/article-10123-1.html
如何在 Linux 中找到并删除重复文件
如果你们像我一样,在类 Unix 操作系统中,大量多版本的相同文件放在不同的备份目录,你可以使用下面的工具找到并删除重复文件。Media
via https://linux.cn/article-10123-1.html
如果你们像我一样,在类 Unix 操作系统中,大量多版本的相同文件放在不同的备份目录,你可以使用下面的工具找到并删除重复文件。Media
via https://linux.cn/article-10123-1.html
如何在 Linux 中找到并删除重复文件
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/16/170704e7dhu41fqsrqkzf1.png">Media</a>在编辑或修改配置文件或旧文件前,我经常会把它们备份到硬盘的某个地方,因此我如果意外地改错了这些文件,我可以从备份中恢复它们。但问题是如果我忘记清理备份文件,一段时间之后,我的磁盘会被这些大量重复文件填满 —— 我觉得要么是懒得清理这些旧文件,要么是担心可能会删掉重要文件。如果你们像我一样,在类 Unix 操作系统中,大量多版本的相同文件放在不同的备份目录,你可以使用下面的工具找到并删除重复文件。<strong>提醒一句:</strong>在删除重复文件的时请尽量小心。如果你不小心,也许会导致<a href="https://www.ostechnix.com/prevent-files-folders-accidental-deletion-modification-linux/">意外丢失数据</a>。我建议你在使用这些工具的时候要特别注意。在 Linux 中找到并删除重复文件出于本指南的目的,我将讨论下面的三个工具:RdfindFdupesFSlint这三个工具是自由开源的,且运行在大多数类 Unix 系统中。1. Rdfind<strong>Rdfind</strong> 意即 <strong>r</strong>edundant <strong>d</strong>ata <strong>find</strong>(冗余数据查找),是一个通过访问目录和子目录来找出重复文件的自由开源的工具。它是基于文件内容而不是文件名来比较。Rdfind 使用<strong>排序</strong>算法来区分原始文件和重复文件。如果你有两个或者更多的相同文件,Rdfind 会很智能的找到原始文件并认定剩下的文件为重复文件。一旦找到副本文件,它会向你报…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/16/170704e7dhu41fqsrqkzf1.png">Media</a>在编辑或修改配置文件或旧文件前,我经常会把它们备份到硬盘的某个地方,因此我如果意外地改错了这些文件,我可以从备份中恢复它们。但问题是如果我忘记清理备份文件,一段时间之后,我的磁盘会被这些大量重复文件填满 —— 我觉得要么是懒得清理这些旧文件,要么是担心可能会删掉重要文件。如果你们像我一样,在类 Unix 操作系统中,大量多版本的相同文件放在不同的备份目录,你可以使用下面的工具找到并删除重复文件。<strong>提醒一句:</strong>在删除重复文件的时请尽量小心。如果你不小心,也许会导致<a href="https://www.ostechnix.com/prevent-files-folders-accidental-deletion-modification-linux/">意外丢失数据</a>。我建议你在使用这些工具的时候要特别注意。在 Linux 中找到并删除重复文件出于本指南的目的,我将讨论下面的三个工具:RdfindFdupesFSlint这三个工具是自由开源的,且运行在大多数类 Unix 系统中。1. Rdfind<strong>Rdfind</strong> 意即 <strong>r</strong>edundant <strong>d</strong>ata <strong>find</strong>(冗余数据查找),是一个通过访问目录和子目录来找出重复文件的自由开源的工具。它是基于文件内容而不是文件名来比较。Rdfind 使用<strong>排序</strong>算法来区分原始文件和重复文件。如果你有两个或者更多的相同文件,Rdfind 会很智能的找到原始文件并认定剩下的文件为重复文件。一旦找到副本文件,它会向你报…
什么是行为驱动的 Python?
使用 Python behave 框架的行为驱动开发模式可以帮助你的团队更好的协作和测试自动化。Media
via https://linux.cn/article-10124-1.html
使用 Python behave 框架的行为驱动开发模式可以帮助你的团队更好的协作和测试自动化。Media
via https://linux.cn/article-10124-1.html
Linux 拥有了新的行为准则,但是许多人都对此表示不满
Linux 内核有了新的行为准则Code of Conduct(CoC)。但在这条行为准则被签署以及发布仅仅 30 分钟之后,Linus Torvalds 就暂时离开了 Linux 内核的开发工作。因为新行为准则的作者那富有争议的过去,现在这件事成为了热点话题。许多人都对这新的行为准则表示不满。如果你还不了解这件事,请参阅 <a href="https://linux.cn/article-10022-1.html">Linus Torvalds 对于自己之前的不良态度致歉并开始休假,以改善自己的行为态度</a>Linux 内核开发遵守的新行为准则Linux 内核开发者并不是以前没有需要遵守的行为准则,但是之前的<a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/CodeOfConflict?id=ddbd2b7ad99a418c60397901a0f3c997d030c65e">冲突准则code of conflict</a>现在被替换成了以“给内核开发社区营造更加热情,更方便他人参与的氛围”为目的的行为准则。“为营造一个开放并且热情的社区环境,我们,贡献者与维护者,许诺让每一个参与进我们项目和社区的人享受一个没有骚扰的体验。无关于他们的年纪、体型、身体残疾、种族、性别、性别认知与表达、社会经验、教育水平、社会或者经济地位、国籍、外表、人种、信仰、性认同和性取向。”你可以在这里阅读整篇行为准则:<a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8a104f8b5867c682d994ffa7a74093c54469c11f">Linux 行为准则</a>。Linus Torvalds 是被迫道歉并且休假的吗?<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/16/122734pipmibdrptydzzi6.jpg">Linus Torvalds 的道歉</a>这个新的行为准则由 Linus Torvalds 和 Greg Kroah-Hartman (仅次于 Torvalds…
Linux 内核有了新的行为准则Code of Conduct(CoC)。但在这条行为准则被签署以及发布仅仅 30 分钟之后,Linus Torvalds 就暂时离开了 Linux 内核的开发工作。因为新行为准则的作者那富有争议的过去,现在这件事成为了热点话题。许多人都对这新的行为准则表示不满。如果你还不了解这件事,请参阅 <a href="https://linux.cn/article-10022-1.html">Linus Torvalds 对于自己之前的不良态度致歉并开始休假,以改善自己的行为态度</a>Linux 内核开发遵守的新行为准则Linux 内核开发者并不是以前没有需要遵守的行为准则,但是之前的<a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/CodeOfConflict?id=ddbd2b7ad99a418c60397901a0f3c997d030c65e">冲突准则code of conflict</a>现在被替换成了以“给内核开发社区营造更加热情,更方便他人参与的氛围”为目的的行为准则。“为营造一个开放并且热情的社区环境,我们,贡献者与维护者,许诺让每一个参与进我们项目和社区的人享受一个没有骚扰的体验。无关于他们的年纪、体型、身体残疾、种族、性别、性别认知与表达、社会经验、教育水平、社会或者经济地位、国籍、外表、人种、信仰、性认同和性取向。”你可以在这里阅读整篇行为准则:<a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8a104f8b5867c682d994ffa7a74093c54469c11f">Linux 行为准则</a>。Linus Torvalds 是被迫道歉并且休假的吗?<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/16/122734pipmibdrptydzzi6.jpg">Linus Torvalds 的道歉</a>这个新的行为准则由 Linus Torvalds 和 Greg Kroah-Hartman (仅次于 Torvalds…
什么是行为驱动的 Python?
使用 Python behave 框架的行为驱动开发模式可以帮助你的团队更好的协作和测试自动化。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/16/182736st3x3b2gt8ct23ry.jpeg">Media</a>您是否听说过<a href="https://automationpanda.com/bdd/">行为驱动开发</a>behavior-driven development(BDD),并好奇这是个什么东西?也许你发现了团队成员在谈论“嫩瓜”(LCTT 译注:“嫩瓜gherkin” 是一种简单的英语文本语言,工具 cucumber 通过解释它来执行测试脚本,见下文),而你却不知所云。或许你是一个 Python 人Pythonista,正在寻找更好的方法来测试你的代码。 无论在什么情况下,了解 BDD 都可以帮助您和您的团队实现更好的协作和测试自动化,而 Python 的 <a href="https://behave.readthedocs.io/en/latest/">behave</a> 框架是一个很好的起点。什么是 BDD?在软件中,<em>行为</em>是指在明确定义的输入、动作和结果场景中功能是如何运转的。 产品可以表现出无数的行为,例如:在网站上提交表单搜索想要的结果保存文档进行 REST API 调用运行命令行界面命令根据产品的行为定义产品的功能可以更容易地描述产品,并对其进行开发和测试。 BDD 的核心是:使行为成为软件开发的焦点。在开发早期使用示例语言的规范来定义行为。最常见的行为规范语言之一是 Gherkin,Cucumber项目中的Given-When-Then场景格式。 行为规范基本上是对行为如何工作的简单语言描述,具有一致性和焦点的一些正式结构。 通过将步骤文本“粘合”到代码实现,测试框架可以轻松地…
使用 Python behave 框架的行为驱动开发模式可以帮助你的团队更好的协作和测试自动化。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/16/182736st3x3b2gt8ct23ry.jpeg">Media</a>您是否听说过<a href="https://automationpanda.com/bdd/">行为驱动开发</a>behavior-driven development(BDD),并好奇这是个什么东西?也许你发现了团队成员在谈论“嫩瓜”(LCTT 译注:“嫩瓜gherkin” 是一种简单的英语文本语言,工具 cucumber 通过解释它来执行测试脚本,见下文),而你却不知所云。或许你是一个 Python 人Pythonista,正在寻找更好的方法来测试你的代码。 无论在什么情况下,了解 BDD 都可以帮助您和您的团队实现更好的协作和测试自动化,而 Python 的 <a href="https://behave.readthedocs.io/en/latest/">behave</a> 框架是一个很好的起点。什么是 BDD?在软件中,<em>行为</em>是指在明确定义的输入、动作和结果场景中功能是如何运转的。 产品可以表现出无数的行为,例如:在网站上提交表单搜索想要的结果保存文档进行 REST API 调用运行命令行界面命令根据产品的行为定义产品的功能可以更容易地描述产品,并对其进行开发和测试。 BDD 的核心是:使行为成为软件开发的焦点。在开发早期使用示例语言的规范来定义行为。最常见的行为规范语言之一是 Gherkin,Cucumber项目中的Given-When-Then场景格式。 行为规范基本上是对行为如何工作的简单语言描述,具有一致性和焦点的一些正式结构。 通过将步骤文本“粘合”到代码实现,测试框架可以轻松地…
Minikube 入门:笔记本上的 Kubernetes
运行 Minikube 的分步指南。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/17/214443rikxkirgmv4eti41.png">Media</a>在 <a href="https://kubernetes.io/docs/tutorials/hello-minikube">Hello Minikube</a> 教程页面上 Minikube 被宣传为基于 Docker 运行 Kubernetes 的一种简单方法。 虽然该文档非常有用,但它主要是为 MacOS 编写的。 你可以深入挖掘在 Windows 或某个 Linux 发行版上的使用说明,但它们不是很清楚。 许多文档都是针对 Debian / Ubuntu 用户的,比如<a href="https://github.com/kubernetes/minikube/blob/master/docs/drivers.md">安装 Minikube 的驱动程序</a>。这篇指南旨在使得在基于 RHEL/Fedora/CentOS 的操作系统上更容易安装 Minikube。先决条件你已经<a href="https://docs.docker.com/install">安装了 Docker</a>。你的计算机是一个基于 RHEL / CentOS / Fedora 的工作站。你已经<a href="https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#kvm2-driver">安装了正常运行的 KVM2 虚拟机管理程序</a>。你有一个可以工作的 docker-machine-driver-kvm2。 以下命令将安装该驱动程序:<pre class="prettyprint linenums">curl -Lo docker-machine-driver-kvm2 https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2 \chmod +x docker-machine-driver-kvm2 \&& sudo cp docker-machine-driver-kvm2 /usr/local/bin/ \&& rm docker-machine-driver-kvm2</pre>下载、安装和启动Minikube1、为你要即将下载的两个文件创建一个目录,两个文件分别是:<a href="https://github.com/kubernetes/minikube/releases">minikube</a> 和 <a href="https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-binary-using-curl">kubectl</a>。2、打开终端窗口并运行以下命令来安装 minikube。<pre class="prettyprint linenums">curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64</pre>请注意,minikube 版本(例如,minikube-linux-amd64)可能因计算机的规格而有所不同。3、chmod 加执行权限。<pre class="prettyprint linenums">chmod +x minikube</pre>4、将文件移动到 /usr/local/bin 路径下,以便你能将其作为命令运行。<pre class="prettyprint linenums">mv minikube /usr/local/bin</pre>5、使用以下命令安装 ku…
运行 Minikube 的分步指南。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/17/214443rikxkirgmv4eti41.png">Media</a>在 <a href="https://kubernetes.io/docs/tutorials/hello-minikube">Hello Minikube</a> 教程页面上 Minikube 被宣传为基于 Docker 运行 Kubernetes 的一种简单方法。 虽然该文档非常有用,但它主要是为 MacOS 编写的。 你可以深入挖掘在 Windows 或某个 Linux 发行版上的使用说明,但它们不是很清楚。 许多文档都是针对 Debian / Ubuntu 用户的,比如<a href="https://github.com/kubernetes/minikube/blob/master/docs/drivers.md">安装 Minikube 的驱动程序</a>。这篇指南旨在使得在基于 RHEL/Fedora/CentOS 的操作系统上更容易安装 Minikube。先决条件你已经<a href="https://docs.docker.com/install">安装了 Docker</a>。你的计算机是一个基于 RHEL / CentOS / Fedora 的工作站。你已经<a href="https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#kvm2-driver">安装了正常运行的 KVM2 虚拟机管理程序</a>。你有一个可以工作的 docker-machine-driver-kvm2。 以下命令将安装该驱动程序:<pre class="prettyprint linenums">curl -Lo docker-machine-driver-kvm2 https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2 \chmod +x docker-machine-driver-kvm2 \&& sudo cp docker-machine-driver-kvm2 /usr/local/bin/ \&& rm docker-machine-driver-kvm2</pre>下载、安装和启动Minikube1、为你要即将下载的两个文件创建一个目录,两个文件分别是:<a href="https://github.com/kubernetes/minikube/releases">minikube</a> 和 <a href="https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-binary-using-curl">kubectl</a>。2、打开终端窗口并运行以下命令来安装 minikube。<pre class="prettyprint linenums">curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64</pre>请注意,minikube 版本(例如,minikube-linux-amd64)可能因计算机的规格而有所不同。3、chmod 加执行权限。<pre class="prettyprint linenums">chmod +x minikube</pre>4、将文件移动到 /usr/local/bin 路径下,以便你能将其作为命令运行。<pre class="prettyprint linenums">mv minikube /usr/local/bin</pre>5、使用以下命令安装 ku…
树莓派自建 NAS 云盘之——云盘构建
用自行托管的树莓派 NAS 云盘来保护数据的安全!<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/17/231845lcxls9emctcc6mbz.jpg">Media</a>在前面两篇文章中,我们讨论了用树莓派搭建一个 NAS 云盘所需要的一些 <a href="https://linux.cn/article-10104-1.html?utm_source=index&utm_medium=more">软硬件环境及其操作步骤</a>。我们还制定了适当的 <a href="https://linux.cn/article-10112-1.html">备份策略</a> 来保护 NAS 上的数据。本文中,我们将介绍讨论利用 <a href="https://nextcloud.com/">Nestcloud</a> 来方便快捷的存储、获取以及分享你的数据。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/17/231935uowcp6sfh2jezhpz.png">Media</a>必要的准备工作想要方便的使用 Nextcloud,需要一些必要的准备工作。首先,你需要一个指向 Nextcloud 的域名。方便起见,本文将使用 <strong>nextcloud.pi-nas.com</strong> 。如果你是在家庭网络里运行,你需要为该域名配置 DNS 服务(动态域名解析服务)并在路由器中开启 80 端口和 443 端口转发功能(如果需要使用 https,则需要开启 443 端口转发,如果只用 http,80 端口足以)。你可以使用 <a href="https://sourceforge.net/p/ddclient/wiki/Home/">ddclient</a> 在树莓派中自动更新 DNS。安装 Nextcloud为了在树莓派(参考 <a href="https://linux.cn/article-10104-1.html?utm_source=index&utm_medium=more">第一篇</a> 中步骤设置)中运行 Nextcloud,首先用命令 apt 安装 以下的一些依赖软件包。<pre class="prettyprint linenums">sudo apt install unzip wget php apache2 mysql-server php-zip php-mysql php-dom php-mbstring php-gd php-curl</pre>其次,下载 Nextcloud。在树莓派中利用 wget 下载其 <a href="https://nextcloud.com/install/#instructions-server">最新的版本</a>。在 <a href="https://linux.cn/article-10104-1.html?utm_source=index&utm_medium=more">第一篇</a> 文章中,我们将两个磁盘驱动器连接到树莓派,一个用于存储当前ਤ…
用自行托管的树莓派 NAS 云盘来保护数据的安全!<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/17/231845lcxls9emctcc6mbz.jpg">Media</a>在前面两篇文章中,我们讨论了用树莓派搭建一个 NAS 云盘所需要的一些 <a href="https://linux.cn/article-10104-1.html?utm_source=index&utm_medium=more">软硬件环境及其操作步骤</a>。我们还制定了适当的 <a href="https://linux.cn/article-10112-1.html">备份策略</a> 来保护 NAS 上的数据。本文中,我们将介绍讨论利用 <a href="https://nextcloud.com/">Nestcloud</a> 来方便快捷的存储、获取以及分享你的数据。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/17/231935uowcp6sfh2jezhpz.png">Media</a>必要的准备工作想要方便的使用 Nextcloud,需要一些必要的准备工作。首先,你需要一个指向 Nextcloud 的域名。方便起见,本文将使用 <strong>nextcloud.pi-nas.com</strong> 。如果你是在家庭网络里运行,你需要为该域名配置 DNS 服务(动态域名解析服务)并在路由器中开启 80 端口和 443 端口转发功能(如果需要使用 https,则需要开启 443 端口转发,如果只用 http,80 端口足以)。你可以使用 <a href="https://sourceforge.net/p/ddclient/wiki/Home/">ddclient</a> 在树莓派中自动更新 DNS。安装 Nextcloud为了在树莓派(参考 <a href="https://linux.cn/article-10104-1.html?utm_source=index&utm_medium=more">第一篇</a> 中步骤设置)中运行 Nextcloud,首先用命令 apt 安装 以下的一些依赖软件包。<pre class="prettyprint linenums">sudo apt install unzip wget php apache2 mysql-server php-zip php-mysql php-dom php-mbstring php-gd php-curl</pre>其次,下载 Nextcloud。在树莓派中利用 wget 下载其 <a href="https://nextcloud.com/install/#instructions-server">最新的版本</a>。在 <a href="https://linux.cn/article-10104-1.html?utm_source=index&utm_medium=more">第一篇</a> 文章中,我们将两个磁盘驱动器连接到树莓派,一个用于存储当前ਤ…
三个开源的分布式追踪工具
这几个工具对复杂软件系统中的实时事件做了可视化,能帮助你快速发现性能问题。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/18/000511wi277hjm2vmo4oah.png">Media</a>分布式追踪系统能够从头到尾地追踪跨越了多个应用、服务、数据库以及像代理这样的中间件的分布式软件的请求。它能帮助你更深入地理解系统中到底发生了什么。追踪系统以图形化的方式,展示出每个已知步骤以及某个请求在每个步骤上的耗时。用户可以通过这些展示来判断系统的哪个环节有延迟或阻塞,当请求失败时,运维和开发人员可以看到准确的问题源头,而不需要去测试整个系统,比如用二叉查找树的方法去定位问题。在开发迭代的过程中,追踪系统还能够展示出可能引起性能变化的环节。通过异常行为的警告自动地感知到性能的退化,总是比客户告诉你要好。这种追踪是怎么工作的呢?给每个请求分配一个特殊 ID,这个 ID 通常会插入到请求头部中。它唯一标识了对应的事务。一般把事务叫做踪迹trace,“踪迹”是整个事务的抽象概念。每一个“踪迹”由单元span组成,“单元”代表着一次请求中真正执行的操作,比如一次服务调用,一次数据库请求等。每一个“单元”也有自己唯一的 ID。“单元”之下也可以创建子“单元”,子“单元”可以有多个父“单元”。当一次事务(或者说踪迹)运行过之后,就&#…
这几个工具对复杂软件系统中的实时事件做了可视化,能帮助你快速发现性能问题。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/18/000511wi277hjm2vmo4oah.png">Media</a>分布式追踪系统能够从头到尾地追踪跨越了多个应用、服务、数据库以及像代理这样的中间件的分布式软件的请求。它能帮助你更深入地理解系统中到底发生了什么。追踪系统以图形化的方式,展示出每个已知步骤以及某个请求在每个步骤上的耗时。用户可以通过这些展示来判断系统的哪个环节有延迟或阻塞,当请求失败时,运维和开发人员可以看到准确的问题源头,而不需要去测试整个系统,比如用二叉查找树的方法去定位问题。在开发迭代的过程中,追踪系统还能够展示出可能引起性能变化的环节。通过异常行为的警告自动地感知到性能的退化,总是比客户告诉你要好。这种追踪是怎么工作的呢?给每个请求分配一个特殊 ID,这个 ID 通常会插入到请求头部中。它唯一标识了对应的事务。一般把事务叫做踪迹trace,“踪迹”是整个事务的抽象概念。每一个“踪迹”由单元span组成,“单元”代表着一次请求中真正执行的操作,比如一次服务调用,一次数据库请求等。每一个“单元”也有自己唯一的 ID。“单元”之下也可以创建子“单元”,子“单元”可以有多个父“单元”。当一次事务(或者说踪迹)运行过之后,就&#…
使用 Python 为你的油箱加油
我来介绍一下我是如何使用 Python 来节省成本的。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/18/003647fykfkj2p2kc57ezx.jpg">Media</a>我最近在开一辆烧 93 号汽油的车子。根据汽车制造商的说法,它只需要加 91 号汽油就可以了。然而,在美国只能买到 87 号、89 号、93 号汽油。而我家附近的汽油的物价水平是每增加一号,每加仑就要多付 30 美分,因此如果加 93 号汽油,每加仑就要多花 60 美分。为什么不能节省一些钱呢?一开始很简单,只需要先加满 93 号汽油,然后在油量表显示油箱半满的时候,用 89 号汽油加满,就得到一整箱 91 号汽油了。但接下来就麻烦了,剩下半箱 91 号汽油加上半箱 93 号汽油,只会变成一箱 92 号汽油,再接下来呢?如果继续算下去,只会越来越混乱。这个时候 Python 就派上用场了。我的方案是,可以根据汽油的实时状态,不断向油箱中加入 93 号汽油或者 89 号汽油,而最终目标是使油箱内汽油的号数不低于 91。我需要做的是只是通过一些算法来判断新旧汽油混合之后的号数。使用多项式方程或许也可以解决这个问题,但如果使用 Python,好像只需要进行循环就可以了。<pre class="prettyprint linenums">#!/usr/bin/env python# octane.pyo = 93.0newgas = 93.0 # 这个变量记录上一次加入的汽油号数i = 1while i < 21: # 20 次迭代 (加油次数) if newgas == 89.0: # 如果上一次加的是 89 号汽油,改加 93 号汽油 newgas = 93.0 o = newgas/2 + o/2 # 当油箱半满的时候就加油 else: # 如果上一次加的是 93 号汽油,则&…
我来介绍一下我是如何使用 Python 来节省成本的。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201810/18/003647fykfkj2p2kc57ezx.jpg">Media</a>我最近在开一辆烧 93 号汽油的车子。根据汽车制造商的说法,它只需要加 91 号汽油就可以了。然而,在美国只能买到 87 号、89 号、93 号汽油。而我家附近的汽油的物价水平是每增加一号,每加仑就要多付 30 美分,因此如果加 93 号汽油,每加仑就要多花 60 美分。为什么不能节省一些钱呢?一开始很简单,只需要先加满 93 号汽油,然后在油量表显示油箱半满的时候,用 89 号汽油加满,就得到一整箱 91 号汽油了。但接下来就麻烦了,剩下半箱 91 号汽油加上半箱 93 号汽油,只会变成一箱 92 号汽油,再接下来呢?如果继续算下去,只会越来越混乱。这个时候 Python 就派上用场了。我的方案是,可以根据汽油的实时状态,不断向油箱中加入 93 号汽油或者 89 号汽油,而最终目标是使油箱内汽油的号数不低于 91。我需要做的是只是通过一些算法来判断新旧汽油混合之后的号数。使用多项式方程或许也可以解决这个问题,但如果使用 Python,好像只需要进行循环就可以了。<pre class="prettyprint linenums">#!/usr/bin/env python# octane.pyo = 93.0newgas = 93.0 # 这个变量记录上一次加入的汽油号数i = 1while i < 21: # 20 次迭代 (加油次数) if newgas == 89.0: # 如果上一次加的是 89 号汽油,改加 93 号汽油 newgas = 93.0 o = newgas/2 + o/2 # 当油箱半满的时候就加油 else: # 如果上一次加的是 93 号汽油,则&…
如何在家中使用 SSH 和 SFTP 协议
通过 SSH 和 SFTP 协议,我们能够访问其他设备,有效而且安全的传输文件等等。Media
via https://linux.cn/article-10129-1.html
通过 SSH 和 SFTP 协议,我们能够访问其他设备,有效而且安全的传输文件等等。Media
via https://linux.cn/article-10129-1.html