8 个出没于终端中的吓人命令
欢迎来到 Linux 令人毛骨悚然的一面。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/09/195928jin37oithiz6nefu.jpg">Media</a>又是一年中的这个时候:天气变冷了、树叶变色了,各处的孩子都化妆成了小鬼、妖精和僵尸。(LCTT 译注:本文原发表于万圣节)但你知道吗, Unix (和 Linux) 和它们的各个分支也充满了令人毛骨悚然的东西?让我们来看一下我们所熟悉和喜爱的操作系统的一些令人毛骨悚然的一面。半神(守护进程)如果没有潜伏于系统中的各种守护进程daemon,那么 Unix 就没什么不同。守护进程是运行在后台的进程,并为用户和操作系统本身提供有用的服务,比如 SSH、FTP、HTTP 等等。僵尸(僵尸进程)不时出现的僵尸进程是一种被杀死但是拒绝离开的进程。当它出现时,无疑你只能选择你有的工具来赶走它。僵尸进程通常表明产生它的进程出现了问题。杀死(kill)你不仅可以使用 <code>kill</code> 来干掉一个僵尸进程,你还可以用它杀死任何对你系统产生负面影响的进程。有一个使用太多 RAM 或 CPU 周期的进程?使用 <code>kill</code> 命令杀死它。猫(cat)<code>cat</code> 和猫科动物无关,但是与文件操作有关:<code>cat</code> 是 “concatenate” 的缩写。你甚至可以使用这个方便的命令来查看文件的内容。尾巴(tail)当你想要查看文件中最后 n 行时,<code>tail</code> 命令很有用。当你想要监控一个文件时,它也很棒。巫师(which)哦,不,它不是巫&…
欢迎来到 Linux 令人毛骨悚然的一面。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/09/195928jin37oithiz6nefu.jpg">Media</a>又是一年中的这个时候:天气变冷了、树叶变色了,各处的孩子都化妆成了小鬼、妖精和僵尸。(LCTT 译注:本文原发表于万圣节)但你知道吗, Unix (和 Linux) 和它们的各个分支也充满了令人毛骨悚然的东西?让我们来看一下我们所熟悉和喜爱的操作系统的一些令人毛骨悚然的一面。半神(守护进程)如果没有潜伏于系统中的各种守护进程daemon,那么 Unix 就没什么不同。守护进程是运行在后台的进程,并为用户和操作系统本身提供有用的服务,比如 SSH、FTP、HTTP 等等。僵尸(僵尸进程)不时出现的僵尸进程是一种被杀死但是拒绝离开的进程。当它出现时,无疑你只能选择你有的工具来赶走它。僵尸进程通常表明产生它的进程出现了问题。杀死(kill)你不仅可以使用 <code>kill</code> 来干掉一个僵尸进程,你还可以用它杀死任何对你系统产生负面影响的进程。有一个使用太多 RAM 或 CPU 周期的进程?使用 <code>kill</code> 命令杀死它。猫(cat)<code>cat</code> 和猫科动物无关,但是与文件操作有关:<code>cat</code> 是 “concatenate” 的缩写。你甚至可以使用这个方便的命令来查看文件的内容。尾巴(tail)当你想要查看文件中最后 n 行时,<code>tail</code> 命令很有用。当你想要监控一个文件时,它也很棒。巫师(which)哦,不,它不是巫&…
适用于小型企业的 4 个开源发票工具
用基于 web 的发票软件管理你的账单,轻松完成收款,十分简单。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/09/213218z30yq7b8y1bch8uq.png">Media</a>无论您开办小型企业的原因是什么,保持业务发展的关键是可以盈利。收款也就意味着向客户提供发票。使用 LibreOffice Writer 或 LibreOffice Calc 提供发票很容易,但有时候你需要的不止这些。从更专业的角度看,一种跟进发票的方法,可以提醒你何时跟进你发出的发票。在这里有各种各样的商业闭源的发票管理工具。但是开源的产品和相对应的闭源商业工具比起来,并不差,没准还更灵活。让我们一起了解这 4 款基于 web 的开源发票工具,它们很适用于预算紧张的自由职业者和小型企业。2014 年,我在本文的<a href="https://opensource.com/business/14/9/4-open-source-invoice-tools">早期版本</a>中提到了其中两个工具。这 4 个工具用起来都很简单,并且你可以在任何设备上使用它们。Invoice Ninja我不是很喜欢 ninja (忍者)这个词。尽管如此,我喜欢 <a href="https://www.invoiceninja.org/">Invoice Ninja</a>。非常喜欢。它将功能融合在一个简单的界面,其中包含一组可让你创建、管理和向客户、消费者发送发票的功能。您可以轻松配置多个客户端,跟进付款和未结清的发票,生成报价并用电子邮件发送发票。Invoice Ninja 与其竞争对手不同,它<a href="https://www.invoiceninja.com/integrations/">集成</a>了超过 40 个流行支付方式,包括 PayPal、Stripe、WePay 以及 Apple Pay。<a href="https://github.com/invoiceninja/invoiceninja">下载</a>一个…
用基于 web 的发票软件管理你的账单,轻松完成收款,十分简单。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/09/213218z30yq7b8y1bch8uq.png">Media</a>无论您开办小型企业的原因是什么,保持业务发展的关键是可以盈利。收款也就意味着向客户提供发票。使用 LibreOffice Writer 或 LibreOffice Calc 提供发票很容易,但有时候你需要的不止这些。从更专业的角度看,一种跟进发票的方法,可以提醒你何时跟进你发出的发票。在这里有各种各样的商业闭源的发票管理工具。但是开源的产品和相对应的闭源商业工具比起来,并不差,没准还更灵活。让我们一起了解这 4 款基于 web 的开源发票工具,它们很适用于预算紧张的自由职业者和小型企业。2014 年,我在本文的<a href="https://opensource.com/business/14/9/4-open-source-invoice-tools">早期版本</a>中提到了其中两个工具。这 4 个工具用起来都很简单,并且你可以在任何设备上使用它们。Invoice Ninja我不是很喜欢 ninja (忍者)这个词。尽管如此,我喜欢 <a href="https://www.invoiceninja.org/">Invoice Ninja</a>。非常喜欢。它将功能融合在一个简单的界面,其中包含一组可让你创建、管理和向客户、消费者发送发票的功能。您可以轻松配置多个客户端,跟进付款和未结清的发票,生成报价并用电子邮件发送发票。Invoice Ninja 与其竞争对手不同,它<a href="https://www.invoiceninja.com/integrations/">集成</a>了超过 40 个流行支付方式,包括 PayPal、Stripe、WePay 以及 Apple Pay。<a href="https://github.com/invoiceninja/invoiceninja">下载</a>一个…
设计更快的网页(二):图片替换
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/09/220014lak4vkv9wvy9i5yk.jpg">Media</a>欢迎回到我们为了构建更快网页所写的系列文章。上一篇<a href="https://linux.cn/article-10166-1.html">文章</a>讨论了只通过图片压缩实现这个目标的方法。这个例子从一开始有 1.2MB 的“浏览器脂肪”,然后它减轻到了 488.9KB 的大小。但这还不够快!那么本文继续来给浏览器“减肥”。你可能在这个过程中会认为我们所做的事情有点疯狂,但一旦完成,你就会明白为什么要这么做了。准备工作本文再次从对网页的分析开始。使用 Firefox 内置的截图功能来对整个页面进行截图。你还需要<a href="https://fedoramagazine.org/howto-use-sudo/">用 sudo</a> 来安装 Inkscape:<pre class="prettyprint linenums">$ sudo dnf install inkscape</pre>如果你想了解 Inkscape 的用法,Fedora 杂志上有几篇现成的<a href="https://fedoramagazine.org/?s=Inkscape">文章</a>。本文仅会介绍一些基本的 SVG 优化方法以供 Web 使用。分析我们再来用 <a href="https://getfedora.org">getfedora.org</a> 的网页来举例。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/09/220016fcpn9n872nm8z2n2.png">Getfedora 的页面,对其中的图片做了标记</a>这次分析以图形方式完成更好,这也就是它从屏幕截图开始的原因。上面的截图标记了页面中的所有图形元素。Fedora 网站团队已经针对两种情况措施(也有可能是四种,这样更好)来替换图像了。社交媒体的图标变成了字体的字形,而语言选择器变成了 SVG.我们有几个可以替换的选择:CSS3字体SVGHTML5 CanvasHTML5 Canvas简单来说,HTML5 Canvas 是一种 HTML 元素,它允许你借助脚本语言(通常是 JavaScrip…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/09/220014lak4vkv9wvy9i5yk.jpg">Media</a>欢迎回到我们为了构建更快网页所写的系列文章。上一篇<a href="https://linux.cn/article-10166-1.html">文章</a>讨论了只通过图片压缩实现这个目标的方法。这个例子从一开始有 1.2MB 的“浏览器脂肪”,然后它减轻到了 488.9KB 的大小。但这还不够快!那么本文继续来给浏览器“减肥”。你可能在这个过程中会认为我们所做的事情有点疯狂,但一旦完成,你就会明白为什么要这么做了。准备工作本文再次从对网页的分析开始。使用 Firefox 内置的截图功能来对整个页面进行截图。你还需要<a href="https://fedoramagazine.org/howto-use-sudo/">用 sudo</a> 来安装 Inkscape:<pre class="prettyprint linenums">$ sudo dnf install inkscape</pre>如果你想了解 Inkscape 的用法,Fedora 杂志上有几篇现成的<a href="https://fedoramagazine.org/?s=Inkscape">文章</a>。本文仅会介绍一些基本的 SVG 优化方法以供 Web 使用。分析我们再来用 <a href="https://getfedora.org">getfedora.org</a> 的网页来举例。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/09/220016fcpn9n872nm8z2n2.png">Getfedora 的页面,对其中的图片做了标记</a>这次分析以图形方式完成更好,这也就是它从屏幕截图开始的原因。上面的截图标记了页面中的所有图形元素。Fedora 网站团队已经针对两种情况措施(也有可能是四种,这样更好)来替换图像了。社交媒体的图标变成了字体的字形,而语言选择器变成了 SVG.我们有几个可以替换的选择:CSS3字体SVGHTML5 CanvasHTML5 Canvas简单来说,HTML5 Canvas 是一种 HTML 元素,它允许你借助脚本语言(通常是 JavaScrip…
最棒的免费 Roguelike 游戏
Roguelike 属于角色扮演游戏的一个子流派,它从字面上理解就是“类 Rogue 游戏”。Rogue 是一个地牢爬行视频游戏Media
via https://linux.cn/article-10218-1.html
Roguelike 属于角色扮演游戏的一个子流派,它从字面上理解就是“类 Rogue 游戏”。Rogue 是一个地牢爬行视频游戏Media
via https://linux.cn/article-10218-1.html
最棒的免费 Roguelike 游戏
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/10/205247mxmxjxjjzipa9bm9.jpg">Media</a>Roguelike 属于角色扮演游戏的一个子流派,它从字面上理解就是“类 Rogue 游戏”。Rogue 是一个地牢爬行视频游戏,第一个版本由开发者 Michel Toy、Glenn Wichman 和 Ken Arnold 在 1980 年发布,由于其极易上瘾使得它从一众游戏中脱颖而出。整个游戏的目标是深入第 26 层,取回 Yendor 的护身符并回到地面,所有设定都基于龙与地下城的世界观。Rogue 被认为是一个经典、极其困难并且让人废寝忘食的游戏。虽然它在大学校园中非常受欢迎,但并不十分畅销。在 Rogue 发布时,它并没有使用开源许可证,导致了爱好者们开发了许多克隆版本。对于 Roguelike 游戏并没有一个明确的定义,但是此类游戏会拥有下述的典型特征:高度魔幻的叙事背景;程序化生成关卡。游戏世界中的大部分地图在每次开始游戏时重新生成,也就意味着鼓励多周目;回合制的地牢探险和战斗;基于图块随机生成的图形;随机的战斗结果;永久死亡——死亡实际起作用,一旦死亡你就需要重新开始高难度此篇文章收集了大量 Linux 平台可玩的 Roguelike 游戏。如果你享受提供真实紧张感的上瘾游戏体验,我衷心推荐你下载这些游戏。不要被其中很多游戏的原始画面吓退,一旦你沉浸其中你会很快忽略简陋的画面。记住,在 Roguelike 游戏中应是游戏机制占主导,画面只是一个加分项而不是必…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/10/205247mxmxjxjjzipa9bm9.jpg">Media</a>Roguelike 属于角色扮演游戏的一个子流派,它从字面上理解就是“类 Rogue 游戏”。Rogue 是一个地牢爬行视频游戏,第一个版本由开发者 Michel Toy、Glenn Wichman 和 Ken Arnold 在 1980 年发布,由于其极易上瘾使得它从一众游戏中脱颖而出。整个游戏的目标是深入第 26 层,取回 Yendor 的护身符并回到地面,所有设定都基于龙与地下城的世界观。Rogue 被认为是一个经典、极其困难并且让人废寝忘食的游戏。虽然它在大学校园中非常受欢迎,但并不十分畅销。在 Rogue 发布时,它并没有使用开源许可证,导致了爱好者们开发了许多克隆版本。对于 Roguelike 游戏并没有一个明确的定义,但是此类游戏会拥有下述的典型特征:高度魔幻的叙事背景;程序化生成关卡。游戏世界中的大部分地图在每次开始游戏时重新生成,也就意味着鼓励多周目;回合制的地牢探险和战斗;基于图块随机生成的图形;随机的战斗结果;永久死亡——死亡实际起作用,一旦死亡你就需要重新开始高难度此篇文章收集了大量 Linux 平台可玩的 Roguelike 游戏。如果你享受提供真实紧张感的上瘾游戏体验,我衷心推荐你下载这些游戏。不要被其中很多游戏的原始画面吓退,一旦你沉浸其中你会很快忽略简陋的画面。记住,在 Roguelike 游戏中应是游戏机制占主导,画面只是一个加分项而不是必…
如何在 CentOS 中添加、启用和禁用一个仓库
对于基于 RPM 的系统,有许多第三方仓库可用,但所建议使用的仓库很少,因为这些不会替换大量的基础包。Media
via https://linux.cn/article-10219-1.html
对于基于 RPM 的系统,有许多第三方仓库可用,但所建议使用的仓库很少,因为这些不会替换大量的基础包。Media
via https://linux.cn/article-10219-1.html
如何在 CentOS 中添加、启用和禁用一个仓库
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/10/221336sona2ooagwuohton.jpg">Media</a>在基于 RPM 的系统上,例如 RHEL、CentOS 等,我们中的许多人使用 yum 包管理器来管理软件的安装、删除、更新、搜索等。Linux 发行版的大部分软件都来自发行版官方仓库。官方仓库包含大量免费和开源的应用和软件。它很容易安装和使用。由于一些限制和专有问题,基于 RPM 的发行版在其官方仓库中没有提供某些包。另外,出于稳定性考虑,它不会提供最新版本的核心包。为了克服这种情况,我们需要安装或启用需要的第三方仓库。对于基于 RPM 的系统,有许多第三方仓库可用,但所建议使用的仓库很少,因为这些不会替换大量的基础包。建议阅读:<a href="https://www.2daygeek.com/yum-command-examples-manage-packages-rhel-centos-systems/">在 RHEL/CentOS 系统中使用 YUM 命令管理包</a><a href="https://www.2daygeek.com/dnf-command-examples-manage-packages-fedora-system/">在 Fedora 系统中使用 DNF (YUM 的分支) 命令来管理包</a><a href="https://www.2daygeek.com/list-of-command-line-package-manager-for-linux/">命令行包管理器和用法列表</a><a href="https://www.2daygeek.com/list-of-graphical-frontend-tool-for-linux-package-manager/">Linux 包管理器的图形化工具</a>这可以在基于 RPM 的系统上完成,比如 RHEL, CentOS, OEL, Fedora 等。Fedora 系统使用 dnf config-manager [options] [section …]其它基于 RPM 的系统使用 yum-config-manager [options] [section …]如何列出启用的仓库只需运行以下命令即可检查系统上启用的仓库列表。对于 CentOS/RHEL/OLE 系统:<pre class="prettyprint linenums"># yum repolistLoaded plugins: fastestmirror, securityLoading mirror speeds from cached hostfilerepo id repo name statusbase CentOS-6 - Base 6,706extras CentOS-6 - Extras 53updates CentOS-6 - Updates 1,255repolist: 8,014</pre>对于 Fedora 系统:<pre class="prettyprint linenums"># dnf repolist</pre>如何在౿…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/10/221336sona2ooagwuohton.jpg">Media</a>在基于 RPM 的系统上,例如 RHEL、CentOS 等,我们中的许多人使用 yum 包管理器来管理软件的安装、删除、更新、搜索等。Linux 发行版的大部分软件都来自发行版官方仓库。官方仓库包含大量免费和开源的应用和软件。它很容易安装和使用。由于一些限制和专有问题,基于 RPM 的发行版在其官方仓库中没有提供某些包。另外,出于稳定性考虑,它不会提供最新版本的核心包。为了克服这种情况,我们需要安装或启用需要的第三方仓库。对于基于 RPM 的系统,有许多第三方仓库可用,但所建议使用的仓库很少,因为这些不会替换大量的基础包。建议阅读:<a href="https://www.2daygeek.com/yum-command-examples-manage-packages-rhel-centos-systems/">在 RHEL/CentOS 系统中使用 YUM 命令管理包</a><a href="https://www.2daygeek.com/dnf-command-examples-manage-packages-fedora-system/">在 Fedora 系统中使用 DNF (YUM 的分支) 命令来管理包</a><a href="https://www.2daygeek.com/list-of-command-line-package-manager-for-linux/">命令行包管理器和用法列表</a><a href="https://www.2daygeek.com/list-of-graphical-frontend-tool-for-linux-package-manager/">Linux 包管理器的图形化工具</a>这可以在基于 RPM 的系统上完成,比如 RHEL, CentOS, OEL, Fedora 等。Fedora 系统使用 dnf config-manager [options] [section …]其它基于 RPM 的系统使用 yum-config-manager [options] [section …]如何列出启用的仓库只需运行以下命令即可检查系统上启用的仓库列表。对于 CentOS/RHEL/OLE 系统:<pre class="prettyprint linenums"># yum repolistLoaded plugins: fastestmirror, securityLoading mirror speeds from cached hostfilerepo id repo name statusbase CentOS-6 - Base 6,706extras CentOS-6 - Extras 53updates CentOS-6 - Updates 1,255repolist: 8,014</pre>对于 Fedora 系统:<pre class="prettyprint linenums"># dnf repolist</pre>如何在౿…
Joplin:开源加密笔记及待办事项应用
它的主要功能包括端到端加密,Markdown 支持以及通过 NextCloud、Dropbox、OneDrive 或 WebDAV 等第三方服务进行同步。Media
via https://linux.cn/article-10220-1.html
它的主要功能包括端到端加密,Markdown 支持以及通过 NextCloud、Dropbox、OneDrive 或 WebDAV 等第三方服务进行同步。Media
via https://linux.cn/article-10220-1.html
Joplin:开源加密笔记及待办事项应用
<a href="https://joplin.cozic.net/">Joplin</a> 是一个自由开源的笔记和待办事项应用,可用于 Linux、Windows、macOS、Android 和 iOS。它的主要功能包括端到端加密,Markdown 支持以及通过 NextCloud、Dropbox、OneDrive 或 WebDAV 等第三方服务进行同步。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/11/102838p4awwjpaaijpiqw6.png">Media</a>在 Joplin 中你可以用 Markdown 格式(支持数学符号和复选框)记笔记,桌面程序有 3 种视图:Markdown 代码、Markdown 预览或两者并排。你可以在笔记中添加附件(使用图像预览)或在外部 Markdown 编辑器中编辑它们并在每次保存文件时自动在 Joplin 中更新它们。这个应用应该可以很好地处理大量笔记,它允许你将笔记组织到笔记本中、添加标签和搜索。你还可以按更新日期、创建日期或标题对笔记进行排序。每个笔记本可以包含笔记、待办事项或两者,你可以轻松添加其他笔记的链接(在桌面应用中右键单击笔记并选择 “Copy Markdown link”,然后在笔记中添加链接)。Joplin 中的待办事项支持警报,但在 Ubuntu 18.04 上,此功能我无法使用。其他 Joplin 功能包括:Firefox 和 Chrome 中可选的 Web Clipper 扩展(在 Joplin 桌面应用中进入 “Tools > Web clipper options” 以启用剪切服务并找到 Chrome/Firefox 扩展程序的下载链接),它可以剪切简单或完整的页面、剪切选中的区域或者截图。可选命令行客户端。导入 Enex 文件(Evernote 导出格式)和 Markdown 文件。导出 JEX 文件(Joplin 导出格式)、PDF 和原始文件。离线优先,因此即使没有互…
<a href="https://joplin.cozic.net/">Joplin</a> 是一个自由开源的笔记和待办事项应用,可用于 Linux、Windows、macOS、Android 和 iOS。它的主要功能包括端到端加密,Markdown 支持以及通过 NextCloud、Dropbox、OneDrive 或 WebDAV 等第三方服务进行同步。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/11/102838p4awwjpaaijpiqw6.png">Media</a>在 Joplin 中你可以用 Markdown 格式(支持数学符号和复选框)记笔记,桌面程序有 3 种视图:Markdown 代码、Markdown 预览或两者并排。你可以在笔记中添加附件(使用图像预览)或在外部 Markdown 编辑器中编辑它们并在每次保存文件时自动在 Joplin 中更新它们。这个应用应该可以很好地处理大量笔记,它允许你将笔记组织到笔记本中、添加标签和搜索。你还可以按更新日期、创建日期或标题对笔记进行排序。每个笔记本可以包含笔记、待办事项或两者,你可以轻松添加其他笔记的链接(在桌面应用中右键单击笔记并选择 “Copy Markdown link”,然后在笔记中添加链接)。Joplin 中的待办事项支持警报,但在 Ubuntu 18.04 上,此功能我无法使用。其他 Joplin 功能包括:Firefox 和 Chrome 中可选的 Web Clipper 扩展(在 Joplin 桌面应用中进入 “Tools > Web clipper options” 以启用剪切服务并找到 Chrome/Firefox 扩展程序的下载链接),它可以剪切简单或完整的页面、剪切选中的区域或者截图。可选命令行客户端。导入 Enex 文件(Evernote 导出格式)和 Markdown 文件。导出 JEX 文件(Joplin 导出格式)、PDF 和原始文件。离线优先,因此即使没有互…
5 个适合系统管理员使用的告警可视化工具
这些开源的工具能够通过输出帮助用户了解系统的运行状况,并对可能发生的潜在问题作出告警。Media
via https://linux.cn/article-10221-1.html
这些开源的工具能够通过输出帮助用户了解系统的运行状况,并对可能发生的潜在问题作出告警。Media
via https://linux.cn/article-10221-1.html
5 个适合系统管理员使用的告警可视化工具
这些开源的工具能够通过输出帮助用户了解系统的运行状况,并对可能发生的潜在问题作出告警。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/11/174106stsihq448h4hcemi.png">Media</a>你大概已经知道(或猜到)告警可视化alerting and visualization工具是用来做什么的了。下面我们就要来说一下,为什么要讨论这样的工具,甚至某些系统专门将可视化作为特有的功能。可观察性Observability的概念来自控制理论control theory,这个概念描述了我们通过对系统的输入和输出来了解其的能力。本文将重点介绍具有可观察性的输出组件。告警可视化工具可以对其它系统的输出进行分析,进而对输出的信息进行结构化表示。告警实际上是对系统异常状态的描述,而可视化则是让用户能够直观理解的结构化表示。常见的可视化告警告警首先要明确一下告警alert的含义。在人员无法响应告警内容情况下,不应该发送告警 —— 包括那些发给多个人但只有其中少数人可以响应的告警,以及系统中的每个异常都触发的告警。因为这样会产生告警疲劳,告警接收者也往往会对这些过多的告警采取忽视的态度 —— 直到系统恶化到以少见的方式告警。例如,如果管理员每天都会收到告警系统发来的数百封告警邮件,他就很容易会忽略告警系统的所有邮件。除非他真的看到问题发生,或者受到了客户或上级&…
这些开源的工具能够通过输出帮助用户了解系统的运行状况,并对可能发生的潜在问题作出告警。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/11/174106stsihq448h4hcemi.png">Media</a>你大概已经知道(或猜到)告警可视化alerting and visualization工具是用来做什么的了。下面我们就要来说一下,为什么要讨论这样的工具,甚至某些系统专门将可视化作为特有的功能。可观察性Observability的概念来自控制理论control theory,这个概念描述了我们通过对系统的输入和输出来了解其的能力。本文将重点介绍具有可观察性的输出组件。告警可视化工具可以对其它系统的输出进行分析,进而对输出的信息进行结构化表示。告警实际上是对系统异常状态的描述,而可视化则是让用户能够直观理解的结构化表示。常见的可视化告警告警首先要明确一下告警alert的含义。在人员无法响应告警内容情况下,不应该发送告警 —— 包括那些发给多个人但只有其中少数人可以响应的告警,以及系统中的每个异常都触发的告警。因为这样会产生告警疲劳,告警接收者也往往会对这些过多的告警采取忽视的态度 —— 直到系统恶化到以少见的方式告警。例如,如果管理员每天都会收到告警系统发来的数百封告警邮件,他就很容易会忽略告警系统的所有邮件。除非他真的看到问题发生,或者受到了客户或上级&…
Python 函数式编程:不可变数据结构
不可变性可以帮助我们更好地理解我们的代码。下面我将讲述如何在不牺牲性能的条件下来实现它。Media
via https://linux.cn/article-10222-1.html
不可变性可以帮助我们更好地理解我们的代码。下面我将讲述如何在不牺牲性能的条件下来实现它。Media
via https://linux.cn/article-10222-1.html
Python 函数式编程:不可变数据结构
不可变性可以帮助我们更好地理解我们的代码。下面我将讲述如何在不牺牲性能的条件下来实现它。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/11/224129ysll52s353dsnvyd.png">Media</a>在这个由两篇文章构成的系列中,我将讨论如何将函数式编程方法论中的思想引入至 Python 中,来充分发挥这两个领域的优势。本文(也就是第一篇文章)中,我们将探讨不可变数据结构的优势。第二部分会探讨如何在 toolz 库的帮助下,用 Python 实现高层次的函数式编程理念。为什么要用函数式编程?因为变化的东西更难推理。如果你已经确信变化会带来麻烦,那很棒。如果你还没有被说服,在文章结束时,你会明白这一点的。我们从思考正方形和矩形开始。如果我们抛开实现细节,单从接口的角度考虑,正方形是矩形的子类吗?子类的定义基于<a href="https://en.wikipedia.org/wiki/Liskov_substitution_principle">里氏替换原则</a>。一个子类必须能够完成超类所做的一切。如何为矩形定义接口?<pre class="prettyprint linenums">from zope.interface import Interfaceclass IRectangle(Interface): def get_length(self): """正方形能做到""" def get_width(self): """正方形能做到""" def set_dimensions(self, length, width): """啊哦"""</pre>如果我们这么定义,那正方形就不能成为矩形的子类:如果长度和宽度不等,它就无法对 set_dimensions 方法做出响应。另一种方法,是选择将矩形做成不可变对象。<pre class="prettyprint linenums">class IRectangle(Interface): def get_length(self): """正方形能做到""" def get_width(self): """正方形能做到""" def with_dimensions(self, length, width): """返回一个新矩…
不可变性可以帮助我们更好地理解我们的代码。下面我将讲述如何在不牺牲性能的条件下来实现它。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/11/224129ysll52s353dsnvyd.png">Media</a>在这个由两篇文章构成的系列中,我将讨论如何将函数式编程方法论中的思想引入至 Python 中,来充分发挥这两个领域的优势。本文(也就是第一篇文章)中,我们将探讨不可变数据结构的优势。第二部分会探讨如何在 toolz 库的帮助下,用 Python 实现高层次的函数式编程理念。为什么要用函数式编程?因为变化的东西更难推理。如果你已经确信变化会带来麻烦,那很棒。如果你还没有被说服,在文章结束时,你会明白这一点的。我们从思考正方形和矩形开始。如果我们抛开实现细节,单从接口的角度考虑,正方形是矩形的子类吗?子类的定义基于<a href="https://en.wikipedia.org/wiki/Liskov_substitution_principle">里氏替换原则</a>。一个子类必须能够完成超类所做的一切。如何为矩形定义接口?<pre class="prettyprint linenums">from zope.interface import Interfaceclass IRectangle(Interface): def get_length(self): """正方形能做到""" def get_width(self): """正方形能做到""" def set_dimensions(self, length, width): """啊哦"""</pre>如果我们这么定义,那正方形就不能成为矩形的子类:如果长度和宽度不等,它就无法对 set_dimensions 方法做出响应。另一种方法,是选择将矩形做成不可变对象。<pre class="prettyprint linenums">class IRectangle(Interface): def get_length(self): """正方形能做到""" def get_width(self): """正方形能做到""" def with_dimensions(self, length, width): """返回一个新矩…
KRS:一个收集 Kubernetes 资源统计数据的新工具
零配置工具简化了信息收集,例如在某个命名空间中运行了多少个 pod。Media
via https://linux.cn/article-10223-1.html
零配置工具简化了信息收集,例如在某个命名空间中运行了多少个 pod。Media
via https://linux.cn/article-10223-1.html
KRS:一个收集 Kubernetes 资源统计数据的新工具
零配置工具简化了信息收集,例如在某个命名空间中运行了多少个 pod。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/12/000555pwe0z50h59dvw9dz.png">Media</a>最近我在纽约的 O'Reilly Velocity 就 <a href="http://troubleshooting.kubernetes.sh/">Kubernetes 应用故障排除</a>的主题发表了演讲,并且在积极的反馈和讨论的推动下,我决定重新审视这个领域的工具。结果,除了 <a href="https://github.com/kubernetes-incubator/spartakus">kubernetes-incubator/spartakus</a> 和 <a href="https://github.com/kubernetes/kube-state-metrics">kubernetes/kube-state-metrics</a> 之外,我们还没有太多的轻量级工具来收集资源统计数据(例如命名空间中的 pod 或服务的数量)。所以,我在回家的路上开始编写一个小工具 —— 创造性地命名为 krs,它是 Kubernetes Resource Stats 的简称 ,它允许你收集这些统计数据。你可以通过两种方式使用 <a href="https://github.com/mhausenblas/krs">mhausenblas/krs</a>:直接在命令行(有 Linux、Windows 和 MacOS 的二进制文件),以及在集群中使用 <a href="https://github.com/mhausenblas/krs/blob/master/launch.sh">launch.sh</a> 脚本部署,该脚本动态创建适当的基于角色的访问控制(RBAC) 权限。提醒你,它还在早期,并且还在开发中。但是,krs 的 0.1 版本提供以下功能:在每个命名空间的基础上,它定期收集资源统计信息(支持 pod、部署和服务)。它以 <a href="https://openmetrics.io/">OpenMetrics 格式</a>公开这些统计。它可以直接通过二进制文件使用,也可以在包含所有依赖项的容器化设置中使用。目前,你需要安装并配置 kubectl,因为 krs 依赖于执行 kubectl get all 命令来收集统计数据。(另一方面,谁会使用 Kubernetes…
零配置工具简化了信息收集,例如在某个命名空间中运行了多少个 pod。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/12/000555pwe0z50h59dvw9dz.png">Media</a>最近我在纽约的 O'Reilly Velocity 就 <a href="http://troubleshooting.kubernetes.sh/">Kubernetes 应用故障排除</a>的主题发表了演讲,并且在积极的反馈和讨论的推动下,我决定重新审视这个领域的工具。结果,除了 <a href="https://github.com/kubernetes-incubator/spartakus">kubernetes-incubator/spartakus</a> 和 <a href="https://github.com/kubernetes/kube-state-metrics">kubernetes/kube-state-metrics</a> 之外,我们还没有太多的轻量级工具来收集资源统计数据(例如命名空间中的 pod 或服务的数量)。所以,我在回家的路上开始编写一个小工具 —— 创造性地命名为 krs,它是 Kubernetes Resource Stats 的简称 ,它允许你收集这些统计数据。你可以通过两种方式使用 <a href="https://github.com/mhausenblas/krs">mhausenblas/krs</a>:直接在命令行(有 Linux、Windows 和 MacOS 的二进制文件),以及在集群中使用 <a href="https://github.com/mhausenblas/krs/blob/master/launch.sh">launch.sh</a> 脚本部署,该脚本动态创建适当的基于角色的访问控制(RBAC) 权限。提醒你,它还在早期,并且还在开发中。但是,krs 的 0.1 版本提供以下功能:在每个命名空间的基础上,它定期收集资源统计信息(支持 pod、部署和服务)。它以 <a href="https://openmetrics.io/">OpenMetrics 格式</a>公开这些统计。它可以直接通过二进制文件使用,也可以在包含所有依赖项的容器化设置中使用。目前,你需要安装并配置 kubectl,因为 krs 依赖于执行 kubectl get all 命令来收集统计数据。(另一方面,谁会使用 Kubernetes…
Bash 脚本中如何使用 here 文档将数据写入文件
here 文档不是什么特殊的东西,只是一种 I/O 重定向方式,它告诉 bash shell 从当前源读取输入,直到读取到只有分隔符的行。Media
via https://linux.cn/article-10224-1.html
here 文档不是什么特殊的东西,只是一种 I/O 重定向方式,它告诉 bash shell 从当前源读取输入,直到读取到只有分隔符的行。Media
via https://linux.cn/article-10224-1.html
Bash 脚本中如何使用 here 文档将数据写入文件
here 文档here document (LCTT 译注:here 文档又称作 heredoc )不是什么特殊的东西,只是一种 I/O 重定向方式,它告诉 bash shell 从当前源读取输入,直到读取到只有分隔符的行。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/12/095122pd5k2kwhkkj22k2s.jpg">redirect output of here document to a text file</a>这对于向 ftp、cat、echo、ssh 和许多其他有用的 Linux/Unix 命令提供指令很有用。 此功能适用于 bash 也适用于 Bourne、Korn、POSIX 这三种 shell。here 文档语法语法是:<pre class="prettyprint linenums">command <<EOFcmd1cmd2 arg1EOF</pre>或者允许 shell 脚本中的 here 文档使用 EOF<<- 以自然的方式缩进:<pre class="prettyprint linenums">command <<-EOF msg1 msg2 $var on line EOF</pre>或者<pre class="prettyprint linenums">command <<'EOF' cmd1 cmd2 arg1 $var won't expand as parameter substitution turned off by single quotingEOF</pre>或者 <strong>重定向并将其覆盖</strong> 到名为 my_output_file.txt 的文件中:<pre class="prettyprint linenums">command <<EOF > my_output_file.txt mesg1 msg2 msg3 $var on $fooEOF</pre>或<strong>重定向并将其追加</strong>到名为 my_output_file.txt 的文件中:<pre class="prettyprint linenums">command <<EOF >> my_output_file.txt mesg1 msg2 msg3 $var on $fooEOF</pre>示例以下脚本将所需内容写入名为 /tmp/output.txt 的文件中:<pre class="prettyprint linenums">#!/bin/bashOUT=/tmp/output.txtecho "Starting my script..."echo "Doing something..."cat <<EOF >$OUT Status of backup as on $(date) Backing up files $HOME and /etc/EOFecho "Starting backup using rsync..."</pre>你可以使用<a href="https//www.cyberciti.biz/faq/linux-unix-appleosx-bsd-cat-command-examples/">cat命令</a>查看/tmp/output.txt文件:<pre class="prettyprint linenums">$ cat /tmp/output.txt</pre>示例输出:<pre class="prettyprint linenums"> Status of backup as on Thu Nov 16 17:00:21 IST 2017 Backing up files /home/vivek and /etc/</pre>禁用路径名/参数/变量扩展、命令替换、算术扩展像 $HOME 这类变量和像 $(date) 这类命令在脚本中会被解释为替换。 要禁用它,请使用带有 'EOF' 这样带有单引号的形式,如下所示:<pre class="prettyprint linenums">#!/bin/bashOUT=/tmp/output.txtecho "Starting my script..."echo "Doing something..."# No parameter and variable expansion, command substitution, arithmetic expansion, or pathname expansion is performed on…
here 文档here document (LCTT 译注:here 文档又称作 heredoc )不是什么特殊的东西,只是一种 I/O 重定向方式,它告诉 bash shell 从当前源读取输入,直到读取到只有分隔符的行。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/12/095122pd5k2kwhkkj22k2s.jpg">redirect output of here document to a text file</a>这对于向 ftp、cat、echo、ssh 和许多其他有用的 Linux/Unix 命令提供指令很有用。 此功能适用于 bash 也适用于 Bourne、Korn、POSIX 这三种 shell。here 文档语法语法是:<pre class="prettyprint linenums">command <<EOFcmd1cmd2 arg1EOF</pre>或者允许 shell 脚本中的 here 文档使用 EOF<<- 以自然的方式缩进:<pre class="prettyprint linenums">command <<-EOF msg1 msg2 $var on line EOF</pre>或者<pre class="prettyprint linenums">command <<'EOF' cmd1 cmd2 arg1 $var won't expand as parameter substitution turned off by single quotingEOF</pre>或者 <strong>重定向并将其覆盖</strong> 到名为 my_output_file.txt 的文件中:<pre class="prettyprint linenums">command <<EOF > my_output_file.txt mesg1 msg2 msg3 $var on $fooEOF</pre>或<strong>重定向并将其追加</strong>到名为 my_output_file.txt 的文件中:<pre class="prettyprint linenums">command <<EOF >> my_output_file.txt mesg1 msg2 msg3 $var on $fooEOF</pre>示例以下脚本将所需内容写入名为 /tmp/output.txt 的文件中:<pre class="prettyprint linenums">#!/bin/bashOUT=/tmp/output.txtecho "Starting my script..."echo "Doing something..."cat <<EOF >$OUT Status of backup as on $(date) Backing up files $HOME and /etc/EOFecho "Starting backup using rsync..."</pre>你可以使用<a href="https//www.cyberciti.biz/faq/linux-unix-appleosx-bsd-cat-command-examples/">cat命令</a>查看/tmp/output.txt文件:<pre class="prettyprint linenums">$ cat /tmp/output.txt</pre>示例输出:<pre class="prettyprint linenums"> Status of backup as on Thu Nov 16 17:00:21 IST 2017 Backing up files /home/vivek and /etc/</pre>禁用路径名/参数/变量扩展、命令替换、算术扩展像 $HOME 这类变量和像 $(date) 这类命令在脚本中会被解释为替换。 要禁用它,请使用带有 'EOF' 这样带有单引号的形式,如下所示:<pre class="prettyprint linenums">#!/bin/bashOUT=/tmp/output.txtecho "Starting my script..."echo "Doing something..."# No parameter and variable expansion, command substitution, arithmetic expansion, or pathname expansion is performed on…
10 分钟建设一个加密货币商城
这篇文章将会教你如何在 10 分钟中内借助 WordPress 建立起一个支持 ERC20 通证的在线 B2C 商城。Media
via https://linux.cn/article-10225-1.html
这篇文章将会教你如何在 10 分钟中内借助 WordPress 建立起一个支持 ERC20 通证的在线 B2C 商城。Media
via https://linux.cn/article-10225-1.html
10 分钟建设一个加密货币商城
这篇文章将会教你如何在 10 分钟中内借助 WordPress 建立起一个支持 ERC20 通证的在线 B2C 商城。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/12/230122jrplqhf0qlm0zhm9.jpg">Media</a>在区块链及通证经济备受瞩目的今天,很多开源社区纷纷在探讨如何将开源社区与区块链技术和通证经济相结合,从而为开源社区和开源生态提供自主、自洽、发展的动力和支持。我们 Linux 中国就是这诸多探索的开源社区之一,可喜的是,我们已经迈出了第一步:<a href="https://linux.cn/article-9886-1.html">发布社区通证</a>,也迈出了第二步,<a href="https://linux.cn/article-10178-1.html">使通证流通起来</a>。这里,我们愿意分享我们的经验给各个社区伙伴,使更多的开源社区也可以投身于新的生态探索,避开一些我们遇到的陷阱,从而共同营造一个更繁荣的开源世界。我们的<a href="https://shop.linux.cn/">通证商城</a>是基于 WordPress 的 WooCommerce 商城构建的。安装 WordPress在开始配置商城前,你需要先安装 WordPress 。你需要购买一个支持 PHP + MySQL 的虚拟主机,或自行配置 VPS、云服务器的环境,以支持 WordPress 的运行。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/12/230241urkdj4dzk2b06crj.jpg">Media</a>当你安装好 WordPress 后,你可以看到一个这样的后台。安装 WooCommerce安装完 WordPress 后,接下来安装 WordPress 的商城插件 WooCommerce ,点击菜单栏中的“插件”-“安装插件”,访问到安装插件的界面,在界面右上角的搜索框内容输入“WooCommerce”,并按下回车,可以搜索到 WooCommerce 。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/12/230241w4202h26s8hpzqs8.jpg">Media</a>点击现在…
这篇文章将会教你如何在 10 分钟中内借助 WordPress 建立起一个支持 ERC20 通证的在线 B2C 商城。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/12/230122jrplqhf0qlm0zhm9.jpg">Media</a>在区块链及通证经济备受瞩目的今天,很多开源社区纷纷在探讨如何将开源社区与区块链技术和通证经济相结合,从而为开源社区和开源生态提供自主、自洽、发展的动力和支持。我们 Linux 中国就是这诸多探索的开源社区之一,可喜的是,我们已经迈出了第一步:<a href="https://linux.cn/article-9886-1.html">发布社区通证</a>,也迈出了第二步,<a href="https://linux.cn/article-10178-1.html">使通证流通起来</a>。这里,我们愿意分享我们的经验给各个社区伙伴,使更多的开源社区也可以投身于新的生态探索,避开一些我们遇到的陷阱,从而共同营造一个更繁荣的开源世界。我们的<a href="https://shop.linux.cn/">通证商城</a>是基于 WordPress 的 WooCommerce 商城构建的。安装 WordPress在开始配置商城前,你需要先安装 WordPress 。你需要购买一个支持 PHP + MySQL 的虚拟主机,或自行配置 VPS、云服务器的环境,以支持 WordPress 的运行。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/12/230241urkdj4dzk2b06crj.jpg">Media</a>当你安装好 WordPress 后,你可以看到一个这样的后台。安装 WooCommerce安装完 WordPress 后,接下来安装 WordPress 的商城插件 WooCommerce ,点击菜单栏中的“插件”-“安装插件”,访问到安装插件的界面,在界面右上角的搜索框内容输入“WooCommerce”,并按下回车,可以搜索到 WooCommerce 。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/12/230241w4202h26s8hpzqs8.jpg">Media</a>点击现在…