2020年5月

微软拟用 AI 取代其英国网站新闻编辑队伍

英国《卫报》30 日消息,微软决定用 AI 软件代替自己新闻网站的编辑队伍。据报道,当地时间 28 日,英国新闻协会负责在 MSN 网站及微软 Edge 浏览器上维护其新闻主页的约 27 名编辑,由于微软决定停止用人工选择、编辑和策划其主页上的新闻报道,被告知将在一个月的时间内被解雇。

来源:界面

硬核老王点评:AI “抢夺”人类工作的进程越来越快了,你的工作还好吗?

臭名昭著的 Trickbot 木马更新了一种新的传播方式,使其更难被发现

Trickbot 最初是作为银行木马,于 2016 年首次出现,但在此后的几年里,它被多次被重新使用于其他手段。Trickbot 还可以作为僵尸网络来帮助传播给更多的受害者。EternalBlue,这个为 WannaCry 提供动力的 Windows 漏洞,构成了 Trickbot 传播的关键部分。Trickbot 是模块化的,它的作者可以很容易地添加或删除功能,正是这一点,使得最新的改动可以很容易地实现。现在,当 Trickbot 感染域控制器时,恶意软件会从内存中运行,确保不会在受感染的机器上留下任何人工制品,从而增加了检测难度。

来源:zdnet

硬核老王点评:病毒和木马固然是越来越狡猾,但是最大的根源还是不修补的系统缺陷。

新的 Beta 版树莓派 4 固件支持 USB 引导

于 2019 年 6 月推出的 树莓派 4 拥有的功能亮点之一是 USB 3.0,与以前版本的计算机相比,其可以实现更快的存储速度。不过,与先前的型号不同的是,树莓派 4 不支持 USB 大容量存储启动。此次更新将提供完整的 USB 启动支持,从而完全不需要 microSD 卡。不过由于还是测试版,尚有一些不完善,可等到正式版本发布再使用。

来源:开源中国

硬核老王点评:期待正式版,这样就不用依赖 microSD 卡了。

FRR(free range routing)给了你实现多种协议的选择。本指南将帮助你入门。

最近,我写了一篇文章,解释了如何使用 Quagga 路由套件实现 开放式最短路径优先 Open Shortest Path First (OSPF)。可以使用多个软件套件代替 Quagga 来实现不同的路由协议。其中一种是 FRR(free range routing)。

FRR

FRR 是一个路由软件套件,它衍生自 Quagga,并在 GNU GPL2 许可下分发。与 Quagga 一样,它为类 Unix 平台提供了所有主要路由协议的实现,例如 OSPF、 路由信息协议 Routing Information Protocol (RIP)、 边界网关协议 Border Gateway Protocol (BGP) 和 中间系统到中间系统 Intermediate system-to-intermediate system (IS-IS)。

开发了 Quagga 的一些公司,例如 Big Switch Networks、Cumulus、Open Source Routing 和 6wind,创建了 FRR 以在 Quagga 的良好基础上进行改善。

体系结构

FRR 是一组守护进程,它们可以共同构建路由表。每个主协议都在其自己的守护进程中实现,并且这些守护进程与独立于协议的核心守护进程 Zebra 通信,后者提供内核路由表更新、接口查找以及不同路由协议之间路由的重新分配。每个特定协议的守护进程负责运行相关协议并根据交换的信息构建路由表。

 title=

VTY shell

VTYSH 是 FRR 路由引擎的集成 shell。它将每个守护进程中定义的所有 CLI 命令合并,并在单个 shell 中将它们呈现给用户。它提供了类似于 Cisco 的命令行模式,并且许多命令与 Cisco IOS 命令相似。CLI 有不同的模式,某些命令仅在特定模式下可用。

设置

在本教程中,我们将使用 FRR 配置动态路由来实现路由信息协议(RIP)。我们可以通过两种方式来做到这一点:在编辑器中编辑协议守护进程配置文件或使用 VTY Shell。在此例中,我们将使用 VTY shell。我们的设置包括两个名为 Alpha 和 Beta 的 CentOS 7.7 主机。这两台主机都有两个网络接口,并共享对 192.168.122.0/24 网络的访问。我们将广播 10.12.11.0/24 和 10.10.10.0/24 网络的路由。

