Python Web 应用程序 Django 框架简介
在这个比较 Python 框架的最后一篇中,让我们看看 Django。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/190045dzrvcvspc0gzvxch.png">Media</a>在本系列(由四部分组成)的前三篇文章中,我们讨论了 <a href="https://opensource.com/article/18/5/pyramid-framework">Pyramid</a>、<a href="https://opensource.com/article/18/4/flask">Flask</a> 和 <a href="https://opensource.com/article/18/6/tornado-framework">Tornado</a> 这 3 个 Web 框架。我们已经构建了三次相同的应用程序,最终我们遇到了 <a href="https://www.djangoproject.com">Django</a>。总的来说,Django 是目前 Python 开发人员使用的主要 Web 框架,并且原因显而易见。它擅长隐藏大量的配置逻辑,让你专注于能够快速构建大型应用程序。也就是说,当涉及到小型项目时,比如我们的待办事项列表应用程序,Django 可能有点像用消防水管来进行水枪大战。让我们来看看它们是如何结合在一起的。关于 DjangoDjango 将自己定位为“一个鼓励快速开发和整洁、实用的设计的高级 Python Web 框架。它由经验丰富的开发人员构建,解决了 Web 开发的很多麻烦,因此你可以专注于编写应用程序而无需重新发明轮子”。而且它确实做到了!这个庞大的 Web 框架附带了非常多的工具,以至于在开发过程中,如何将所有内容组合在一起协同工作可能是个谜。除了框架本身很大,Django 社区也是非常庞大的。事实上,它非常庞大和活跃,以至于有<a href="https://djangopackages.org/">一个网站</a>专门用于为人们收集第三方包,这些第三方包可集成进 Django 来做一大堆事情。包括从身份验证和授权到…
在这个比较 Python 框架的最后一篇中,让我们看看 Django。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/190045dzrvcvspc0gzvxch.png">Media</a>在本系列(由四部分组成)的前三篇文章中,我们讨论了 <a href="https://opensource.com/article/18/5/pyramid-framework">Pyramid</a>、<a href="https://opensource.com/article/18/4/flask">Flask</a> 和 <a href="https://opensource.com/article/18/6/tornado-framework">Tornado</a> 这 3 个 Web 框架。我们已经构建了三次相同的应用程序,最终我们遇到了 <a href="https://www.djangoproject.com">Django</a>。总的来说,Django 是目前 Python 开发人员使用的主要 Web 框架,并且原因显而易见。它擅长隐藏大量的配置逻辑,让你专注于能够快速构建大型应用程序。也就是说,当涉及到小型项目时,比如我们的待办事项列表应用程序,Django 可能有点像用消防水管来进行水枪大战。让我们来看看它们是如何结合在一起的。关于 DjangoDjango 将自己定位为“一个鼓励快速开发和整洁、实用的设计的高级 Python Web 框架。它由经验丰富的开发人员构建,解决了 Web 开发的很多麻烦,因此你可以专注于编写应用程序而无需重新发明轮子”。而且它确实做到了!这个庞大的 Web 框架附带了非常多的工具,以至于在开发过程中,如何将所有内容组合在一起协同工作可能是个谜。除了框架本身很大,Django 社区也是非常庞大的。事实上,它非常庞大和活跃,以至于有<a href="https://djangopackages.org/">一个网站</a>专门用于为人们收集第三方包,这些第三方包可集成进 Django 来做一大堆事情。包括从身份验证和授权到…
Akash Angle:你如何使用 Fedora?
这是 Fedora Magazine 上 Fedora 系列的一部分。该系列介绍 Fedora 用户以及他们如何使用 Fedora 完成工作。Media
via https://linux.cn/article-10296-1.html
这是 Fedora Magazine 上 Fedora 系列的一部分。该系列介绍 Fedora 用户以及他们如何使用 Fedora 完成工作。Media
via https://linux.cn/article-10296-1.html
Akash Angle:你如何使用 Fedora?
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/221105virxu2x6xa6iseur.jpg">Media</a>我们最近采访了Akash Angle 来了解他如何使用 Fedora。这是 Fedora Magazine 上 Fedora <a href="https://fedoramagazine.org/tag/how-do-you-fedora/">系列的一部分</a>。该系列介绍 Fedora 用户以及他们如何使用 Fedora 完成工作。请通过<a href="https://fedoramagazine.org/submit-an-idea-or-tip/">反馈表单</a>与我们联系表达你对成为受访者的兴趣。Akash Angle 是谁?Akash 是一位不久前抛弃 Windows 的 Linux 用户。作为一名过去 9 年的狂热 Fedora 用户,他已经尝试了几乎所有的 Fedora 定制版和桌面环境来完成他的日常任务。是一位校友给他介绍了 Fedora。使用什么硬件?Akash 在工作时使用联想 B490。它配备了英特尔酷睿 i3-3310 处理器和 240GB 金士顿 SSD。Akash 说:“这台笔记本电脑非常适合一些日常任务,如上网、写博客,以及一些照片编辑和视频编辑。虽然不是专业的笔记本电脑,而且规格并不是那么高端,但它完美地完成了工作。“他使用一个入门级的罗技无线鼠标,并希望能有一个机械键盘。他的 PC 是一台定制桌面电脑,拥有最新的第 7 代 Intel i5 7400 处理器和 8GB Corsair Vengeance 内存。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/221105i6mi3q6h333t4csz.png">Media</a>使用什么软件?Akash 是 GNOME 3 桌面环境的粉丝。他喜欢该操作系统为完成基本任务而加入的华丽功能。出于实际原因,他更喜欢全新安来升级到最新 Fedora 版本。他认为 Fedora 29 可以说是最好的工作站。Akash 说这种说法得到了各种科技传播网站和开源新闻网站评论的支持。为了播放视频,ߢ…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/221105virxu2x6xa6iseur.jpg">Media</a>我们最近采访了Akash Angle 来了解他如何使用 Fedora。这是 Fedora Magazine 上 Fedora <a href="https://fedoramagazine.org/tag/how-do-you-fedora/">系列的一部分</a>。该系列介绍 Fedora 用户以及他们如何使用 Fedora 完成工作。请通过<a href="https://fedoramagazine.org/submit-an-idea-or-tip/">反馈表单</a>与我们联系表达你对成为受访者的兴趣。Akash Angle 是谁?Akash 是一位不久前抛弃 Windows 的 Linux 用户。作为一名过去 9 年的狂热 Fedora 用户,他已经尝试了几乎所有的 Fedora 定制版和桌面环境来完成他的日常任务。是一位校友给他介绍了 Fedora。使用什么硬件?Akash 在工作时使用联想 B490。它配备了英特尔酷睿 i3-3310 处理器和 240GB 金士顿 SSD。Akash 说:“这台笔记本电脑非常适合一些日常任务,如上网、写博客,以及一些照片编辑和视频编辑。虽然不是专业的笔记本电脑,而且规格并不是那么高端,但它完美地完成了工作。“他使用一个入门级的罗技无线鼠标,并希望能有一个机械键盘。他的 PC 是一台定制桌面电脑,拥有最新的第 7 代 Intel i5 7400 处理器和 8GB Corsair Vengeance 内存。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/221105i6mi3q6h333t4csz.png">Media</a>使用什么软件?Akash 是 GNOME 3 桌面环境的粉丝。他喜欢该操作系统为完成基本任务而加入的华丽功能。出于实际原因,他更喜欢全新安来升级到最新 Fedora 版本。他认为 Fedora 29 可以说是最好的工作站。Akash 说这种说法得到了各种科技传播网站和开源新闻网站评论的支持。为了播放视频,ߢ…
Emacs 系列(一):抛掉一切,投入 Emacs 和 org 模式的怀抱
我必须承认,在使用了几十年的 vim 后, 我被 Emacs 吸引了。Media
via https://linux.cn/article-10297-1.html
我必须承认,在使用了几十年的 vim 后, 我被 Emacs 吸引了。Media
via https://linux.cn/article-10297-1.html
Emacs 系列(一):抛掉一切,投入 Emacs 和 org 模式的怀抱
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/231923lumzvk4pm4zoguzw.png">Media</a>我必须承认,在使用了几十年的 vim 后, 我被 <a href="https://www.gnu.org/software/emacs/">Emacs</a> 吸引了。长期以来,我一直对如何组织安排事情感到沮丧。我也有用过 <a href="https://gettingthingsdone.com/">GTD</a> 和 <a href="https://zenhabits.net/zen-to-done-the-simple-productivity-e-book/">ZTD</a> 之类的方法,但是像邮件或是大型文件这样的事务真的很难来组织安排。我一直在用 Asana 处理任务,用 Evernote 做笔记,用 Thunderbird 处理邮件,把 ikiwiki 和其他的一些项目组合作为个人知识库,而且还在电脑的归档了各种文件。当我的新工作需要将 Slack 也加入进来时,我终于忍无可忍了。许多 TODO 管理工具与电子邮件集成的很差。当你想做“提醒我在一周内回复这个邮件”之类的事时,很多时候是不可能的,因为这个工具不能以一种能够轻松回复的方式存储邮件。而这个问题在 Slack 上更为严重。就在那时,我偶然发现了 <a href="https://www.youtube.com/watch?v=oJTwQvgfgMM">Carsten Dominik 在 Google Talk 上关于 org 模式的讲话</a>。Carsten 是 org 模式的作者,即便是这个讲话已经有 10 年了,但它仍然很具有参考价值。我之前有用过 <a href="https://orgmode.org/">org 模式</a>,但是每次我都没有真正的深入研究它, 因为我当时的反应是“一个大纲编辑器?但我需要的是待办事项列表”。我就这么错过了它。但实际上 org 模式就是我所需要的。什么是 Emacs?什么是 org 模式?Emacs 最初是一个文本编辑器,现在依然是一个文本&…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/231923lumzvk4pm4zoguzw.png">Media</a>我必须承认,在使用了几十年的 vim 后, 我被 <a href="https://www.gnu.org/software/emacs/">Emacs</a> 吸引了。长期以来,我一直对如何组织安排事情感到沮丧。我也有用过 <a href="https://gettingthingsdone.com/">GTD</a> 和 <a href="https://zenhabits.net/zen-to-done-the-simple-productivity-e-book/">ZTD</a> 之类的方法,但是像邮件或是大型文件这样的事务真的很难来组织安排。我一直在用 Asana 处理任务,用 Evernote 做笔记,用 Thunderbird 处理邮件,把 ikiwiki 和其他的一些项目组合作为个人知识库,而且还在电脑的归档了各种文件。当我的新工作需要将 Slack 也加入进来时,我终于忍无可忍了。许多 TODO 管理工具与电子邮件集成的很差。当你想做“提醒我在一周内回复这个邮件”之类的事时,很多时候是不可能的,因为这个工具不能以一种能够轻松回复的方式存储邮件。而这个问题在 Slack 上更为严重。就在那时,我偶然发现了 <a href="https://www.youtube.com/watch?v=oJTwQvgfgMM">Carsten Dominik 在 Google Talk 上关于 org 模式的讲话</a>。Carsten 是 org 模式的作者,即便是这个讲话已经有 10 年了,但它仍然很具有参考价值。我之前有用过 <a href="https://orgmode.org/">org 模式</a>,但是每次我都没有真正的深入研究它, 因为我当时的反应是“一个大纲编辑器?但我需要的是待办事项列表”。我就这么错过了它。但实际上 org 模式就是我所需要的。什么是 Emacs?什么是 org 模式?Emacs 最初是一个文本编辑器,现在依然是一个文本&…
如何在 SUSE 12 Linux 中进入单用户模式?
一篇了解如何在 SUSE 12 Linux 服务器中进入单用户模式的简短文章。Media
via https://linux.cn/article-10298-1.html
一篇了解如何在 SUSE 12 Linux 服务器中进入单用户模式的简短文章。Media
via https://linux.cn/article-10298-1.html
如何在 SUSE 12 Linux 中进入单用户模式?
一篇了解如何在 SUSE 12 Linux 服务器中进入单用户模式的简短文章。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/233149a2mpf33zhmclgzmj.png">How to enter single user mode in SUSE 12 Linux</a>在这篇简短的文章中,我们将向你介绍在 SUSE 12 Linux 中进入单用户模式的步骤。在排除系统主要问题时,单用户模式始终是首选。单用户模式禁用网络并且没有其他用户登录,你可以排除许多多用户系统的情况,可以帮助你快速排除故障。单用户模式最常见的一种用处是<a href="https://kerneltalks.com/linux/recover-forgotten-root-password-rhel/">重置忘记的 root 密码</a>。1、暂停启动过程首先,你需要拥有机器的控制台才能进入单用户模式。如果它是虚拟机那就是虚拟机控制台,如果它是物理机那么你需要连接它的 iLO/串口控制台。重启系统并在 GRUB 启动菜单中按任意键停止内核的自动启动。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/233154hsdd90wk34kfx3kb.png">Kernel selection menu at boot in SUSE 12</a>2、编辑内核的启动选项进入上面的页面后,在所选内核(通常是你首选的最新内核)上按 e 更新其启动选项。你会看到下面的页面。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/233156up79zzs77r9a9ddj.png">grub2 edits in SUSE 12</a>现在,向下滚动到内核引导行,并在行尾添加 init=/bin/bash,如下所示。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/233157xmowuwj43ujouadw.png">Edit to boot in single user shell</a>3、引导编辑后的内核现在按 Ctrl-x 或 F10 来启动这个编辑过的内核。内核将以单用户模式启动,你将看到 # 号提示符,即有服务器的 root 访问权限。此时,根文件系统以只读模式挂载Ӎ…
一篇了解如何在 SUSE 12 Linux 服务器中进入单用户模式的简短文章。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/233149a2mpf33zhmclgzmj.png">How to enter single user mode in SUSE 12 Linux</a>在这篇简短的文章中,我们将向你介绍在 SUSE 12 Linux 中进入单用户模式的步骤。在排除系统主要问题时,单用户模式始终是首选。单用户模式禁用网络并且没有其他用户登录,你可以排除许多多用户系统的情况,可以帮助你快速排除故障。单用户模式最常见的一种用处是<a href="https://kerneltalks.com/linux/recover-forgotten-root-password-rhel/">重置忘记的 root 密码</a>。1、暂停启动过程首先,你需要拥有机器的控制台才能进入单用户模式。如果它是虚拟机那就是虚拟机控制台,如果它是物理机那么你需要连接它的 iLO/串口控制台。重启系统并在 GRUB 启动菜单中按任意键停止内核的自动启动。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/233154hsdd90wk34kfx3kb.png">Kernel selection menu at boot in SUSE 12</a>2、编辑内核的启动选项进入上面的页面后,在所选内核(通常是你首选的最新内核)上按 e 更新其启动选项。你会看到下面的页面。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/233156up79zzs77r9a9ddj.png">grub2 edits in SUSE 12</a>现在,向下滚动到内核引导行,并在行尾添加 init=/bin/bash,如下所示。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201811/30/233157xmowuwj43ujouadw.png">Edit to boot in single user shell</a>3、引导编辑后的内核现在按 Ctrl-x 或 F10 来启动这个编辑过的内核。内核将以单用户模式启动,你将看到 # 号提示符,即有服务器的 root 访问权限。此时,根文件系统以只读模式挂载Ӎ…
流量引导:网络世界的负载均衡解密
均衡网络流量的常用技术,它们的优势和利弊权衡。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/01/211656z8svszsmsxmbnmeg.jpg">Media</a>大型的多站点互联网系统,包括内容分发网络(CDN)和云服务提供商,用一些方法来均衡来访的流量。这篇文章我们讲一下常见的流量均衡设计,包括它们的技术手段和利弊权衡。早期的云计算服务提供商,可以提供单一一台客户 Web 服务器,分配一个 IP 地址,然后用一个便于人读的域名配置一个 DNS 记录指向这个 IP 地址,再将 IP 地址通过边界网关协议(BGP)宣告出去,BGP 是在不同网络之间交换路由信息的标准方式。这本身并不是负载均衡,但是能在冗余的多条网络路径中进行流量分发,而且可以利用网络技术让流量绕过不可用的网络,从而提高了可用性(也引起了<a href="https://www.noction.com/blog/bgp-and-asymmetric-routing">非对称路由</a>的现象)。简单的 DNS 负载均衡随着来自客户的流量变大,老板希望服务是高可用的。你上线第二台 web 服务器,它有自己独立的公网 IP 地址,然后你更新了 DNS 记录,把用户流量引到两台服务器上(内心希望它们均衡地提供服务)。在其中一台服务器出故障之前,这样做一直是没有问题的。假设你能很快地监测到故障,可以更新一下 DNS 配置(手动更新或者通过软件)删除解析到故障机器的记录。不幸的是,因为 DNS 记录会被缓存,在客&#…
均衡网络流量的常用技术,它们的优势和利弊权衡。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/01/211656z8svszsmsxmbnmeg.jpg">Media</a>大型的多站点互联网系统,包括内容分发网络(CDN)和云服务提供商,用一些方法来均衡来访的流量。这篇文章我们讲一下常见的流量均衡设计,包括它们的技术手段和利弊权衡。早期的云计算服务提供商,可以提供单一一台客户 Web 服务器,分配一个 IP 地址,然后用一个便于人读的域名配置一个 DNS 记录指向这个 IP 地址,再将 IP 地址通过边界网关协议(BGP)宣告出去,BGP 是在不同网络之间交换路由信息的标准方式。这本身并不是负载均衡,但是能在冗余的多条网络路径中进行流量分发,而且可以利用网络技术让流量绕过不可用的网络,从而提高了可用性(也引起了<a href="https://www.noction.com/blog/bgp-and-asymmetric-routing">非对称路由</a>的现象)。简单的 DNS 负载均衡随着来自客户的流量变大,老板希望服务是高可用的。你上线第二台 web 服务器,它有自己独立的公网 IP 地址,然后你更新了 DNS 记录,把用户流量引到两台服务器上(内心希望它们均衡地提供服务)。在其中一台服务器出故障之前,这样做一直是没有问题的。假设你能很快地监测到故障,可以更新一下 DNS 配置(手动更新或者通过软件)删除解析到故障机器的记录。不幸的是,因为 DNS 记录会被缓存,在客&#…
使用 MDwiki 将 Markdown 发布成 HTML
用这个有用工具从 Markdown 文件创建一个基础的网站。Media
via https://linux.cn/article-10300-1.html
用这个有用工具从 Markdown 文件创建一个基础的网站。Media
via https://linux.cn/article-10300-1.html
使用 MDwiki 将 Markdown 发布成 HTML
用这个有用工具从 Markdown 文件创建一个基础的网站。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/01/220902kk0zo9hk0ky9k9zt.jpg">Media</a>有很多理由喜欢 Markdown,这是一门简单的语言,有易于学习的语法,它可以与任何文本编辑器一起使用。使用像 <a href="https://pandoc.org/">Pandoc</a> 这样的工具,你可以将 Markdown 文本转换为<a href="https://opensource.com/downloads/pandoc-cheat-sheet">各种流行格式</a>,包括 HTML。你还可以在 Web 服务器中自动执行转换过程。由 TimoDörr 创建的名为 <a href="http://dynalon.github.io/mdwiki/#!index.md">MDwiki</a> 的 HTML5 和 JavaScript 应用可以将一堆 Markdown 文件在浏览器请求它们时转换为网站。MDwiki 网站包含一个操作指南和其他信息可帮助你入门:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/01/220906kbymvumjv990jymp.png">MDwiki site getting started</a><em>Mdwiki 网站的样子。</em>在 Web 服务器内部,基本的 MDwiki 站点如下所示:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/01/220907v9v21t2qq629tzkn.png">MDwiki site inside web server</a><em>该站点的 web 服务器文件夹的样子</em>我将此项目的 MDwiki HTML 文件重命名为 START.HTML。还有一个处理导航的 Markdown 文件和一个 JSON 文件来保存一些配置设置。其他的都是网站内容。虽然整个网站设计被 MDwiki 固定了,但内容、样式和页面数量却没有。你可以在 <a href="http://dynalon.github.io/mdwiki/#!examples.md">MDwiki 站点</a>查看由 MDwiki 生成的一系列不同站点。公平地说,MDwiki 网站缺乏网页设计师可以实现的视觉吸引力 —— 但它们是功能性的,用户应该平衡其简单的外观与创建和编辑它们的速度和简易性。Markdown 有不同的风格,可以针对不同的特定目的扩展稳定的核心功能。MDwiki 使用 GitHub 风格…
用这个有用工具从 Markdown 文件创建一个基础的网站。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/01/220902kk0zo9hk0ky9k9zt.jpg">Media</a>有很多理由喜欢 Markdown,这是一门简单的语言,有易于学习的语法,它可以与任何文本编辑器一起使用。使用像 <a href="https://pandoc.org/">Pandoc</a> 这样的工具,你可以将 Markdown 文本转换为<a href="https://opensource.com/downloads/pandoc-cheat-sheet">各种流行格式</a>,包括 HTML。你还可以在 Web 服务器中自动执行转换过程。由 TimoDörr 创建的名为 <a href="http://dynalon.github.io/mdwiki/#!index.md">MDwiki</a> 的 HTML5 和 JavaScript 应用可以将一堆 Markdown 文件在浏览器请求它们时转换为网站。MDwiki 网站包含一个操作指南和其他信息可帮助你入门:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/01/220906kbymvumjv990jymp.png">MDwiki site getting started</a><em>Mdwiki 网站的样子。</em>在 Web 服务器内部,基本的 MDwiki 站点如下所示:<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/01/220907v9v21t2qq629tzkn.png">MDwiki site inside web server</a><em>该站点的 web 服务器文件夹的样子</em>我将此项目的 MDwiki HTML 文件重命名为 START.HTML。还有一个处理导航的 Markdown 文件和一个 JSON 文件来保存一些配置设置。其他的都是网站内容。虽然整个网站设计被 MDwiki 固定了,但内容、样式和页面数量却没有。你可以在 <a href="http://dynalon.github.io/mdwiki/#!examples.md">MDwiki 站点</a>查看由 MDwiki 生成的一系列不同站点。公平地说,MDwiki 网站缺乏网页设计师可以实现的视觉吸引力 —— 但它们是功能性的,用户应该平衡其简单的外观与创建和编辑它们的速度和简易性。Markdown 有不同的风格,可以针对不同的特定目的扩展稳定的核心功能。MDwiki 使用 GitHub 风格…
Systemd 定时器:三种使用场景
继续 systemd 教程,这些特殊的例子可以展示给你如何更好的利用 systemd 定时器单元。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/02/093439gam6n0m35b3hibic.jpg">Media</a>在这个 systemd 系列教程中,我们<a href="https://linux.cn/article-10182-1.html">已经在某种程度上讨论了 systemd 定时器单元</a>。不过,在我们开始讨论 sockets 之前,我们先来看三个例子,这些例子展示了如何最佳化利用这些单元。简单的类 cron 行为我每周都要去收集 <a href="https://popcon.debian.org/">Debian popcon 数据</a>,如果每次都能在同一时间收集更好,这样我就能看到某些应用程序的下载趋势。这是一个可以使用 cron 任务来完成的典型事例,但 systemd 定时器同样能做到:<pre class="prettyprint linenums"># 类 cron 的 popcon.timer[Unit]Description= 这里描述了下载并处理 popcon 数据的时刻[Timer]OnCalendar= Thu *-*-* 05:32:07Unit= popcon.service[Install]WantedBy= basic.target</pre>实际的 popcon.service 会执行一个常规的 wget 任务,并没有什么特别之处。这里的新内容是 OnCalendar= 指令。这个指令可以让你在一个特定日期的特定时刻来运行某个服务。在这个例子中,Thu 表示 “在周四运行”,*-*-* 表示“具体年份、月份和日期无关紧要”,这些可以翻译成 “不管年月日,只在每周四运行”。这样,你就设置了这个服务的运行时间。我选择在欧洲中部夏令时区的上午 5:30 左右运行,那个时候服务器不是很忙。如果你的服务器关闭了,而且刚好错过了每周的截止时间,你还可以在同一个计时器中使用像 anacron 一样的功能。<pre class="prettyprint linenums"># 具备类似 anacron 功能的…
继续 systemd 教程,这些特殊的例子可以展示给你如何更好的利用 systemd 定时器单元。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/02/093439gam6n0m35b3hibic.jpg">Media</a>在这个 systemd 系列教程中,我们<a href="https://linux.cn/article-10182-1.html">已经在某种程度上讨论了 systemd 定时器单元</a>。不过,在我们开始讨论 sockets 之前,我们先来看三个例子,这些例子展示了如何最佳化利用这些单元。简单的类 cron 行为我每周都要去收集 <a href="https://popcon.debian.org/">Debian popcon 数据</a>,如果每次都能在同一时间收集更好,这样我就能看到某些应用程序的下载趋势。这是一个可以使用 cron 任务来完成的典型事例,但 systemd 定时器同样能做到:<pre class="prettyprint linenums"># 类 cron 的 popcon.timer[Unit]Description= 这里描述了下载并处理 popcon 数据的时刻[Timer]OnCalendar= Thu *-*-* 05:32:07Unit= popcon.service[Install]WantedBy= basic.target</pre>实际的 popcon.service 会执行一个常规的 wget 任务,并没有什么特别之处。这里的新内容是 OnCalendar= 指令。这个指令可以让你在一个特定日期的特定时刻来运行某个服务。在这个例子中,Thu 表示 “在周四运行”,*-*-* 表示“具体年份、月份和日期无关紧要”,这些可以翻译成 “不管年月日,只在每周四运行”。这样,你就设置了这个服务的运行时间。我选择在欧洲中部夏令时区的上午 5:30 左右运行,那个时候服务器不是很忙。如果你的服务器关闭了,而且刚好错过了每周的截止时间,你还可以在同一个计时器中使用像 anacron 一样的功能。<pre class="prettyprint linenums"># 具备类似 anacron 功能的…
如何在 Linux 上对驱动器进行分区和格式化
这里有所有你想知道的关于设置存储器而又不敢问的一切。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/02/101229zxxr151pajxwzj45.jpg">Media</a>在大多数的计算机系统上,Linux 或者是其它,当你插入一个 USB 设备时,你会注意到一个提示驱动器存在的警告。如果该驱动器已经按你想要的进行分区和格式化,你只需要你的计算机在文件管理器或桌面上的某个地方列出驱动器。这是一个简单的要求,而且通常计算机都能满足。然而,有时候,驱动器并没有按你想要的方式进行格式化。对于这些,你必须知道如何查找准备连接到您计算机上的存储设备。什么是块设备?硬盘驱动器通常被称为“块设备”,因为硬盘驱动器以固定大小的块进行读写。这就可以区分硬盘驱动器和其它可能插入到您计算机的一些设备,如打印机、游戏手柄、麦克风,或相机。一个简单的方法用来列出连接到你 Linux 系统上的块设备就是使用 lsblk (list block devices)命令:<pre class="prettyprint linenums">NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 238.5G 0 disk ├─sda1 8:1 0 1G 0 part /boot└─sda2 8:2 0 237.5G 0 part └─luks-e2bb...e9f8 253:0 0 237.5G 0 crypt ├─fedora-root 253:1 0 50G 0 lvm / ├─fedora-swap 253:2 0 5.8G 0 lvm [SWAP] └─fedora-home 253:3 0 181.7G 0 lvm /homesdb 8:16 1 14.6G 0 disk └─sdb1 8:17 1 14.6G 0 part</pre>最左列是设备标识符,每个都是以 sd 开头,并以一个字母结尾,字母从 a 开始。每个块设备上的分区分配一个数字,从 1 开始。例如,第一个设备上的第二个分区用 sda2 表示。如果你不确定到底是哪个分区,&…
这里有所有你想知道的关于设置存储器而又不敢问的一切。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/02/101229zxxr151pajxwzj45.jpg">Media</a>在大多数的计算机系统上,Linux 或者是其它,当你插入一个 USB 设备时,你会注意到一个提示驱动器存在的警告。如果该驱动器已经按你想要的进行分区和格式化,你只需要你的计算机在文件管理器或桌面上的某个地方列出驱动器。这是一个简单的要求,而且通常计算机都能满足。然而,有时候,驱动器并没有按你想要的方式进行格式化。对于这些,你必须知道如何查找准备连接到您计算机上的存储设备。什么是块设备?硬盘驱动器通常被称为“块设备”,因为硬盘驱动器以固定大小的块进行读写。这就可以区分硬盘驱动器和其它可能插入到您计算机的一些设备,如打印机、游戏手柄、麦克风,或相机。一个简单的方法用来列出连接到你 Linux 系统上的块设备就是使用 lsblk (list block devices)命令:<pre class="prettyprint linenums">NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 238.5G 0 disk ├─sda1 8:1 0 1G 0 part /boot└─sda2 8:2 0 237.5G 0 part └─luks-e2bb...e9f8 253:0 0 237.5G 0 crypt ├─fedora-root 253:1 0 50G 0 lvm / ├─fedora-swap 253:2 0 5.8G 0 lvm [SWAP] └─fedora-home 253:3 0 181.7G 0 lvm /homesdb 8:16 1 14.6G 0 disk └─sdb1 8:17 1 14.6G 0 part</pre>最左列是设备标识符,每个都是以 sd 开头,并以一个字母结尾,字母从 a 开始。每个块设备上的分区分配一个数字,从 1 开始。例如,第一个设备上的第二个分区用 sda2 表示。如果你不确定到底是哪个分区,&…
使用 Selenium 自动化 Web 浏览器
Selenium 是浏览器自动化的绝佳工具。使用 Selenium IDE,你可以录制命令序列(如单击、拖动和输入),验证结果并最终存储此自动化测试供日后使用。Media
via https://linux.cn/article-10303-1.html
Selenium 是浏览器自动化的绝佳工具。使用 Selenium IDE,你可以录制命令序列(如单击、拖动和输入),验证结果并最终存储此自动化测试供日后使用。Media
via https://linux.cn/article-10303-1.html
使用 Selenium 自动化 Web 浏览器
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/02/221155nvsjusbroxsaj2r2.jpg">Media</a><a href="https://www.seleniumhq.org/">Selenium</a> 是浏览器自动化的绝佳工具。使用 Selenium IDE,你可以录制命令序列(如单击、拖动和输入),验证结果并最终存储此自动化测试供日后使用。这非常适合在浏览器中进行活跃开发。但是当你想要将这些测试与 CI/CD 流集成时,是时候使用 Selenium WebDriver 了。WebDriver 公开了一个绑定了许多编程语言的 API,它允许你将浏览器测试与其他测试集成。这篇文章向你展示了如何在容器中运行 WebDriver 并将其与 Python 程序一起使用。使用 Podman 运行 SeleniumPodman 是下面例子的容器运行时。有关如何开始使用 Podman 的信息,请参见<a href="https://linux.cn/article-10156-1.html">此前文章</a>。此例使用了 Selenium 的独立容器,其中包含 WebDriver 服务器和浏览器本身。要在后台启动服务器容器,请运行以下命令:<pre class="prettyprint linenums">$ podman run -d --network host --privileged --name server docker.io/selenium/standalone-firefox</pre>当你使用特权标志和主机网络运行容器时,你可以稍后从在 Python 中连接到此容器。你不需要使用 sudo。在 Python 中使用 Selenium现在你可以提供一个使用此服务器的简单程序。这个程序很小,但应该会让你知道可以做什么:<pre class="prettyprint linenums">from selenium.webdriver.common.desired_capabilities import DesiredCapabilitiesserver ="http://127.0.0.1:4444/wd/hub"driver = webdriver.Remote(command_executor=server, desired_capabilities=DesiredCapabilities.FIREFOX)print("Loading page...")driver.get("https://fedoramagazine.org/")print("Loaded")assert "Fedora" in driver.titledriver.quit()print("Done.")</pre>首先,程序连接到你已经启动的容器。然后它加载 Fedora Magazine 网页并判断 “Fedora” 是页面标题的一部分。最后,它退出会话。…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/02/221155nvsjusbroxsaj2r2.jpg">Media</a><a href="https://www.seleniumhq.org/">Selenium</a> 是浏览器自动化的绝佳工具。使用 Selenium IDE,你可以录制命令序列(如单击、拖动和输入),验证结果并最终存储此自动化测试供日后使用。这非常适合在浏览器中进行活跃开发。但是当你想要将这些测试与 CI/CD 流集成时,是时候使用 Selenium WebDriver 了。WebDriver 公开了一个绑定了许多编程语言的 API,它允许你将浏览器测试与其他测试集成。这篇文章向你展示了如何在容器中运行 WebDriver 并将其与 Python 程序一起使用。使用 Podman 运行 SeleniumPodman 是下面例子的容器运行时。有关如何开始使用 Podman 的信息,请参见<a href="https://linux.cn/article-10156-1.html">此前文章</a>。此例使用了 Selenium 的独立容器,其中包含 WebDriver 服务器和浏览器本身。要在后台启动服务器容器,请运行以下命令:<pre class="prettyprint linenums">$ podman run -d --network host --privileged --name server docker.io/selenium/standalone-firefox</pre>当你使用特权标志和主机网络运行容器时,你可以稍后从在 Python 中连接到此容器。你不需要使用 sudo。在 Python 中使用 Selenium现在你可以提供一个使用此服务器的简单程序。这个程序很小,但应该会让你知道可以做什么:<pre class="prettyprint linenums">from selenium.webdriver.common.desired_capabilities import DesiredCapabilitiesserver ="http://127.0.0.1:4444/wd/hub"driver = webdriver.Remote(command_executor=server, desired_capabilities=DesiredCapabilities.FIREFOX)print("Loading page...")driver.get("https://fedoramagazine.org/")print("Loaded")assert "Fedora" in driver.titledriver.quit()print("Done.")</pre>首先,程序连接到你已经启动的容器。然后它加载 Fedora Magazine 网页并判断 “Fedora” 是页面标题的一部分。最后,它退出会话。…
对网站进行归档
本文介绍了对传统网站进行归档的过程,并阐述在面对最新流行单页面应用程序(SPA)的现代网站时,它有哪些不足。Media
via https://linux.cn/article-10304-1.html
本文介绍了对传统网站进行归档的过程,并阐述在面对最新流行单页面应用程序(SPA)的现代网站时,它有哪些不足。Media
via https://linux.cn/article-10304-1.html
对网站进行归档
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/03/100652pwnujw5w8iwnuifn.jpg">Media</a>我最近深入研究了网站归档,因为有些朋友担心遇到糟糕的系统管理或恶意删除时失去对放在网上的内容的控制权。这使得网站归档成为系统管理员工具箱中的重要工具。事实证明,有些网站比其他网站更难归档。本文介绍了对传统网站进行归档的过程,并阐述在面对最新流行单页面应用程序(SPA)的现代网站时,它有哪些不足。转换为简单网站手动编码 HTML 网站的日子早已不复存在。现在的网站是动态的,并使用最新的 JavaScript、PHP 或 Python 框架即时构建。结果,这些网站更加脆弱:数据库崩溃、升级出错或者未修复的漏洞都可能使数据丢失。在我以前是一名 Web 开发人员时,我不得不接受客户这样的想法:希望网站基本上可以永久工作。这种期望与 web 开发“快速行动和破除陈规”的理念不相符。在这方面,使用 <a href="https://drupal.org">Drupal</a> 内容管理系统(CMS)尤其具有挑战性,因为重大更新会破坏与第三方模块的兼容性,这意味着客户很少承担的起高昂的升级成本。解决方案是将这些网站归档:以实时动态的网站为基础,将其转换为任何 web 服务器可以永久服务的纯 HTML 文件。此过程对你自己的动态网站非常有用,也适用于你想保护但无法控制的第三方网站。对于简单的静态网站,古老的 <a href="https://www.gnu.org/software/wget/">Wget</a> 程序就可以…
<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/03/100652pwnujw5w8iwnuifn.jpg">Media</a>我最近深入研究了网站归档,因为有些朋友担心遇到糟糕的系统管理或恶意删除时失去对放在网上的内容的控制权。这使得网站归档成为系统管理员工具箱中的重要工具。事实证明,有些网站比其他网站更难归档。本文介绍了对传统网站进行归档的过程,并阐述在面对最新流行单页面应用程序(SPA)的现代网站时,它有哪些不足。转换为简单网站手动编码 HTML 网站的日子早已不复存在。现在的网站是动态的,并使用最新的 JavaScript、PHP 或 Python 框架即时构建。结果,这些网站更加脆弱:数据库崩溃、升级出错或者未修复的漏洞都可能使数据丢失。在我以前是一名 Web 开发人员时,我不得不接受客户这样的想法:希望网站基本上可以永久工作。这种期望与 web 开发“快速行动和破除陈规”的理念不相符。在这方面,使用 <a href="https://drupal.org">Drupal</a> 内容管理系统(CMS)尤其具有挑战性,因为重大更新会破坏与第三方模块的兼容性,这意味着客户很少承担的起高昂的升级成本。解决方案是将这些网站归档:以实时动态的网站为基础,将其转换为任何 web 服务器可以永久服务的纯 HTML 文件。此过程对你自己的动态网站非常有用,也适用于你想保护但无法控制的第三方网站。对于简单的静态网站,古老的 <a href="https://www.gnu.org/software/wget/">Wget</a> 程序就可以…
提高 Linux 的网络浏览器安全性的 5 个建议
这些简单的步骤可以大大提高您的在线安全性。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/03/101700z05r3m0r3jp4r1q4.jpg">Media</a>如果你使用 Linux 桌面但从来不使用网络浏览器,那你算得上是百里挑一。网络浏览器是绝大多数人最常用的工具之一,无论是工作、娱乐、看新闻、社交、理财,对网络浏览器的依赖都比本地应用要多得多。因此,我们需要知道如何使用网络浏览器才是安全的。一直以来都有不法的犯罪分子以及他们建立的网页试图窃取私密的信息。正是由于我们需要通过网络浏览器收发大量的敏感信息,安全性就更是至关重要。对于用户来说,需要采取什么措施呢?在下文中,我会提出一些基本的建议,让你的重要数据不会被他人轻易窃取。尽管我用于演示的是 Firefox 网络浏览器,但其中大部分建议在任何一种网络浏览器当中都可以适用。正确选择浏览器尽管我提出的建议具有普适性,但是正确选择网络浏览器也是很必要的。网络浏览器的更新频率是它安全性的一个重要体现。网络浏览器会不断暴露出新的问题,因此版本越新的网络浏览器修复的问题就越多,也越安全。在主流的网络浏览器当中,2017 年版本更新的发布量排行榜如下:Chrome 发布了 8 个更新(Chromium 全年跟进发布了大量安全补丁)。Firefox 发布了 7 个更新。Edge 发布了 2 个更新。Safari 发&…
这些简单的步骤可以大大提高您的在线安全性。<a href="https://dn-linuxcn.qbox.me/data/attachment/album/201812/03/101700z05r3m0r3jp4r1q4.jpg">Media</a>如果你使用 Linux 桌面但从来不使用网络浏览器,那你算得上是百里挑一。网络浏览器是绝大多数人最常用的工具之一,无论是工作、娱乐、看新闻、社交、理财,对网络浏览器的依赖都比本地应用要多得多。因此,我们需要知道如何使用网络浏览器才是安全的。一直以来都有不法的犯罪分子以及他们建立的网页试图窃取私密的信息。正是由于我们需要通过网络浏览器收发大量的敏感信息,安全性就更是至关重要。对于用户来说,需要采取什么措施呢?在下文中,我会提出一些基本的建议,让你的重要数据不会被他人轻易窃取。尽管我用于演示的是 Firefox 网络浏览器,但其中大部分建议在任何一种网络浏览器当中都可以适用。正确选择浏览器尽管我提出的建议具有普适性,但是正确选择网络浏览器也是很必要的。网络浏览器的更新频率是它安全性的一个重要体现。网络浏览器会不断暴露出新的问题,因此版本越新的网络浏览器修复的问题就越多,也越安全。在主流的网络浏览器当中,2017 年版本更新的发布量排行榜如下:Chrome 发布了 8 个更新(Chromium 全年跟进发布了大量安全补丁)。Firefox 发布了 7 个更新。Edge 发布了 2 个更新。Safari 发&…