Merge remote-tracking branch 'LCTT/master'

This commit is contained in:
Xingyu.Wang 2018-05-08 15:33:33 +08:00
commit 19c5293bd6
8 changed files with 177 additions and 172 deletions

View File

@ -1,24 +1,26 @@
如何使用 virsh 命令创建、还原和删除 KVM 虚拟机快照
======
[![KVM-VirtualMachine-Snapshot][1]![KVM-VirtualMachine-Snapshot][2]][2]
在虚拟化平台上进行系统管理工作时经常在开始主要活动比如部署补丁和代码前先设置一个虚拟机快照。
![KVM-VirtualMachine-Snapshot][2]
在虚拟化平台上进行系统管理工作时,经常需要在开始重大操作比如部署补丁和代码前先设置一个虚拟机<ruby>快照<rt>snapshot</rt></ruby>
虚拟机**快照**是特定时间点的虚拟机磁盘的副本。换句话说,快照保存了给定的时间点虚拟机的状态和数据。
### 我们可以在哪里使用虚拟机快照?
如果你在使用基于 **KVM** 的**虚拟机管理程序**,那么可以使用 virsh 命令获取虚拟机或域快照。快照在一种情况下变得非常有用,当你已经在虚拟机上安装或应用了最新的补丁,但是由于某些原因,虚拟机上的程序变得不稳定,程序团队想要还原所有的更改和补丁。如果你在应用补丁之前设置了虚拟机的快照,那么可以使用快照将虚拟机恢复到之前的状态。
如果你在使用基于 **KVM** 的**虚拟机管理程序**,那么可以使用 `virsh` 命令获取虚拟机或域快照。快照在一种情况下变得非常有用,当你已经在虚拟机上安装或应用了最新的补丁,但是由于某些原因,虚拟机上的程序变得不稳定,开发团队想要还原所有的更改和补丁。如果你在应用补丁之前设置了虚拟机的快照,那么可以使用快照将虚拟机恢复到之前的状态。
**注意:**我们只能对磁盘格式为 **Qcow2** 的虚拟机的进行快照,并且 kvm 的 `virsh` 命令不支持 raw 磁盘格式,请使用以下命令将原始磁盘格式转换为 qcow2。
**注意:**我们只能设置磁盘格式为 **Qcow2** 的虚拟机的快照,并且 kvm virsh 命令不支持 raw 磁盘格式,请使用以下命令将原始磁盘格式转换为 qcow2。
```
# qemu-img convert -f raw -O qcow2 image-name.img image-name.qcow2
```
### 创建 KVM 虚拟机(域)快照
我假设 KVM 管理程序已经在 CentOS 7 / RHEL 7 机器上配置好了,并且有虚拟机正在运行。我们可以使用下面的 virsh 命令列出虚拟机管理程序中的所有虚拟机,
我假设 KVM 管理程序已经在 CentOS 7 / RHEL 7 机器上配置好了,并且有虚拟机正在运行。我们可以使用下面的 `virsh` 命令列出虚拟机管理程序中的所有虚拟机,
```
[root@kvm-hypervisor ~]# virsh list --all
 Id    Name                           State
@ -29,35 +31,33 @@
 103   overcloud-compute1             running
 114   webserver                      running
 115   Test-MTN                       running
[root@kvm-hypervisor ~]#
```
假设我们想创建 **webserver** 虚拟机的快照,运行下面的命令,
假设我们想创建 webserver 虚拟机的快照,运行下面的命令,
**语法:**
```
# virsh snapshot-create-as domain {vm_name} name {snapshot_name} description “enter description here”
```
```
[root@kvm-hypervisor ~]# virsh snapshot-create-as --domain webserver --name webserver_snap --description "snap before patch on 4Feb2018"
Domain snapshot webserver_snap created
[root@kvm-hypervisor ~]#
```
创建快照后,我们可以使用下面的命令列出与虚拟机相关的快照,
创建快照后,我们可以使用下面的命令列出与虚拟机相关的快照:
```
[root@kvm-hypervisor ~]# virsh snapshot-list webserver
 Name                 Creation Time             State
------------------------------------------------------------
 webserver_snap       2018-02-04 15:05:05 +0530 running
[root@kvm-hypervisor ~]#
```
要列出虚拟机快照的详细信息,请运行下面的 virsh 命令,
要列出虚拟机快照的详细信息,请运行下面的 `virsh` 命令:
```
[root@kvm-hypervisor ~]# virsh snapshot-info --domain webserver --snapshotname webserver_snap
Name:           webserver_snap
@ -69,50 +69,44 @@ Parent:         -
Children:       0
Descendants:    0
Metadata:       yes
[root@kvm-hypervisor ~]#
```
我们可以使用下面的 qemu-img 命令查看快照的大小,
我们可以使用下面的 `qemu-img` 命令查看快照的大小:
```
[root@kvm-hypervisor ~]# qemu-img info /var/lib/libvirt/images/snaptestvm.img
```
[![qemu-img-command-output-kvm][1]![qemu-img-command-output-kvm][3]][3]
![qemu-img-command-output-kvm][3]
### 还原 KVM 虚拟机快照
假设我们想要将 webserver 虚拟机还原到我们在上述步骤中创建的快照。使用下面的 virsh 命令将 Webserver 虚拟机恢复到其快照 “**webserver_snap**” 上
假设我们想要将 webserver 虚拟机还原到我们在上述步骤中创建的快照。使用下面的 `virsh` 命令将 Webserver 虚拟机恢复到其快照 webserver_snap 时
**语法:**
```
# virsh snapshot-revert {vm_name} {snapshot_name}
```
```
[root@kvm-hypervisor ~]# virsh snapshot-revert webserver webserver_snap
[root@kvm-hypervisor ~]#
```
### 删除 KVM 虚拟机快照
要删除 KVM 虚拟机快照,首先使用 “**virsh snapshot-list**” 命令获取虚拟机的快照详细信息,然后使用 “**virsh snapshot-delete**” 命令删除快照。如下示例所示:
要删除 KVM 虚拟机快照,首先使用 `virsh snapshot-list` 命令获取虚拟机的快照详细信息,然后使用 `virsh snapshot-delete` 命令删除快照。如下示例所示:
```
[root@kvm-hypervisor ~]# virsh snapshot-list --domain webserver
 Name                 Creation Time             State
------------------------------------------------------------
 webserver_snap       2018-02-04 15:05:05 +0530 running
[root@kvm-hypervisor ~]#
[root@kvm-hypervisor ~]# virsh snapshot-delete --domain webserver --snapshotname webserver_snap
Domain snapshot webserver_snap deleted
[root@kvm-hypervisor ~]#
```
这就是本文的全部内容,我希望你们能够了解如何使用 virsh 命令来管理 KVM 虚拟机快照。请分享你的反馈,并不要犹豫地分享给你的技术朋友🙂
这就是本文的全部内容,我希望你们能够了解如何使用 `virsh` 命令来管理 KVM 虚拟机快照。请分享你的反馈,并不要犹豫地分享给你的技术朋友🙂
--------------------------------------------------------------------------------
@ -120,7 +114,7 @@ via: https://www.linuxtechi.com/create-revert-delete-kvm-virtual-machine-snapsho
作者:[Pradeep Kumar][a]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,8 +1,9 @@
Dry 一个命令行交互式 Docker 容器管理器
Dry一个命令行交互式 Docker 容器管理器
======
Docker 是一种实现操作系统级别虚拟化或容器化的软件。
基于 Linux 内核的 cgroups 和 namespaces 等资源隔离特性Docker 可以在单个 Linux 实例中运行多个独立的容器。
Docker 是一种所谓容器化的操作系统级的虚拟化软件。
基于 Linux 内核的 cgroup 和 namespace 等资源隔离特性Docker 可以在单个 Linux 实例中运行多个独立的容器。
通过将应用依赖和相关库打包进容器Docker 使得应用可以在容器中安全隔离地运行。
@ -10,25 +11,26 @@ Docker 是一种实现操作系统级别虚拟化或容器化的软件。
[Dry][1] 是一个管理并监控 Docker 容器和镜像的命令行工具。
Dry 给出容器相关的信息,包括对应镜像、容器名称、网络、容器中运行的命令及容器状态;如果运行在 Docker Swarm 中,工具还会给出 Swarm 集群的各种状态信息。
Dry 可以给出容器相关的信息,包括对应镜像、容器名称、网络、容器中运行的命令及容器状态;如果运行在 Docker Swarm 中,工具还会给出 Swarm 集群的各种状态信息。
Dry 可以连接至本地或远程的 Docker 守护进程。如果连接本地 DockerDocker 主机显示为`unix:///var/run/docker.sock`。
Dry 可以连接至本地或远程的 Docker 守护进程。如果连接本地 DockerDocker 主机显示为 `unix:///var/run/docker.sock`
如果连接远程 DockerDocker 主机显示为 `tcp://IP Address:Port Number``tcp://Host Name:Port Number`
Dry 可以提供类似 `docker ps` 的指标输出,但输出比 “docker ps” 内容详实、富有色彩。
Dry 可以提供类似 `docker ps` 的指标输出,但输出比 `docker ps` 内容详实、富有色彩。
相比 DockerDry 还可以手动添加一个额外的名称列,用于降低记忆难度。
***推荐阅读:**
**推荐阅读:**
**(#)** [Portainer 用于 Docker 管理的简明 GUI][2]
**(#)** [Rancher 适用于生产环境的完备容器管理平台][3]
**(#)** [cTop Linux环境下容器管理与监控的命令行工具][4]
- [Portainer 用于 Docker 管理的简明 GUI][2]
- [Rancher 适用于生产环境的完备容器管理平台][3]
- [cTop Linux环境下容器管理与监控的命令行工具][4]
### 如何在 Linux 中安装 Dry
在 Linux 中,可以通过一个简单的 shell 脚本安装最新版本的 dry 工具。Dry 不依赖外部库。对于绝大多数的 Docker 命令dry 提供类似样式的命令。
在 Linux 中,可以通过一个简单的 shell 脚本安装最新版本的 Dry 工具。Dry 不依赖外部库。对于绝大多数的 Docker 命令Dry 提供类似样式的命令。
```
$ curl -sSf https://moncho.github.io/dry/dryup.sh | sudo sh
% Total % Received % Xferd Average Speed Time Time Time Current
@ -38,41 +40,40 @@ dryup: downloading dry binary
######################################################################## 100.0%
dryup: Moving dry binary to its destination
dryup: dry binary was copied to /usr/local/bin, now you should 'sudo chmod 755 /usr/local/bin/dry'
```
使用如下命令将文件权限变更为 `755`
使用如下命令将文件权限变更为 `755`
```
$ sudo chmod 755 /usr/local/bin/dry
```
对于使用 Arch Linux 的用户,可以使用 **[Packer][5]** or **[Yaourt][6]** 包管理器,从 AUR 源安装该工具。
对于使用 Arch Linux 的用户,可以使用 **[Packer][5]** **[Yaourt][6]** 包管理器,从 AUR 源安装该工具。
```
$ yaourt -S dry-bin
或者
$ packer -S dry-bin
```
如果希望在 Docker 容器中运行 dry可以运行如下命令。前提条件是已确认在操作系统中安装了 Docker。
**推荐阅读:**
**(#)** [如何在 Linux 中安装 Docker][7]
**(#)** [如何在 Linux 中玩转 Docker 镜像][8]
**(#)** [如何在 Linux 中玩转 Docker 容器][9]
**(#)** [如何在 Docker 容器中安装并运行应用程序][10]
- [如何在 Linux 中安装 Docker][7]
- [如何在 Linux 中玩转 Docker 镜像][8]
- [如何在 Linux 中玩转 Docker 容器][9]
- [如何在 Docker 容器中安装并运行应用程序][10]
```
$ docker run -it -v /var/run/docker.sock:/var/run/docker.sock moncho/dry
```
### 如何启动并运行 Dry
在控制台运行 `dry` 命令即可启动该工具,其默认输出如下:
```
$ dry
```
![][12]
@ -80,18 +81,20 @@ $ dry
### 如何使用 Dry 监控 Docker
你可以在 dry 的界面中按下 `m` 键打开监控模式。
![][13]
### 如何使用 Dry 管理容器
在选中的容器上单击 `Enter`即可管理容器。Dry 提供如下操作:查看日志,查看、杀死、删除容器,停止、启动、重启容器,查看容器状态及镜像历史记录等。
在选中的容器上单击回车键即可管理容器。Dry 提供如下操作:查看日志,查看、杀死、删除容器,停止、启动、重启容器,查看容器状态及镜像历史记录等。
![][14]
### 如何监控容器资源利用率
用户可以使用 `Stats+Top` 选项查看指定容器的资源利用率。
该操作需要在容器管理界面完成(在上一步的基础上,点击 `Stats+Top` 选项)。另外,也可以按下 `s` 打开容器资源利用率界面。
该操作需要在容器管理界面完成(在上一步的基础上,点击 `Stats+Top` 选项)。另外,也可以按下 `s` 打开容器资源利用率界面。
![][15]
@ -100,35 +103,39 @@ $ dry
可以使用 `F8` 键查看容器、镜像及本地卷的磁盘使用情况。
该界面明确地给出容器、镜像和卷的总数,哪些处于使用状态,以及整体磁盘使用情况、可回收空间大小的详细信息。
![][16]
### 如何查看已下载的镜像
按下 `2` 键即可列出全部的已下载镜像。
![][17]
### 如何查看网络列表
按下 `3` 键即可查看全部网络及网关。
![][18]
### 如何查看全部 Docker 容器
按下 `F2` 键即可列出列出全部容器,包括运行中和已关闭的容器。
![][19]
### Dry 快捷键
查看帮助页面或 [dry github][1] 即可查看全部快捷键。
查看帮助页面或 [dry GitHub][1] 即可查看全部快捷键。
--------------------------------------------------------------------------------
via: https://www.2daygeek.com/dry-an-interactive-cli-manager-for-docker-containers/
作者:[Magesh Maruthamuthu][a]
译者:[pinewall](https://github.com/pinewall)
校对:[校对者ID](https://github.com/校对者ID)
选题:[lujun9972](https://github.com/lujun9972)
译者:[pinewall](https://github.com/pinewall)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,30 +1,33 @@
啥我喜欢 ARM 和 PowerPC
什么我喜欢 ARM 和 PowerPC
======
> 一个学生在搜寻强劲而节能的工作站的历程中怎样对开源系统的热情与日俱增的。
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/desk_clock_job_work.jpg?itok=Nj4fuhl6)
最近我被问起为啥在博客和推特里经常提到 [ARM][1] 和 [PowerPC][2]。我有两个答案:一个是个人原因,另一个是技术上的。
最近我被问起为什么在博客和推特里经常提到 [ARM][1] 和 [PowerPC][2]。我有两个答案:一个是个人原因,另一个是技术上的。
### 个人原因
从前,我是学环境保护的。在我读博的时候,我准备买个新电脑。作为一个环保人士,我需要一台强劲且环保的电脑。这就是我开始对 PowerPC 感兴趣的原因,我找到了 [Pegasos][3] 一台 [Genesi][4] 公司制造的 PowerPC 工作站。
从前,我是学环境保护的。在我读博的时候,我准备买个新电脑。作为一个环保人士,我需要一台强劲且节能的电脑。这就是我开始对 PowerPC 感兴趣的原因,我找到了 [Pegasos][3],这是一台 [Genesi][4] 公司制造的 PowerPC 工作站。
我还用过 [RS/6000][5] (PowerPC), [SGI][6] (MIPS), [HP-UX][7] (PA-RISC),和[VMS][8] (Alpha)的服务器和工作站,由于我的 PC 使用 Linux 而非 Windows所以使用不同的 CPU 架构对我来说并没有什么区别。 [Pegasos][9] 是我第一台工作站,它小而且对家用来说性能足够。
我还用过 [RS/6000][5] PowerPC、 [SGI][6] MIPS、 [HP-UX][7] PA-RISC和 [VMS][8] Alpha的服务器和工作站,由于我的 PC 使用 Linux 而非 Windows所以使用不同的 CPU 架构对我来说并没有什么区别。 [Pegasos][9] 是我第一台工作站,它小型而节能而且对家用来说性能足够。
很快我就开始为 Genesi 工作,为 Pegasos 移植 [openSUSE][10], Ubuntu 和其他 Linux 发行版,并提供质量保证和社区支持。继 Pegasos 之后是 [EFIKA][11],另一款基于 PowerPC 的开发板。在用过工作站之后,刚开始使用嵌入式系统会感觉有点奇怪。但是作为第一代普及价位的开发板,这是一场革命的开端。
很快我就开始为 Genesi 工作,为 Pegasos 移植 [openSUSE][10] Ubuntu 和其他 Linux 发行版,并提供质量保证和社区支持。继 Pegasos 之后是 [EFIKA][11]这是另一款基于 PowerPC 的开发板。在用过工作站之后,刚开始使用嵌入式系统会感觉有点奇怪。但是作为第一代普及价位的开发板,这是一场革命的开端。
在我收到 Genesi 的另一块有趣的开发板的时候,我开始了一个大规模的服务器项目:基于 ARM 的 [Smarttop][12] 和 [Smartbook][13]。我最喜欢的 Linux 发行版————openSUSE也收到了一打这种机器。这在当时 ARM 电脑非常稀缺的情况下,极大地促进了 ARM 版 openSUSE 项目的开发。
我工作于一个大规模的服务器项目时,我收到 Genesi 的另一块有趣的开发板:基于 ARM 的 [Smarttop][12] 和 [Smartbook][13]。我最喜欢的 Linux 发行版——openSUSE也收到了一打这种机器。这在当时 ARM 电脑非常稀缺的情况下,极大地促进了 ARM 版 openSUSE 项目的开发。
尽管最近我很忙,我尽量保持对 ARM 和 PowerPC 新闻的关注。这有助于我支持非 x86 平台上的 SysLog-NG 用户。只要有半个小时的空,我就会去捣鼓一下 ARM 机器。我在[树莓派2][14]上做了很多 [syslog-ng][15] 的测试,结果令人振奋。我最近在树莓派上做了个音乐播放器,用了一块 USB 声卡和[音乐播放守护进程][17],我经常使用它。
尽管最近我很忙,我尽量保持对 ARM 和 PowerPC 新闻的关注。这有助于我支持非 x86 平台上的 syslog-ng 用户。只要有半个小时的空,我就会去捣鼓一下 ARM 机器。我在[树莓派2][14]上做了很多 [syslog-ng][15] 的测试,结果令人振奋。我最近在树莓派上做了个音乐播放器,用了一块 USB 声卡和[音乐播放守护进程][17],我经常使用它。
### 技术方面
美好的多样性:它创造了竞争,而竞争创造了更好的产品。虽然 x86 是一款强劲的通用处理器,但 ARM 和 PowerPC (以及许多其他)这样的芯片在多种特定场景下显得更适合。
如果你有一部运行[安卓][18]的移动设备或者[苹果][19]的 iPhone 或 iPad极有可能它使用的就是 基于ARM 的 SoC (片上系统)。网络存储服务器也一样。原因很简单:省电。你不会希望手机一直在充电,也不想为你的路由器付更多的电费。
如果你有一部运行[安卓][18]的移动设备或者[苹果][19]的 iPhone 或 iPad极有可能它使用的就是基于ARM 的 SoC (片上系统)。网络存储服务器也一样。原因很简单:省电。你不会希望手机一直在充电,也不想为你的路由器付更多的电费。
ARM 亦在使用 64-bit ARMv8 芯片征战服务器市场。很多任务只需要极少的计算能力另一方面省电和快速IO才是关键比如思维存储译者注原文为 think storage静态网页服务器电子邮件和其他网络/存储相关的功能。一个最好的例子就是 [Ceph][20],一个分布式的面向对象文件系统。[SoftIron][21] 就是一个基于 ARMv8 开发版,使用 CentOS 作为基准软件,运行在 Ceph 上的完整存储应用。
ARM 亦在使用 64 位 ARMv8 芯片征战企业级服务器市场。很多任务只需要极少的计算能力,另一方面省电和快速 IO 才是关键,想想存储、静态网页服务器、电子邮件和其他网络/存储相关的功能。一个最好的例子就是 [Ceph][20],一个分布式的面向对象文件系统。[SoftIron][21] 就是一个基于 ARMv8 开发版,使用 CentOS 作为基准软件,运行在 Ceph 上的完整存储应用。
众所周知 PowerPC 是旧版苹果 [Mac][22] 电脑上的 CPU。虽然它不再作为通用桌面电脑的 CPU ,它依然在路由器和电信设备里发挥作用。而且 [IBM][23] 仍在为高端服务器制造芯片。几年前,随着 Power8 的引入, IBM 在 [OpenPower 基金会][24] 的支持下开放了架构。 Power8 对于关心内存带宽的设备,比如 HPC , 大数据,数据挖掘来说是非常理想的平台。目前Power9 也正呼之欲出。
众所周知 PowerPC 是旧版苹果 [Mac][22] 电脑上的 CPU。虽然它不再作为通用桌面电脑的 CPU ,它依然在路由器和电信设备里发挥作用。而且 [IBM][23] 仍在为高端服务器制造芯片。几年前,随着 Power8 的引入, IBM 在 [OpenPower 基金会][24] 的支持下开放了架构。 Power8 对于关心内存带宽的设备,比如 HPC 、大数据、数据挖掘来说是非常理想的平台。目前Power9 也正呼之欲出。
这些都是服务器应用,但也有计划用于终端用户。猛禽工程团队正在开发一款基于 [Power9 的工作站][25],也有一个基于飞思卡尔/恩智浦 QORIQ E6500 芯片[制造笔记本] [26]的倡议。当然,这些电脑并不适合所有人,你不能在它们上面安装 Windows 游戏或者商业应用。但它们对于 PowerPC 开发人员和爱好者,或者任何想要完全开放系统的人来说是理想的选择,因为从硬件到固件到应用程序都是开放的。
@ -32,7 +35,7 @@ ARM 亦在使用 64-bit ARMv8 芯片征战服务器市场。很多任务只需
我的梦想是完全没有 x86 的环境,不是因为我讨厌 x86 ,而是因为我喜欢多样化而且总是希望使用最适合工作的工具。如果你看看猛禽工程网页上的[图][27],根据不同的使用情景, ARM 和 POWER 完全可以代替 x86 。现在,我在笔记本的 x86 虚拟机上编译、打包和测试 syslog-ng。如果能用上足够强劲的 ARMv8 或者 PowerPC 电脑,无论工作站还是服务器,我就能避免在 x86 上做这些事。
现在我正在等待下一代[菠萝本][28]的到来,就像我在二月份 [FOSDEM][29] 上说的,下一代有望提供更高的性能。和 Chrome 本不同的是,这个 ARM 笔记本设计用于运行 Linux 而非仅是个客户端(译Chrome 笔记本只提供基于网页的应用)。作为桌面系统,我在寻找 ARMv8 工作站级别的硬件。有些已经接近完成——就像 Avantek 公司的 [雷神X 台式机][30]——不过他们还没有装备最新最快最重要也最节能的 ARMv8 CPU。当这些都实现了我将用我的 Pixel C 笔记本运行安卓。它不像 Linux 那样简单灵活,但它以强大的 ARM SoC 和 Linux 内核为基础。
现在我正在等待下一代[菠萝本][28]的到来,就像我在二月份 [FOSDEM][29] 上说的,下一代有望提供更高的性能。和 Chrome 本不同的是,这个 ARM 笔记本设计用于运行 Linux 而非仅是个客户端(LCTT 译注Chrome 笔记本只提供基于网页的应用)。作为桌面系统,我在寻找 ARMv8 工作站级别的硬件。有些已经接近完成——就像 Avantek 公司的 [雷神 X 台式机][30]——不过他们还没有装备最新最快最重要也最节能的 ARMv8 CPU。当这些都实现了我将用我的 Pixel C 笔记本运行安卓。它不像 Linux 那样简单灵活,但它以强大的 ARM SoC 和 Linux 内核为基础。
--------------------------------------------------------------------------------
@ -40,7 +43,7 @@ via: https://opensource.com/article/18/4/why-i-love-arm-and-powerpc
作者:[Peter Czanik][a]
译者:[kennethXia](https://github.com/kennethXia)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,10 +1,11 @@
4 月 COPR 中 4 个新酷项目
4 月 COPR 中 4 个新酷项目
======
![](https://fedoramagazine.org/wp-content/uploads/2017/08/4-copr-945x400.jpg)
COPR 是一个人仓库[收集][1],它不在 Fedora 中运行。某些软件不符合易于打包的标准。或者它可能不符合其他 Fedora 标准尽管它是免费且开源的。COPR 可以在 Fedora 套件之外提供这些项目。COPR 中的软件不受 Fedora 基础设施支持或项目签名。但是,它可能是尝试新软件或实验软件的一种很好的方式。
这是 COPR 中一系列新的和有趣的项目。
COPR 是一个个人软件仓库[集合][1],它包含 Fedora 所没有提供的软件。这些软件或不符合易于打包的标准,或者它可能不符合其他 Fedora 标准尽管它是自由且开源的。COPR 可以在 Fedora 套件之外提供这些项目。COPR 中的软件并没有得到 Fedora 基础设施支持,也没有由该项目背书。但是,它可能是尝试新软件或实验软件的一种很好的方式。
这是 COPR 中一些新的和有趣的项目。
### Anki
@ -17,28 +18,28 @@ COPR 是一个人仓库[收集][1],它不在 Fedora 中运行。某些软件
#### 安装说明
仓库目前为 Fedora 27、28 和 Rawhide 提供 Anki。要安装 Anki请使用以下命令
```
sudo dnf copr enable thomasfedb/anki
sudo dnf install anki
```
### Fd
[Fd][5] 是一个命令行工具,它是简单而稍快的替代 [find][6] 的方法。它可以并行地查找项目。fd 也使用彩色输出,并默认忽略隐藏文件和 .gitignore 中指定模式的文件。
[Fd][5] 是一个命令行工具,它是简单而稍快的替代 [find][6] 的方法。它可以并行地查找项目。fd 也使用彩色输出,并默认忽略隐藏文件和 `.gitignore` 中指定模式的文件。
#### 安装说明
仓库目前为 Fedora 26、27、28 和 Rawhide 提供 fd。要安装 fd请使用以下命令
仓库目前为 Fedora 26、27、28 和 Rawhide 提供 `fd`。要安装 fd请使用以下命令
```
sudo dnf copr enable keefle/fd
sudo dnf install fd
```
### KeePass
[KeePass][7]是一个密码管理器。它将所有密码保存在一个由主密钥或密钥文件锁定的端对端加密数据库中。密码可以组织成组并由程序的内置生成器生成。其他功能包括自动输入,它可以为选定的表单输入用户名和密码。
[KeePass][7] 是一个密码管理器。它将所有密码保存在一个由主密钥或密钥文件锁定的端对端加密数据库中。密码可以组织成组并由程序的内置生成器生成。其他功能包括自动输入,它可以为选定的表单输入用户名和密码。
虽然 KeePass 已经在 Fedora 中,但这个仓库提供了最新版本。
@ -47,10 +48,10 @@ sudo dnf install fd
#### 安装说明
仓库目前为 Fedora 26 和 27 提供 KeePass。要安装 KeePass请使用以下命令
```
sudo dnf copr enable mavit/keepass
sudo dnf install keepass
```
### jo
@ -60,10 +61,10 @@ sudo dnf install keepass
#### 安装说明
目前,仓库为 Fedora 26、27 和 Rawhide 以及 EPEL 6 和 7 提供 jo。要安装 jo请使用以下命令
```
sudo dnf copr enable ganto/jo
sudo dnf install jo
```
@ -72,9 +73,9 @@ sudo dnf install jo
via: https://fedoramagazine.org/4-try-copr-april-2018/
作者:[Dominik Turecek][a]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
选题:[lujun9972](https://github.com/lujun9972)
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

View File

@ -1,3 +1,5 @@
icecoobe translating
How to Compile a Linux Kernel
======

View File

@ -1,92 +0,0 @@
translating---geekpi
How to use FIND in Linux
======
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/rh_003499_01_linux31x_cc.png?itok=Pvim4U-B)
In [a recent Opensource.com article][1], Lewis Cowles introduced the `find` command.
`find` is one of the more powerful and flexible command-line programs in the daily toolbox, so it's worth spending a little more time on it.
At a minimum, `find` takes a path to find things. For example:
```
find /
```
will find (and print) every file on the system. And since everything is a file, you will get a lot of output to sort through. This probably doesn't help you find what you're looking for. You can change the path argument to narrow things down a bit, but it's still not really any more helpful than using the `ls` command. So you need to think about what you're trying to locate.
Perhaps you want to find all the JPEG files in your home directory. The `-name` argument allows you to restrict your results to files that match the given pattern.
```
find ~ -name '*jpg'
```
But wait! What if some of them have an uppercase extension? `-iname` is like `-name`, but it is case-insensitive.
```
find ~ -iname '*jpg'
```
Great! But the 8.3 name scheme is so 1985. Some of the pictures might have a .jpeg extension. Fortunately, we can combine patterns with an "or," represented by `-o`.
```
find ~ ( -iname 'jpeg' -o -iname 'jpg' )
```
We're getting closer. But what if you have some directories that end in jpg? (Why you named a directory `bucketofjpg` instead of `pictures` is beyond me.) We can modify our command with the `-type` argument to look only for files.
```
find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f
```
Or maybe you'd like to find those oddly named directories so you can rename them later:
```
find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type d
```
It turns out you've been taking a lot of pictures lately, so let's narrow this down to files that have changed in the last week.
```
find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f -mtime -7
```
`ctime`), modification time (`mtime`), or access time (`atime`). These are in days, so if you want finer-grained control, you can express it in minutes instead (`cmin`, `mmin`, and `amin`, respectively). Unless you know exactly the time you want, you'll probably prefix the number with `+` (more than) or `` (less than).
You can do time filters based on file status change time (), modification time (), or access time (). These are in days, so if you want finer-grained control, you can express it in minutes instead (, and, respectively). Unless you know exactly the time you want, you'll probably prefix the number with(more than) or(less than).
But maybe you don't care about your pictures. Maybe you're running out of disk space, so you want to find all the gigantic (let's define that as "greater than 1 gigabyte") files in the `log` directory:
```
find /var/log -size +1G
```
Or maybe you want to find all the files owned by bcotton in `/data`:
```
find /data -owner bcotton
```
You can also look for files based on permissions. Perhaps you want to find all the world-readable files in your home directory to make sure you're not oversharing.
```
find ~ -perm -o=r
```
This post only scratches the surface of what `find` can do. Combining tests with Boolean logic can give you incredible flexibility to find exactly the files you're looking for. And with arguments like `-exec` or `-delete`, you can have `find` take action on what it... finds. Have any favorite `find` expressions? Share them in the comments!
--------------------------------------------------------------------------------
via: https://opensource.com/article/18/4/how-use-find-linux
作者:[Ben Cotton][a]
选题:[lujun9972](https://github.com/lujun9972)
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://opensource.com/users/bcotton
[1]:https://opensource.com/article/18/4/how-find-files-linux

View File

@ -1,3 +1,5 @@
translating---geekpi
How to build container images with Buildah
======

View File

@ -0,0 +1,88 @@
如何在 Linux 中使用 FIND
======
![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/rh_003499_01_linux31x_cc.png?itok=Pvim4U-B)
在[最近的一篇 Opensource.com 文章][1]中Lewis Cowles 介绍了 `find` 命令。
`find` 是日常工具箱中功能更强大、更灵活的命令行工具之一,因此值得花费更多的时间。
最简单的,`find` 跟上路径寻找一些东西。例如:
```
find /
```
它将找到(并打印)系统中的每个文件。而且由于一切都是文件,你会得到很多输出需要排序。这可能不会帮助你找到你要找的东西。你可以改变路径参数来缩小范围,但它不会比使用 `ls` 命令更有帮助。所以你需要考虑你想要找的东西。
也许你想在主目录中找到所有的 JPEG 文件。 `-name` 参数允许你将结果限制为与给定模式匹配的文件。
```
find ~ -name '*jpg'
```
可是等等!如果它们中的一些是大写的扩展名会怎么样?`-iname` 就像 `-name`,但是不区分大小写。
```
find ~ -iname '*jpg'
```
很好!但是 8.3 名称方案是如此的老。一些图片可能是 .jpeg 扩展名。幸运的是,我们可以将模式用 “or” 表示为 `-o`,来组合。
```
find ~ ( -iname 'jpeg' -o -iname 'jpg' )
```
我们正在接近。但是如果你有一些以 jpg 结尾的目录呢? (为什么你命名一个 `bucketofjpg` 而不是 `pictures` 的目录超出了我的范围。)我们使用 `-type` 参数修改我们的命令来查找文件。
```
find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f
```
或者,也许你想找到那些命名奇怪的目录,以便稍后重命名它们:
```
find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type d
```
你最近拍了很多照片,所以让我们把它缩小到上周更改的文件。
```
find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f -mtime -7
```
你可以根据文件状态更改时间 ctime修改时间 mtime 或访问时间 atime 来执行时间过滤。 这些是在几天内,所以如果你想要更细粒度的控制,你可以表示为在几分钟内(分别是 `cmin`、`mmin` 和 `amin`)。 除非你确切地知道你想要的时间,否则你可能会在 + (大于)或 - (小于)的后面加上数字。
但也许你不关心你的照片。也许你的磁盘空间不够用,所以你想在 `log` 目录下找到所有巨大的(让我们定义为“大于 1GB”文件
```
find /var/log -size +1G
```
或者,也许你想在 `/ data` 中找到 bcotton 拥有的所有文件:
```
find /data -owner bcotton
```
你还可以根据权限查找文件。也许你想在你的主目录中找到对所有人可读的文件,以确保你不会过度分享。
```
find ~ -perm -o=r
```
这篇文章只说了 `find` 能做什么的表面。将测试与布尔逻辑相结合可以为你提供难以置信的灵活性,以便准确找到要查找的文件。并且像 `-exec``-delete` 这样的参数,你可以让 `find` 对它发现的内容采取行动。你有任何最喜欢的 `find` 表达式么?在评论中分享它们!
--------------------------------------------------------------------------------
via: https://opensource.com/article/18/4/how-use-find-linux
作者:[Ben Cotton][a]
选题:[lujun9972](https://github.com/lujun9972)
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://opensource.com/users/bcotton
[1]:https://opensource.com/article/18/4/how-find-files-linux