对于主机 Alpha:

  • eth0 IP:192.168.122.100/24
  • 网关:192.168.122.1
  • eth1 IP:10.10.10.12/24

对于主机 Beta:

  • eth0 IP:192.168.122.50/24
  • 网关:192.168.122.1
  • eth1 IP:10.12.11.12/24

安装软件包

首先,我们需要在两台主机上都安装 FRR 软件包。可以按照官方 FRR 文档中的说明进行操作。

启用 IP 转发

对于路由,我们需要在两台主机上都启用 IP 转发,因为这将由 Linux 内核执行:

sysctl -w net.ipv4.conf.all.forwarding = 1
sysctl -w net.ipv6.conf.all.forwarding = 1
sysctl -p

启用 RIPD 守护进程

安装后,所有配置文件将保存在 /etc/frr 目录中。 必须通过编辑 /etc/frr/daemons 文件显式启用守护进程。该文件确定启动 FRR 服务时激活哪些守护进程。要启用特定的守护进程,只需将相应的 no 改为 yes。之后的服务重启将启动守护进程。

 title=

防火墙配置

由于 RIP 协议使用 UDP 作为传输协议,并被分配了 520 端口,因此我们需要在 firewalld 配置中允许该端口。

firewall-cmd --add-port=520/udp –permanent
firewalld-cmd -reload

现在,我们可以使用以下命令启动 FRR 服务:

systemctl start frr

使用 VTY 进行配置

现在,我们需要使用 VTY Shell 配置 RIP。

在主机 Alpha 上:

[root@alpha ~]# vtysh

Hello, this is FRRouting (version 7.2RPKI).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

alpha# configure terminal
alpha(config)# router rip
alpha(config-router)# network 192.168.122.0/24
alpha(config-router)# network 10.10.10.0/24
alpha(config-router)# route 10.10.10.5/24
alpha(config-router)# do write
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Configuration saved to /etc/frr/ripd.conf
Configuration saved to /etc/frr/staticd.conf
alpha(config-router)# do write memory
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Configuration saved to /etc/frr/ripd.conf
Configuration saved to /etc/frr/staticd.conf
alpha(config-router)# exit

类似地,在主机 Beta 上:

[root@beta ~]# vtysh

Hello, this is FRRouting (version 7.2RPKI).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

beta# configure terminal
beta(config)# router rip
beta(config-router)# network 192.168.122.0/24
beta(config-router)# network 10.12.11.0/24
beta(config-router)# do write
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Configuration saved to /etc/frr/zebra.conf
Configuration saved to /etc/frr/ripd.conf
Configuration saved to /etc/frr/staticd.conf
beta(config-router)# do write memory
Note: this version of vtysh never writes vtysh.conf
Building Configuration...
Configuration saved to /etc/frr/zebra.conf
Configuration saved to /etc/frr/ripd.conf
Configuration saved to /etc/frr/staticd.conf
beta(config-router)# exit

完成后,像下面这样检查两台主机路由:

[root@alpha ~]# ip route show
default via 192.168.122.1 dev eth0 proto static metric 100
10.10.10.0/24 dev eth1 proto kernel scope link src 10.10.10.12 metric 101
10.12.11.0/24 via 192.168.122.50 dev eth0 proto 189 metric 20
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.100 metric 100

我们可以看到 Alpha 上的路由表通过 192.168.122.50 包含了 10.12.11.0/24 的条目,它是通过 RIP 提供的。

类似地,在 Beta 上,该表通过 192.168.122.100 包含了 10.10.10.0/24 的条目。

[root@beta ~]# ip route show
default via 192.168.122.1 dev eth0 proto static metric 100
10.10.10.0/24 via 192.168.122.100 dev eth0 proto 189 metric 20
10.12.11.0/24 dev eth1 proto kernel scope link src 10.12.11.12 metric 101
192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.50 metric 100

总结

如你所见,设置和配置相对简单。要增加复杂性,我们可以向路由器添加更多的网络接口,以为更多的网络提供路由。可以在编辑器中编辑配置文件来进行配置,但是使用 VTY Shell 在单个组合会话中为我们提供了所有 FRR 守护进程的前端。


via: https://opensource.com/article/20/5/vty-shell

作者:M Umer 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

通过以下提示,成为一个更好的作者。

开始接触开源社区的一个方法就是写关于它的文章。你可以贡献技术文档,分享你如何使用软件,或者为我们社区写一篇文章。但是开始写作说起来容易做起来难。我听到的最常见的两个不写文章的借口是:“我没有什么新东西可写”和“我不是一个好的作者”。我在这里是为了打破这两个误区。

你应该写什么?

“寻找那些经常被遗漏的故事。” 埃里克·拉尔森

对于某些人来说,写作的最大障碍是找到要写的想法或话题。很容易就落入了这样的思维陷阱:“这个话题已经写过了,何必再麻烦。”

我不是第一个写文章的人,也不会是最后一个。我带来的是我独特的视角和这些年来所学到的东西。曾经有人向我请教过一些关于写作入门的建议,或者是如何让自己的写作更上一层楼。我决定把这些建议变成一篇文章。

文如其人,没有人会以你的方式来述事,你的经验和观点可能正是别人所需要的。

这里有一些提示,可以帮助你想出一个主题:

  • 你最近学到了什么东西?写出你是如何学习的,你学到了什么,或使你感到惊讶的事情。
  • 你经常被问到的问题是什么?把答案写出来。
  • 你最近是否在搜索一篇怎么做的文章,但在搜索结果中,你对排名靠前的文章不满意?请写出你要找的文章。
  • 你是否参加过会议或研讨会?写一篇会后总结来说明你所学到的东西。
  • 你开始使用新工具了吗?写一份操作指南或入门指南。

你写的是什么类型的文章?

有不同类型的文章,包括:

  • 技术文档
  • 操作指南
  • 博客
  • 白皮书或电子书
  • 回顾性的文章

内容的类型会影响你的写作风格和语气。博客更加非正式和是对话式的。而技术文档更正式,更具有指导性。

你是为谁而写的?

每一篇文章都应该有一个单一的受众。受众是指你为之写作的对象是什么类型的人。在你开始写作之前,写下你的读者的一些特征是有助于写作的。重要的是要考虑到你要为谁写,以及你不是为谁写的 —— 确定你的目标受众将决定要包括哪些内容和不包括哪些内容。

例如,我在写这篇文章的时候,我设想的目标受众是这样的:

  • 有基本的写作和语法知识
  • 有兴趣提高写作能力
  • 在技术领域担任开发人员、销售工程师、客户经理或类似职位的工作
  • 不是经验丰富或资深的作者,可能在个人或工作博客上发表过几篇文章,想写更多的文章。
  • 非虚构写作

如果你有针对多个受众的内容,可以考虑针对不同的受众将其分解成不同的内容。对你的受众要考虑的一些方面:

  • 专业水平:新手、中级、高级
  • 作用:管理人员、个人贡献者
  • 目标:他们为什么要阅读这些?

言语很重要

你选择的言语会对读者产生影响。晦涩难懂的词汇会使文章更难理解,不常见的词汇会让读者觉得自己很笨,某些词汇可能会不小心冒犯读者。作为一个作者,你的目标是避免所有这些。下面是怎么做的:

使用日常用语

不要把写作作为炫耀你的词汇量或你从“每日一字”台历上学到的单词的方式。写作是为了让读者能够理解。每一篇文章都有相关的阅读水平。如果你写的是技术文档,那么你的目标大约是初中的阅读水平。这并不意味着你的受众只有初中的教育水平。它意味着你的写作会更容易被人理解。你想让人们对这些言语过目不忘,还是想让他们觉得自己学到了什么?虽然你可以使用长而复杂的词汇,但并不意味着你应该这样做。使用简单的语言不一定意味着你的文章会很无聊。

使用 Hemingway 应用等工具来检查你的作品的可读性(它不是开源的,但很优秀)。比如说,在初稿之后,这篇文章被评定为五年级的阅读水平。Hemingway 还提供了如何改进写作的建议 —— 找出难以理解的句子或需要改变选词的地方。

如果你想要找出替代的词汇,可以查看 Plain English Campaign 的建议或 Power Thesaurus 的众包建议。

知道应该规避哪些词

“每次你想写‘非常’的时候,就用‘该死的’代替;你的编辑会把它删掉,而作品就会如它应有的那样。” 马克·吐温

在写教程或指南的时候,这里有一些要避免的词,包括“ 简单 simple ”、“ 容易 easy ”和“ 就这样 just ”。你是你所写的主题的专家,经过多年的实践,可能会觉得事情很简单。而初学者可能会觉得事情不“简单”,也不“容易”。你的读者可能会感到沮丧,因为他们觉得过程或解释并不简单。

你是否曾经因为无法理解作者的意思而不得不反复重读一个句子或段落?你有没有因为一篇文章对你来说没有意义而放弃过?我有过。

作为一个作者,你希望你的读者感到困惑或不理解吗?我希望不会。

在你的写作中要避免的其它词语:

  • 这件事 That
  • 真的 Really
  • 非常 Very
  • 所以 So
  • 为了 In order to

一般来说,这些词可以在不改变句子意思的情况下删除。

在我写完之后,我会在文档中搜索这些词。当我在这篇文章中搜索时,我发现了以下这句话:

“这并不意味着你的受众只有初中的教育水平这件事,而意味着你的写作会更容易被理解这件事。”

这句话中出现了两个“ 这件事 That ”的例子。它们并没有给句子增加价值。它们可以被删除而不改变其含义。删除这些词汇可以缩短句子,并且更短的句子更容易理解。而说到短句,我还把它改写成了两句话。

“这并不意味着你的受众只有初中的教育水平。它意味着你的写作会更容易被人理解。”

使用包容性语言

词语和短语的历史背景可能会导致人们感到被排斥或冒犯。在写作时,你要让读者感到被包容。当你使用包容性的语言时,会让读者感到被理解、被尊重,感觉被包容。我参考了 Buffer 中的这篇关于使用包容性语言的指南

修订和编辑

“几乎所有好的写作都是从糟糕的第一次努力开始的。你需要从某个地方开始。” 安妮·拉莫特

写作是一个迭代的过程。如果你认为作者们坐在办公桌前,在一个小时内就能完成一篇文章准备发表,那么请你再想一想。有些文章需要我花几个星期的时间来完成。以下是我的标准流程:

  • 写一个粗略的初稿。我说的粗略,我的意思是粗陋。写的时候不用担心语法问题。目的是让文字从我的脑海中浮现出来,写在纸上。这一步可能需要一个小时到几周的时间。
  • 将草稿放一段时间。这可能需要几个小时到几天的时间,这取决于出版时间线。
  • 审阅草稿。进行调整和编辑。
  • 征求反馈意见,可以是同事或朋友的反馈意见。在这个阶段的反馈中,我的重点是明确性。是否有意义?是否有什么令人困惑的地方?有什么缺失的部分?
  • 纳入反馈意见。无论你的写作经验有多丰富,让其他作者审阅你的作品,都会让你的作品变得更好。

在这个阶段,我有了一个相当扎实的草稿。现在到了我最不喜欢的写作部分 —— 编辑。我之前提到的 Hemingway 应用不仅能告诉你阅读水平,还能提供改进写作的建议。我还使用 Grammarly 来帮助编辑语法。关于 Grammarly 的开源替代工具,请查看语言工具网站或这篇文章中的开源写作工具

我的写作挑战之一就是适当地使用逗号。Grammarly 可以帮助我找出我缺失或滥用逗号的地方。Grammarly 发现了 43 个这篇文章的最终草稿的正确性问题。其中大部分是逗号错误。

 title=

除了语法错误之外,该应用程序还提供了一些建议,以帮助提高清晰度、参与度和表达能力(其中一些功能可能在免费版中没有)。这包括单词选择和使用主动语气与被动语气等。有些建议我接受,有些则拒绝。在审查了所有的警报和建议后,Grammarly 会在各个方面进行反馈。

 title=

不要害怕寻求写作上的帮助。每一个好的作者背后都有一个好的编辑或好的编辑应用。

文体指南

文体指南为改善书面交流提供了标准。它们包括标点符号、语法和用词等方面。如果是为你的公司撰写文档,请检查一下公司是否有文体指南。如果没有文体指南,或者你是为自己写的,下面是一些常用的文体指南:

写作是一种与社区分享自己的思想和知识的方式。开始写作的唯一方法就是开始打字。用这些建议来微调你的写作。


via: https://opensource.com/article/20/5/write-about-open-source-software

作者:Dawn Parzych 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

HashiCorp 产品禁止中国公司使用,引发对开源软件受限制的担忧

近日国外知名 DevOps 服务商 HashiCorp 的官网相关条款页面被发现禁止中国公司使用其 Vault 企业版产品的声明。Valut 是一个用于机密管理、加密即服务和特权访问管理的工具。HashiCorp 创始人回应,其表示实际上这与开源软件无关,而是只限制 Vault 企业版产品,并且原因是 Vault 产品目前使用的加密算法,在中国不符合法规,另一方面是美国出口管制法在涉及加密相关软件上也有相应规定。因此这两项原因使得 HashCorp 不得不在声明中说明风险。

来源:开源中国

硬核老王点评:值此时期,出于对开源软件的边界的敏感,这个消息引起了的很多议论。

画风惊悚,南京邮电大学用开源机器人项目实现“云毕业典礼”

据介绍,毕业典礼上的这些机器人出自学校的机器人创新团队之手,是在以前参赛机器人的基础上改装的。这次改装主要是为机器人配置了与真人身高相仿的模型,现场由专门的同学对机器人进行远程控制,屏幕则是用 ZOOM 与参加毕业典礼的同学进行视频交互。

来源:开源中国

硬核老王点评:开源不开源的先不说,这种令人惊悚的机器人行为想必能给出席和不能出席毕业典礼的毕业生们留下深刻的印象。

Docker 企业版被卖给 Mirantis 后,发布了第一个主要版本

Docker 公司于 2019 年 11 月将其 Docker 企业版产品线卖给了顶级 OpenStack 和 Kubernetes 云公司Mirantis。这次发布的第一个主要版本 Docker 企业版 3.1 是一个重大的升级。在容器协调方面,它现在依赖于 Kubernetes 1.17。随之而来的是更高的稳定性和功能,如调度器的改进和对 Windows 的支持。新版本还包括 Nvidia GPU 对人工智能和机器学习应用和编程的支持。

来源:zdnet

硬核老王点评:Docker 公司的经历令人唏嘘,不知道 Docker 企业版到了 Mirantis 手里,是否会有不同的局面。

NSA 称俄黑客组织渗入著名邮件系统软件 Exim 已有数月时间

Exim 是著名的用于基于 Unix/Linux 的邮件系统 MTA 软件,件默认安装在许多 Linux 发行版中。虽然这个漏洞的原始补丁早在去年已经发布,但许多在运行 Exim 的计算机仍没有安装这个补丁。该漏洞允许远程攻击者在知道该漏洞的情况下执行他们选择的命令和代码。根据 NSA 发布的文件,利用这一漏洞发起攻击的是俄罗斯军方组织 Sandworm。

来源:cnBeta.COM

硬核老王点评:基础设施软件中潜伏的安全漏洞带来的破坏的隐秘的、深远的。对错误理解了“懒惰的系统管理员才是好的系统管理员”的人来说,可能破坏尤其大。

GitHub 警告 Java 开发者,新的恶意软件正在毒害 NetBeans 项目

GitHub 表示,在其网站上上传的 26 个版本库中发现了含有这个被命名为 Octopus Scanner 恶意软件。该恶意软件会扫描受害者的工作站,寻找本地的 NetBeans IDE 安装,然后潜入开发者的其他 Java 项目。它可以在 Windows、macOS 和 Linux 上运行,然后会下载一个远程访问木马,从而让 Octopus Scanner 操作者在受感染的受害者电脑中翻阅,寻找敏感信息。其真正目的是在敏感项目或大型软件公司内部的开发人员的机器上放置远程访问木马,而不一定是为了毒害开源 Java 项目。

来源:zdnet

硬核老王点评:开源的代码,如果没有良好的管理和审计,相当于不设防的堡垒,看似坚固,实则孱弱。

谷歌计划根据页面“体验”调整搜索排名

谷歌将赋予“体验”指标更多的权重,以决定在出现在移动端搜索中的“热门故事”的内容。具体来说,谷歌计划将 核心网络体征 Core Web Vitals 纳入现有的搜索排名信号中。核心网络体征是谷歌在本月早些时候推出的一组指标,量化了网络用户体验的各个方面,包括加载时间、互动性和内容加载时的稳定性。谷歌现有的页面体验搜索信号包括移动友好性、安全浏览、HTTPS 安全和侵入式界面指南等方面。

来源:zdnet

硬核老王点评:“漂亮”的页面总是更受到欢迎。

使用 Tiny Tiny RSS 来保护你阅读新闻馈送时的隐私。

Tiny Tiny RSS(TT-RSS)是一个自由开源的基于 Web 的新闻 馈送 feed (RSS/Atom)阅读器和聚合工具。它非常适合那些注重隐私,并且仍然依赖 RSS 来获取日常新闻的人。TT-RSS 是自行托管的软件,因此你可以 100% 的掌控你的服务器、数据以及你的全部隐私。它还支持大量的插件、扩展和主题。你喜欢黑暗模式的界面?没问题。想基于关键词过滤发来的消息?TT-RSS 也能让你得偿所愿。

 title=

现在你知道 TT-RSS 是什么了,那么为什么你可能会想用它。我会讲述要把它安装到树莓派或 Debian 10 服务器上你需要了解的所有的东西。

安装和配置 TT-RSS

要把 TT-RSS 安装到树莓派上,你还需要安装和配置最新版本的 PHP(本文撰写时 PHP 最新版本是 7.3)、后端数据库 PostgreSQL、Nginx web 服务器、Git,最后才是 TT-RSS。

1、安装 PHP 7

安装 PHP 7 是整个过程中最复杂的部分。幸运的是,它并不像看起来那样困难。从安装下面的支持包开始:

$ sudo apt install -y ca-certificates apt-transport-https

现在,添加存储库 PGP 密钥:

$ wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -

下一步,把 PHP 库添加到你的 apt 源:

$ echo "deb https://packages.sury.org/php/ buster main" | sudo tee /etc/apt/sources.list.d/php.list

然后更新你的存储库索引:

$ sudo apt update

最后,安装 PHP 7.3(或最新版本)和一些通用组件:

$ sudo apt install -y php7.3 php7.3-cli php7.3-fpm php7.3-opcache php7.3-curl php7.3-mbstring php7.3-pgsql php7.3-zip php7.3-xml php7.3-gd php7.3-intl

上面的命令默认你使用的后端数据库是 PostgreSQL,会安装 php7.3-pgsql。如果你想用 MySQL 或 MariaDB,你可以把命令参数改为 php7.3-mysql

下一步,确认 PHP 已安装并在你的树莓派上运行着:

$ php -v

现在是时候安装和配置 Web 服务器了。

2、安装 Nginx

可以用下面的命令安装 Nginx:

$ sudo apt install -y nginx

修改默认的 Nginx 虚拟主机配置,这样 Web 服务器才能识别 PHP 文件以及知道如何处理它们。

$ sudo nano /etc/nginx/sites-available/default

你可以安全地删除原文件中的所有内容,用下面的内容替换:

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;
        index index.html index.htm index.php;
        server_name _;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
          include snippets/fastcgi-php.conf;
          fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        }

}

Ctrl+O 保存修改后的配置文件,然后按 Ctrl+X 退出 Nano。你可以用下面的命令测试你的新配置文件:

$ nginx -t

如果没有报错,重启 Nginx 服务:

$ systemctl restart nginx

3、安装 PostgreSQL

接下来是安装数据库服务器。在树莓派上安装 PostgreSQL 超级简单:

$ sudo apt install -y postgresql postgresql-client postgis

输入下面的命令看一下数据库服务器安装是否成功:

$ psql --version

4、创建 Tiny Tiny RSS 数据库

在做其他事之前,你需要创建一个数数据库,用来给 TT-RSS 软件保存数据。首先,登录 PostgreSQL 服务器:

sudo -u postgres psql

下一步,新建一个用户,设置密码:

CREATE USER username WITH PASSWORD 'your_password' VALID UNTIL 'infinity';

然后创建一个给 TT-RSS 用的数据库:

CREATE DATABASE tinyrss;

最后,给新建的用户赋最高权限:

GRANT ALL PRIVILEGES ON DATABASE tinyrss to user_name;

这是安装数据库的步骤。你可以输入 \q 来退出 psql 程序。

5、安装 Git

安装 TT-RSS 需要用 Git,所以输入下面的命令安装 Git:

$ sudo apt install git -y

现在,进入到 Nginx 服务器的根目录:

$ cd /var/www/html

下载 TT-RSS 最新源码:

$ git clone https://git.tt-rss.org/fox/tt-rss.git tt-rss

注意,这一步会创建一个 tt-rss 文件夹。

6、安装和配置Tiny Tiny RSS

现在是安装和配置你的新 TT-RSS 服务器的最后时刻了。首先,确认下你在浏览器中能打开 http://your.site/tt-rss/install/index.php。如果浏览器显示 403 Forbidden,那么就证明 /var/www/html 文件夹的权限没有设置正确。下面的命令通常能解决这个问题:

$ chmod 755 /var/www/html/ -v

如果一切正常,你会看到 TT-RSS 安装页面,它会让你输入一些数据的信息。你只需要输入前面你创建的数据库用户名和密码;数据库名;主机名填 localhost;端口填 5432

点击“Test Configuration”。如果一切正常,你会看到一个标记着“Initialize Database”的红色按钮。点击它来开始安装。结束后,你会看到一个配置文件,你可以把它复制到 TT-RSS 的目录,另存为 config.php

安装过程结束后,浏览器输入 http://yoursite/tt-rss/ 打开 TT-RSS,使用默认的凭证登录(用户名:admin,密码:password)。登录后系统会提示你修改密码。我强烈建议你尽快修改密码。

配置 TT-RSS

如果一切正常,你现在就可以开始使用 TT-RSS 了。建议你新建一个非管理员用户,使用新用户名登录,并开始导入你的馈送、订阅,按照你的意愿来配置它。

最后,并且是超级重要的事,不要忘了阅读 TT-RSS 维基上的 Updating Feeds 部分。它讲述了如何创建一个简单的 systemd 服务来更新馈送。如果你跳过了这一步,你的 RSS 馈送就不会自动更新。

总结

呵!工作量不小,但是你做完了!你现在有自己的 RSS 聚合服务器了。想了解 TT-RSS 更多的知识?我推荐你去看官方的 FAQ支持论坛,和详细的安装笔记。如果你有任何问题,尽情地在下面评论吧。


via: https://opensource.com/article/20/2/ttrss-raspberry-pi

作者:Patrick H. Mullins 选题:lujun9972 译者:lxbwolf 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

我们都知道在 Linux 中使用 uptime 命令的目的。它用于检查 Linux 系统的正常运行时间以及系统上次启动以来运行的时间。

而 Linux 管理员的工作是保持系统正常运行。

如果要检查 Linux 上的其他服务(例如 Apache、MySQL、MariaDB、sftp 等)运行了多长时间,该怎么做?

每个服务都有自己的命令来检查服务的正常运行时间。但是你也可以为此使用其他命令。

方法 1:如何使用 ps 命令在 Linux 上检查 MySQL/MariaDB 数据库的正常运行时间

ps 命令的意思是 进程状态 process status 。这是最基本的命令之一,它显示了系统正在运行的进程的详细信息。

为此,你首先需要使用 pidof 命令查找 MySQL/MariaDB 的 PID。

# pidof mysqld | cut -d" " -f1

2412

获取 MySQL/MariaDB 的 PID 后,请在 ps 命令中使用 --etime 选项获得正常运行时间。

  • --etime:自进程启动以来经过的时间,形式为 [[DD-]hh:]mm:ss
# ps -p 2412 -o etime

   ELAPSED
2-08:49:30

或者,在 ps 命令中使用 --lstart 选项来获取指定 PID 的正常运行时间。

# ps -p 2412 -o lstart

                STARTED
Sat May 2 03:02:15 2020

MySQL/MariaDB 进程已经运行了 2 天 03 小时 02 分 15 秒。

方法 2:如何使用 systemctl 命令在 Linux 上检查 MySQL/MariaDB 数据库的正常运行时间

systemctl 命令用于控制 systemd 系统和服务管理器。

systemd 是新的初始化系统和系统管理器,现在大多数 Linux 发行版都淘汰了传统的 SysVinit 管理器而采用了 systemd。

# systemctl status mariadb
或者
# systemctl status mysql

● mariadb.service - MariaDB 10.1.44 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor     preset: disabled)
  Drop-In: /etc/systemd/system/mariadb.service.d
           └─migrated-from-my.cnf-settings.conf
   Active: active (running) since Sat 2020-05-02 03:02:18 UTC; 2 days ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 2448 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 2388 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=/usr/bin/galera_recovery; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
  Process: 2386 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
 Main PID: 2412 (mysqld)
   Status: "Taking your SQL requests now…"
   CGroup: /system.slice/mariadb.service
           └─2412 /usr/sbin/mysqld

May 03 21:41:26 ns2.2daygeek.com mysqld[2412]: 2020-05-03 21:41:26 140328136861440 [Warning] Host name '1.1.1.1' could not be resolved: … not known
May 04 02:00:46 ns2.2daygeek.com mysqld[2412]: 2020-05-04 2:00:46 140328436418304 [Warning] IP address '1.1.1.1' has been resolved to the host name '2…ss itself.
May 04 03:01:31 ns2.2daygeek.com mysqld[2412]: 2020-05-04 3:01:31 140328436111104 [Warning] IP address '1.1.1.1' could not be resolved: Temporary fai…resolution
May 04 04:03:06 ns2.2daygeek.com mysqld[2412]: 2020-05-04 4:03:06 140328136861440 [Warning] IP address '1.1.1.1' could not be resolved: Name or ser… not known
May 04 07:23:54 ns2.2daygeek.com mysqld[2412]: 2020-05-04 7:23:54 140328435189504 [Warning] IP address '1.1.1.1' could not be resolved: Name or service not known
May 04 08:03:31 ns2.2daygeek.com mysqld[2412]: 2020-05-04 8:03:31 140328436418304 [Warning] IP address '1.1.1.1' could not be resolved: Name or service not known
May 04 08:25:56 ns2.2daygeek.com mysqld[2412]: 2020-05-04 8:25:56 140328135325440 [Warning] IP address '1.1.1.1' could not be resolved: Name or service not known
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Hint: Some lines were ellipsized, use -l to show in full.

方法 3:如何使用 MySQLAdmin 命令在 Linux 上检查 MySQL/MariaDB 数据库的正常运行时间

MySQLAdmin 是安装 MySQL 软件包时安装的 MySQL 服务器命令行程序。

MySQLAdmin 客户端允许你在 MySQL 服务器上执行一些基本的管理功能。

它用于创建数据库、删除数据库、设置 root 密码、更改 root 密码、检查 MySQL 状态、验证 MySQL 功能、监视 mysql 进程以及验证服务器的配置。

# mysqladmin -u root -pPassword version

mysqladmin Ver 8.42 Distrib 5.7.27, for Linux on x86_64
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version 5.7.27
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 1 day 10 hours 44 min 13 sec

via: https://www.2daygeek.com/check-mysql-mariadb-database-server-uptime-linux/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出