Linux 命令神器：lsof 入门

Summary: lsof是系统管理/安全的尤伯工具。我大多数时候用它来从系统获得与网络连接相关的信息，但那只是这个强大而又鲜为人知的应用的第一步。将这个工具称之为lsof真实名副其实，因为它是指列出打开文件（lists openfiles）。而有一点要切记，在Unix中一切（包括网络套接口）都是文件。 有趣的是，lsof也是有着最多开关的Linux/Unix命令之一。它有那么多的开关，它有许多选项支持使用-和+前缀。 usage:     ] ] ] ] ]  ]  ] ] ]   ]    正如你所见，lsof有着实在是令人惊讶的选项数量。你可以使用它来获得你系统上设备的信息，你能通过它了解到指

@mywiz

这个真的好有用

最近刚遇到一个问题，就是用这个命令解决的~//@西瓜大丸子汤: 这个真的好有用

@我的印象笔记

@有道云笔记收藏

强大//@西瓜大丸子汤: 这个真的好有用

@我的印象笔记

确实是神器

mark

@我的印象笔记

//@西瓜大丸子汤:这个真的好有用

@我的印象笔记

lsof -i -sTCP:ESTABLISHED<br />
能用吗？

呵呵

bucuo

赞，技术牛人

爱的色放

lsof -i -sTCP:LISTEN

这个命令用起来真费劲, 一定要敲这么多东西

alias lt='lsof -i -sTCP:LISTEN'

@我的印象笔记

这是个强大的命令，6年后我才看到。。

能

# Linux 命令神器：lsof 入门

**lsof**是系统管理/[安全](http://linuxaria.com/tag/security)的尤伯工具。我大多数时候用它来从系统获得与[网络](http://linuxaria.com/tag/network)连接相关的信息，但那只是这个强大而又鲜为人知的应用的第一步。将这个工具称之为lsof真实名副其实，因为它是指“**列出打开文件（lists openfiles）**”。而有一点要切记，在Unix中一切（包括网络套接口）都是文件。

有趣的是，lsof也是有着最多开关的Linux/Unix命令之一。它有那么多的开关，它有许多选项支持使用-和+前缀。

```
usage: [-?abhlnNoOPRstUvV] [+|-c c] [+|-d s] [+D D] [+|-f[cgG]]
 [-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+|-M] [-o [o]]
 [-p s] [+|-r [t]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]

```

正如你所见，lsof有着实在是令人惊讶的选项数量。你可以使用它来获得你系统上设备的信息，你能通过它了解到指定的用户在指定的地点正在碰什么东西，或者甚至是一个进程正在使用什么文件或网络连接。

对于我，lsof替代了netstat和ps的全部工作。它可以带来那些工具所能带来的一切，而且要比那些工具多得多。那么，让我们来看看它的一些基本能力吧：

### 关键选项

理解一些关于lsof如何工作的关键性东西是很重要的。最重要的是，当你给它传递选项时，**默认行为**是对结果进行“或”运算。因此，如果你正是用-i来拉出一个端口列表，同时又用-p来拉出一个进程列表，那么默认情况下你会获得两者的结果。

下面的一些其它东西需要牢记：

* **默认** : 没有选项，lsof列出活跃进程的所有打开文件
* **组合** : 可以将选项组合到一起，如-abc，但要当心哪些选项需要参数
* **-a** : 结果进行“与”运算（而不是“或”）
* **-l** : 在输出显示用户ID而不是用户名
* **-h** : 获得帮助
* **-t** : 仅获取进程ID
* **-U** : 获取UNIX套接口地址
* **-F** : 格式化输出结果，用于其它命令。可以通过多种方式格式化，如-F pcfn（用于进程id、命令名、文件描述符、文件名，并以空终止）

### 获取网络信息

正如我所说的，我主要将lsof用于获取关于系统怎么和网络交互的信息。这里提供了关于此信息的一些主题：

#### 使用-i显示所有连接

有些人喜欢用netstat来获取网络连接，但是我更喜欢使用lsof来进行此项工作。结果以对我来说很直观的方式呈现，我仅仅只需改变我的语法，就可以通过同样的命令来获取更多信息。

```
# lsof -i

COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME
dhcpcd 6061 root 4u IPv4 4510 UDP *:bootpc
sshd 7703 root 3u IPv6  6499 TCP *:ssh (LISTEN)
sshd 7892 root 3u IPv6  6757 TCP 10.10.1.5:ssh->192.168.1.5:49901 (ESTABLISHED)

```

#### 使用-i 6仅获取IPv6流量

```
# lsof -i 6

```

#### 仅显示TCP连接（同理可获得UDP连接）

你也可以通过在-i后提供对应的协议来仅仅显示TCP或者UDP连接信息。

```
# lsof -iTCP

COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME
sshd 7703 root 3u IPv6 6499 TCP *:ssh (LISTEN)
sshd 7892 root 3u IPv6 6757 TCP 10.10.1.5:ssh->192.168.1.5:49901 (ESTABLISHED)

```

#### 使用-i:port来显示与指定端口相关的网络信息

或者，你也可以通过端口搜索，这对于要找出什么阻止了另外一个应用绑定到指定端口实在是太棒了。

```
# lsof -i :22

COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME
sshd 7703 root 3u  IPv6 6499 TCP *:ssh (LISTEN)
sshd 7892 root 3u  IPv6 6757 TCP 10.10.1.5:ssh->192.168.1.5:49901 (ESTABLISHED)

```

#### 使用@host来显示指定到指定主机的连接

这对于你在检查是否开放连接到网络中或互联网上某个指定主机的连接时十分有用。

```
# lsof -i@172.16.12.5

sshd 7892 root 3u IPv6 6757 TCP 10.10.1.5:ssh->172.16.12.5:49901 (ESTABLISHED)

```

#### 使用@host:port显示基于主机与端口的连接

你也可以组合主机与端口的显示信息。

```
# lsof -i@172.16.12.5:22

sshd 7892 root 3u IPv6 6757 TCP 10.10.1.5:ssh->172.16.12.5:49901 (ESTABLISHED)

```

#### 找出监听端口

找出正等候连接的端口。

```
# lsof -i -sTCP:LISTEN

```

你也可以grep “LISTEN”来完成该任务。

```
# lsof -i | grep -i LISTEN

iTunes     400 daniel   16u  IPv4 0x4575228  0t0 TCP *:daap (LISTEN)

```

#### 找出已建立的连接

你也可以显示任何已经连接的连接。

```
# lsof -i -sTCP:ESTABLISHED

```

你也可以通过grep搜索“ESTABLISHED”来完成该任务。

```
# lsof -i | grep -i ESTABLISHED

firefox-b 169 daniel  49u IPv4 0t0 TCP 1.2.3.3:1863->1.2.3.4:http (ESTABLISHED)

```

### 用户信息

你也可以获取各种用户的信息，以及它们在系统上正干着的事情，包括它们的网络活动、对文件的操作等。

#### 使用-u显示指定用户打开了什么

```
# lsof -u daniel

-- snipped --
Dock 155 daniel  txt REG   14,2   2798436   823208 /usr/lib/libicucore.A.dylib
Dock 155 daniel  txt REG   14,2   1580212   823126 /usr/lib/libobjc.A.dylib
Dock 155 daniel  txt REG   14,2   2934184   823498 /usr/lib/libstdc++.6.0.4.dylib
Dock 155 daniel  txt REG   14,2    132008   823505 /usr/lib/libgcc_s.1.dylib
Dock 155 daniel  txt REG   14,2    212160   823214 /usr/lib/libauto.dylib
-- snipped --

```

#### 使用-u  user来显示除指定用户以外的其它所有用户所做的事情

```
# lsof -u ^daniel

-- snipped --
Dock 155 jim  txt REG   14,2   2798436   823208 /usr/lib/libicucore.A.dylib
Dock 155 jim  txt REG   14,2   1580212   823126 /usr/lib/libobjc.A.dylib
Dock 155 jim  txt REG   14,2   2934184   823498 /usr/lib/libstdc++.6.0.4.dylib
Dock 155 jim  txt REG   14,2    132008   823505 /usr/lib/libgcc_s.1.dylib
Dock 155 jim  txt REG   14,2    212160   823214 /usr/lib/libauto.dylib
-- snipped --

```

#### 杀死指定用户所做的一切事情

可以消灭指定用户运行的所有东西，这真不错。

```
# kill -9 `lsof -t -u daniel`

```

### 命令和进程

可以查看指定程序或进程由什么启动，这通常会很有用，而你可以使用lsof通过名称或进程ID过滤来完成这个任务。下面列出了一些选项：

#### 使用-c查看指定的命令正在使用的文件和网络连接

```
# lsof -c syslog-ng

COMMAND    PID USER   FD   TYPE     DEVICE    SIZE       NODE NAME
syslog-ng 7547 root  cwd    DIR    3,3    4096   2 /
syslog-ng 7547 root  rtd    DIR    3,3    4096   2 /
syslog-ng 7547 root  txt    REG    3,3  113524  1064970 /usr/sbin/syslog-ng
-- snipped --

```

#### 使用-p查看指定进程ID已打开的内容

```
# lsof -p 10075

-- snipped --
sshd    10068 root  mem    REG    3,3   34808 850407 /lib/libnss_files-2.4.so
sshd    10068 root  mem    REG    3,3   34924 850409 /lib/libnss_nis-2.4.so
sshd    10068 root  mem    REG    3,3   26596 850405 /lib/libnss_compat-2.4.so
sshd    10068 root  mem    REG    3,3  200152 509940 /usr/lib/libssl.so.0.9.7
sshd    10068 root  mem    REG    3,3   46216 510014 /usr/lib/liblber-2.3
sshd    10068 root  mem    REG    3,3   59868 850413 /lib/libresolv-2.4.so
sshd    10068 root  mem    REG    3,3 1197180 850396 /lib/libc-2.4.so
sshd    10068 root  mem    REG    3,3   22168 850398 /lib/libcrypt-2.4.so
sshd    10068 root  mem    REG    3,3   72784 850404 /lib/libnsl-2.4.so
sshd    10068 root  mem    REG    3,3   70632 850417 /lib/libz.so.1.2.3
sshd    10068 root  mem    REG    3,3    9992 850416 /lib/libutil-2.4.so
-- snipped --

```

#### -t选项只返回PID

```
# lsof -t -c Mail

350

```

### 文件和目录

通过查看指定文件或目录，你可以看到系统上所有正与其交互的资源——包括用户、进程等。

#### 显示与指定目录交互的所有一切

```
# lsof /var/log/messages/

COMMAND    PID USER   FD   TYPE DEVICE   SIZE   NODE NAME
syslog-ng 7547 root    4w   REG    3,3 217309 834024 /var/log/messages

```

### 显示与指定文件交互的所有一切

```
# lsof /home/daniel/firewall_whitelist.txt

```

### 高级用法

与[tcpdump](http://danielmiessler.com/study/tcpdump/)类似，当你开始组合查询时，它就显示了它强大的功能。

#### 显示daniel连接到1.1.1.1所做的一切

```
# lsof -u daniel -i @1.1.1.1

bkdr   1893 daniel 3u  IPv6 3456 TCP 10.10.1.10:1234->1.1.1.1:31337 (ESTABLISHED)

```

#### 同时使用-t和-c选项以给进程发送 HUP 信号

```
# kill -HUP `lsof -t -c sshd`

```

#### lsof +L1显示所有打开的链接数小于1的文件

这通常（当不总是）表示某个攻击者正尝试通过删除文件入口来隐藏文件内容。

```
# lsof +L1

(hopefully nothing)

```

#### 显示某个端口范围的打开的连接

```
# lsof -i @fw.google.com:2150=2180

```

### 结尾

本入门教程只是管窥了lsof功能的一斑，要查看完整参考，运行man lsof命令或查看[在线版本](http://www.netadmintools.com/html/lsof.man.html)。希望本文对你有所助益，也随时[欢迎你的评论和指正](http://danielmiessler.com/connect/)。

### 资源

* lsof手册页：<http://www.netadmintools.com/html/lsof.man.html>

本文由 Daniel Miessler撰写，首次在他[博客](http://danielmiessler.com/study/lsof/)上贴出

---

via: <http://linuxaria.com/howto/linux-terminal-an-lsof-primer>

作者：[Daniel Miessler](https://plus.google.com/101727609700016666852/posts?rel=author) 译者：[GOLinux](https://github.com/GOLinux) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Linus Torvalds 对于向那些开发者说粗话而感到遗憾

Summary: 他没有提到任何人的名字，但是这像一次道歉  Linus Torvalds在前几天的欧洲LinuxCon和CloudOpen大会上做了讲话，这次大会由Linux基金会组织并且汇聚了开源世界的所有大佬。他回答了很多问题，也谈到了他在邮件发送清单里使用粗话的事情。 Linus Torvalds被认为是Linux内核的创造者和Linux最新的开发版本的维护者。他给我们几乎每个星期都带来一个新的内核RC 版本，并且会在邮件列表里面进行大量的讨论。在这些讨论中，他经常口不择言地用粗话大骂一些开发者们。 最近又出现了一个这种事情，就像我们在新闻里报道过的一样，他在做了一些苛

谈一个别的角度，貌似一生一世只要精通一门语言，也是有可能成功的，如Linus...

男神开始检讨了,那以后"so ,nvidia fuck you"之类的话是不是就听不到了?

说粗话是种习惯

就一个 kernel，一个 git 就已经改变这个世界很多东西了 //@cjacker: 除了kernel，还有git，sparse等等，sparse也有人在尝试做成compiler，这样级别的coder有点个性也很正常。

毛泽东都有错的时候

老乔不也是经常骂人吗？

这不是linus的风格

# Linus Torvalds 对于向那些开发者说粗话而感到遗憾

>
> 他没有提到任何人的名字，但是这像一次道歉
>
>
>

**Linus Torvalds在前几天的欧洲LinuxCon和CloudOpen大会上做了讲话，这次大会由Linux基金会组织并且汇聚了开源世界的所有大佬。他回答了很多问题，也谈到了他在邮件发送清单里使用粗话的事情。**

Linus Torvalds被认为是Linux内核的创造者和Linux最新的开发版本的维护者。他给我们几乎每个星期都带来一个新的内核RC 版本，并且会在邮件列表里面进行大量的讨论。在这些讨论中，他经常口不择言地用粗话大骂一些开发者们。

最近又出现了一个这种事情，就像我们在新闻里报道过的一样，他在做了一些苛刻的评论之后，[决定砍掉一些他认定的开发者的代码](http://news.softpedia.com/news/Linus-Torvalds-Block-All-Code-from-Systemd-Developer-for-the-Linux-Kernel-435714.shtml)。大家都知道Linus很招人厌烦，尤其是当内核开发者为了修复内核中的一些问题而破坏了用户空间。这次又发生了同样的事情，他基本上已经把那个家伙给气疯了。

### 这是他最接近道歉意味的一次谈话

以前Linus Torvalds从不真正去特地谈论这些事情，大家也习惯了。但是最近一个[systemd开发者谈到了在开源社区充斥着粗话，并且点名提到了Linus Torvalds](http://linux.cn/article-3978-1.html)。他不太习惯于道歉，所以这次在LinuxCon大会上的这次“认错”是他跨出的一大步。

<img src="content_image/album_201410_29_233714qly929xvr9ea7tts.jpg" alt="" title="">

主持人询问他在过去的23年里所做过的决定有什么最后悔的吗？

"从技术角度来看，没有哪个决定重要到这个程度...有个问题是慢慢地疏远了用户和开发者，而我却恰恰很擅长这个。我说了粗话，但是这不是我想要改变的某一个决定，这些粗话应该有所限制。"

"其中一个原因是我们有说粗话的传统，很多人觉得倒胃口，特别是当有强烈的意愿和推动力的技术人员要做一些技术上的进步时，你就需要用一些强烈的语言来表达你的意愿。" Linus Torvalds [如是说](http://www.linux.com/news/featured-blogs/200-libby-clark/791788-linus-torvalds-best-quotes-from-linuxcon-europe-2014) 。

他没提到任何人或者任何事件的名字，但很像是对于一位[名为Leonart Pottering的systemd开发者挑起事端](http://linux.cn/article-3978-1.html)的回应，看上去就是针对这起事件。

Linux内核3.18 RC1也在上周发布了，我们又有新东西玩了。

---

via: <http://news.softpedia.com/news/Linus-Torvalds-Regrets-Alienating-Developers-with-Strong-Language-462191.shtml>

作者：[Silviu Stahie](http://news.softpedia.com/editors/browse/silviu-stahie) 译者：[ZTinoZ](https://github.com/ZTinoZ) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


在 Linux 中加密邮件

Summary: 如果你一直在考虑如何加密电子邮件，那么在众多的邮件服务和邮件客户端中挑来挑去一定是件头痛的事情．可以考虑两种加密方法：SSL或TLS加密会保护发送到邮件服务器的登录名和密码．Gunpg是一款标准的、强大的Linux加密工具，可以加密和认证消息．如果你可以管理自己的GPG加密，并不考虑第三方工具，那它就够了，其它的我们将在稍后讨论． 即便加密了消息，你仍然会暴露在流量分析中，因为消息头部必须是明文形式．所以需要另一款比如Tor network来隐藏你在互联网上的足迹．我们会看看各种邮件服务和客户端，以及其中的利弊． 忘掉Web邮件

@我的印象笔记

i2p大法好

S


在基于RedHat与Debian的系统上安装Wine 最新的开发版本

Summary: Wine,一个在Linux平台上非常受欢迎并且强大的开源应用，有了它，我们可以在Linux平台上完美运行Windows应用与游戏。  在Linux上安装Wine（开发版本） WineHQ团队，近期宣布了一个新的开发版本Wine1.7.29。这个版本带来了诸多重要的特性，并且修复了44个bug。 Wine团队几乎每周都会发布新的开发版本，并且加入许多新特性以及修复漏洞。每个新版本都会支持新的应用与游戏（Windows），这使得Wine在那些想要在Linux下运行Windows应用的用户群体中很流行并且是不可缺少的。 根据变更日志，这个版本中添加了以下的关键特性：  在DirectWrite中

大学装ubuntu的时候就在折腾这东东。。。。心都伤透了

能wine的东西有限

qq啥时候给wine好？

@mark

MA

wine下

# 在基于RedHat与Debian的系统上安装Wine 最新的开发版本

**Wine**,一个在Linux平台上非常受欢迎并且强大的开源应用，有了它，我们可以在Linux平台上完美运行Windows应用与游戏。

<img src="content_image/album_201408_30_211803yk7vlgkajllblkug.png" alt="" title="">

*在Linux上安装Wine（开发版本）*

WineHQ团队，近期宣布了一个新的开发版本**Wine1.7.29**。这个版本带来了诸多重要的特性，并且修复了**44**个bug。

Wine团队几乎每周都会发布新的开发版本，并且加入许多新特性以及修复漏洞。每个新版本都会支持新的应用与游戏（Windows），这使得Wine在那些想要在Linux下运行Windows应用的用户群体中很流行并且是不可缺少的。

根据变更日志，这个版本中添加了以下的关键特性：

* 在DirectWrite中加入增强的外形塑造与BiDi（译者：bi-directional language）镜像。
* 升级了一些页面错误处理方式。
* 增加了更多的C运行时函数。
* 修复了大量的bug。

在官方的 [变更日志](http://www.winehq.org/announce/1.7.29) 中可以找到关于这个版本更多更深入的细节。

这篇文章指导你在基于**RedHat**与**Debian**的系统，如CentOS，Fedora，Ubuntu，Linux Mint以及其他的发行版中安装最新的开发版本**Wine 1.7.29**。

在Linux中安装 Wine 1.7.29 开发版本
--------------------------

遗憾的是，目前还没有官方的Wine仓库可以获取基于**RedHat**系统的版本，只能通过编译源码来安装。如果要这么做的话，我们先要安装一些开发包如gcc，flex，bison，libX11-devel freetype-devel　以及开发工具，等等。这些工具都是编译Wine源码所必须的。我们可以通过**YUM**命令来安装这些包。

RedHat，Fedora，CentOS
--------------------

```
# yum -y groupinstall 'Development Tools'
# yum -y install flex bison libX11-devel freetype-devel

```

然后，使用如下命令下载Wine最新的开发版本（**1.7.29**）以及解压源码包。

```
$ cd /tmp
$ wget http://citylan.dl.sourceforge.net/project/wine/Source/wine-1.7.29.tar.bz2
$ tar -xvf wine-1.7.29.tar.bz2 -C /tmp/

```

接下来，使用下列命令编译及安装Wine。

注：安装过程大概需要**15-20**分钟，这个时间由你的网络速度以及电脑硬件配置决定，在安装过程中需要**root**密码。

#### 32位系统

```
$cd wine-1.7.29/
$./tools/wineinstall

```

#### 64位系统

```
$ cd wine-1.7.29/
$ ./configure --enable-win64
$ make
# make install

```

### Ubuntu，Debian 与 Linux Mint

在**Ubuntu**系统下，你可以使用官方的**PPA**方便的安装最新的Wine开发版本。打开一个终端并使用sudo权限执行下列命令。

```
$ sudo add-apt-repository ppa:ubuntu-wine/ppa
$ sudo apt-get update
$ sudo apt-get install wine 1.7 winetricks

```

**注**：在写这篇文章时，只能获取**1.7.26**，在官方的仓库中还没有更新到最新版本，但是当仓库更新到**1.7.29**后，使用上面的指令可以安装最新的版本。（译者：为毛我看了版本号是1.6.2......）

安装成功后，你可以安装或运行任何windows应用或游戏了，示例如下：

```
$ wine notepad
$ wine notepad.exe
$ wine c:\\windows\\notepad.exe

```

**注**：切记，这是一个开发版本，请勿在生产系统上安装它。建议这个版本仅作测试用。

如果你需要最新的稳定版本，可以参考下列文章，它介绍了如何安装最新的稳定版本。

* [Install Wine 1.6.2 (Stable) in RHEL, CentOS and Fedora](http://www.tecmint.com/install-wine-in-rhel-centos-and-fedora/)
* [Install Wine 1.6.2 (Stable) in Debian, Ubuntu and Mint](http://www.tecmint.com/install-wine-on-ubuntu-and-linux-mint/)

### 参考链接

* [WineHQ Homepage](http://www.winehq.org/)

---

via: <http://www.tecmint.com/install-wine-in-linux/>

作者：[Ravi Saive](http://www.tecmint.com/author/admin/) 译者：[SPccman](https://github.com/SPccman) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Linux日志文件总管——logrotate

常用马克。

日志的定期管理，现在有盼头了 哈哈不错哦

这其实是老技术了，只是一些人不熟悉罢了。

非常详细，实用。多谢！

来自 - 辽宁大连大连理工大学 的 Chrome/Windows 用户

Mark

mark

Mark

感谢

mark

感谢分享

我们想要让旧日志文件以创建日期命名，这可以通过添加dateext常熟实现。// 参数hhh

# Linux日志文件总管——logrotate

日志文件包含了关于系统中发生的事件的有用信息，在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器，日志文件大小会增长极快，服务器会很快消耗磁盘空间，这成了个问题。除此之外，处理一个单个的庞大日志文件也常常是件十分棘手的事。

logrotate是个十分有用的工具，它可以自动对日志进行截断（或轮循）、压缩以及删除旧的日志文件。例如，你可以设置logrotate，让/var/log/foo日志文件每30天轮循，并删除超过6个月的日志。配置完后，logrotate的运作完全自动化，不必进行任何进一步的人为干预。另外，旧日志也可以通过电子邮件发送，不过该选项超出了本教程的讨论范围。

主流Linux发行版上都默认安装有logrotate包，如果出于某种原因，logrotate没有出现在里头，你可以使用apt-get或yum命令来安装。

在Debian或Ubuntu上：

```
# apt-get install logrotate cron

```

在Fedora，CentOS或RHEL上：

```
# yum install logrotate crontabs

```

logrotate的配置文件是/etc/logrotate.conf，通常不需要对它进行修改。日志文件的轮循设置在独立的配置文件中，它（们）放在/etc/logrotate.d/目录下。

### 样例一

在第一个样例中，我们将创建一个10MB的日志文件/var/log/log-file。我们将展示怎样使用logrotate来管理该日志文件。

我们从创建一个日志文件开始吧，然后在其中填入一个10MB的随机比特流数据。

```
# touch /var/log/log-file
# head -c 10M < /dev/urandom > /var/log/log-file

```

由于现在日志文件已经准备好，我们将配置logrotate来轮循该日志文件。让我们为该文件创建一个配置文件。

```
# vim /etc/logrotate.d/log-file

```

---

```
/var/log/log-file {
    monthly
    rotate 5
    compress
    delaycompress
    missingok
    notifempty
    create 644 root root
    postrotate
        /usr/bin/killall -HUP rsyslogd
    endscript
}

```

这里：

* **monthly**: 日志文件将按月轮循。其它可用值为‘daily’，‘weekly’或者‘yearly’。
* **rotate 5**: 一次将存储5个归档日志。对于第六个归档，时间最久的归档将被删除。
* **compress**: 在轮循任务完成后，已轮循的归档将使用gzip进行压缩。
* **delaycompress**: 总是与compress选项一起用，delaycompress选项指示logrotate不要将最近的归档压缩，压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用。
* **missingok**: 在日志轮循期间，任何错误将被忽略，例如“文件无法找到”之类的错误。
* **notifempty**: 如果日志文件为空，轮循不会进行。
* **create 644 root root**: 以指定的权限创建全新的日志文件，同时logrotate也会重命名原始日志文件。
* **postrotate/endscript**: 在所有其它指令完成后，postrotate和endscript里面指定的命令将被执行。在这种情况下，rsyslogd 进程将立即再次读取其配置并继续运行。

上面的模板是通用的，而配置参数则根据你的需求进行调整，不是所有的参数都是必要的。

### 样例二

在本例中，我们只想要轮循一个日志文件，然而日志文件大小可以增长到50MB。

```
# vim /etc/logrotate.d/log-file

```

---

```
/var/log/log-file {
    size=50M
    rotate 5
    create 644 root root
    postrotate
        /usr/bin/killall -HUP rsyslogd
    endscript
}

```

### 样例三

我们想要让旧日志文件以创建日期命名，这可以通过添加dateext常熟实现。

```
# vim /etc/logrotate.d/log-file

```

---

```
/var/log/log-file {
    monthly
    rotate 5
    dateext
    create 644 root root
    postrotate
        /usr/bin/killall -HUP rsyslogd
    endscript
}

```

这将让归档文件在它们的文件名中包含日期信息。

### 排障

这里提供了一些logrotate设置的排障提示。

#### 1. 手动运行logrotate

**logrotate**可以在任何时候从命令行手动调用。

要调用为/etc/lograte.d/下配置的所有日志调用**logrotate**：

```
# logrotate /etc/logrotate.conf

```

要为某个特定的配置调用logrotate：

```
# logrotate /etc/logrotate.d/log-file

```

#### 2. 演练

排障过程中的最佳选择是使用‘-d’选项以预演方式运行logrotate。要进行验证，不用实际轮循任何日志文件，可以模拟演练日志轮循并显示其输出。

```
# logrotate -d /etc/logrotate.d/log-file

```

正如我们从上面的输出结果可以看到的，logrotate判断该轮循是不必要的。如果文件的时间小于一天，这就会发生了。

#### 3. 强制轮循

即使轮循条件没有满足，我们也可以通过使用‘-f’选项来强制logrotate轮循日志文件，‘-v’参数提供了详细的输出。

```
# logrotate -vf /etc/logrotate.d/log-file

```

---

```
reading config file /etc/logrotate.d/log-file
reading config info for /var/log/log-file

Handling 1 logs

rotating pattern: /var/log/log-file  forced from command line (5 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/log-file
  log needs rotating
rotating log /var/log/log-file, log->rotateCount is 5
dateext suffix '-20140916'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
renaming /var/log/log-file.5.gz to /var/log/log-file.6.gz (rotatecount 5, logstart 1, i 5),
old log /var/log/log-file.5.gz does not exist
renaming /var/log/log-file.4.gz to /var/log/log-file.5.gz (rotatecount 5, logstart 1, i 4),
old log /var/log/log-file.4.gz does not exist
. . .
renaming /var/log/log-file.0.gz to /var/log/log-file.1.gz (rotatecount 5, logstart 1, i 0),
old log /var/log/log-file.0.gz does not exist
log /var/log/log-file.6.gz doesn't exist -- won't try to dispose of it
renaming /var/log/log-file to /var/log/log-file.1
creating new /var/log/log-file mode = 0644 uid = 0 gid = 0
running postrotate script
compressing log with: /bin/gzip

```

#### 4. Logrotate的记录日志

logrotate自身的日志通常存放于/var/lib/logrotate/status目录。如果处于排障目的，我们想要logrotate记录到任何指定的文件，我们可以指定像下面这样从命令行指定。

```
# logrotate -vf –s /var/log/logrotate-status /etc/logrotate.d/log-file

```

#### 5. Logrotate定时任务

logrotate需要的**cron**任务应该在安装时就自动创建了，我把cron文件的内容贴出来，以供大家参考。

```
# cat /etc/cron.daily/logrotate

```

---

```
#!/bin/sh

# Clean non existent log file entries from status file
cd /var/lib/logrotate
test -e status || touch status
head -1 status > status.clean
sed 's/"//g' status | while read logfile date
do
    [ -e "$logfile" ] && echo "\"$logfile\" $date"
done >> status.clean
mv status.clean status

test -x /usr/sbin/logrotate || exit 0
/usr/sbin/logrotate /etc/logrotate.conf

```

小结一下，logrotate工具对于防止因庞大的日志文件而耗尽存储空间是十分有用的。配置完毕后，进程是全自动的，可以长时间在不需要人为干预下运行。本教程重点关注几个使用logrotate的几个基本样例，你也可以定制它以满足你的需求。

希望本文对你有所帮助。

---

via: <http://xmodulo.com/2014/09/logrotate-manage-log-files-linux.html>

作者：[Sarmed Rahman](http://xmodulo.com/author/sarmed) 译者：[GOLinux](https://github.com/GOLinux) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Linux 有问必答：在Linux桌面上创建视频DVD

Summary: 问题：我想要从MP4电影文件创建一张视频DVD，在Linux桌面环境中有没有我可以用来创建视频DVD的DVD创作工具？  DeVeDe是一个开源（GPLv3）DVD创作软件，它允许你从任何数量的视频文件创建视频DVD、VCD、SVCD或者DivX。DeVeDe依赖于其它如Mplayer、FFMpeg、MEncoder、DVDAuthor、VCDImager以及MKisofs之类的软件来进行格式转换。就这点而论，它支持各种各样的主流输入视频/音频格式（如.mp4，.avi，.mpg，.mkv）。你可以在PAL和NTSC视频格式之间选择，也可以田间菜单或字幕。 如果你想要保留或者分发你的假期、家庭或者娱乐影音副本，DeVeDe

Repost

# Linux 有问必答：在Linux桌面上创建视频DVD

>
> **问题**：我想要从MP4电影文件创建一张视频DVD，在Linux桌面环境中有没有我可以用来创建视频DVD的DVD创作工具？
>
>
>

[DeVeDe](http://www.rastersoft.com/programas/devede.html)是一个开源（GPLv3）DVD创作软件，它允许你从任何数量的视频文件创建视频DVD、VCD、SVCD或者DivX。DeVeDe依赖于其它如Mplayer、FFMpeg、MEncoder、DVDAuthor、VCDImager以及MKisofs之类的软件来进行格式转换。就这点而论，它支持各种各样的主流输入视频/音频格式（如.mp4，.avi，.mpg，.mkv）。你可以在PAL和NTSC视频格式之间选择，也可以田间菜单或字幕。

如果你想要保留或者分发你的假期、家庭或者娱乐影音副本，DeVeDe可以派上用场。

### 安装Devede

#### Debian，Ubuntu及其衍生版：

```
# aptitude install devede

```

#### RHEL或者CentOS：

启用[EPEL](http://xmodulo.com/how-to-set-up-epel-repository-on-centos.html)和[Nux Dextop](http://ask.xmodulo.com/enable-nux-dextop-repository-centos-rhel.html)仓库，然后运行：

```
# yum install devede

```

#### Fedora：

启用[RPM Fusion](http://xmodulo.com/how-to-install-rpm-fusion-on-fedora.html)仓库，然后运行：

```
# yum install devede

```

### 使用DeVeDe创建视频DVD

启动DeVeDe并从菜单选择视频DVD。

在下一屏中，DeVeDe会自动添加一个标题到收藏。你可以编辑说明文字（1），添加一个文件（2），然后添加另一个标题。根据需要，可重复该操作过程。

在当前标题结束后，“标题属性”对话框允许你在6个要实施的行为之间选择。完成后，点击确定：

“文件属性”对话框用于添加文件到当前标题。点击文件夹图标（右上角），然后浏览你的计算机以选择想要的文件。你也可以通过点击副标题对话框右边的添加按钮添加一个副标题文件。选择好视频文件（又或者是副标题文件）后，点击右下角的确定。

你可以添加你所需的足够多的文件（只受DVD容量的限制）。

接下来，编辑菜单选项。你可以选择一个背景图片和声音文件，在主菜单显示时播放（在DVD插入播放器时就会出现）。

最后，点击菜单选项对话框内的确定回到主光盘结构，在那里你需要点击下一步来开始以视频DVD结构创建一个.iso映像。

在DeVeDe创建完视频DVD后，下面这个对话框将呈现在我们眼前：

现在，我们可以刻录.iso文件（该文件包含有视频DVD）到光盘了，你可以使用[growisofs](http://ask.xmodulo.com/burn-iso-nrg-image-dvd-command-line.html)或其它DVD刻录工具。

---

via: <http://ask.xmodulo.com/create-video-dvd-linux-desktop.html>

译者：[GOLinux](https://github.com/GOLinux) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


终端中的乐趣：6个有趣的Linux命令行工具

Summary: 之前, 我们展示了一些有关有趣的 Linux 命令行命令的文章, 这些文章告诉我们, Linux 并不像看起来那样复杂, 如果我们知道如何使用的话, 反而会非常有趣. Linux 命令行可以简洁而完美地执行一些复杂的任务, 并且十分有趣.  Linux命令及Linux终端的20个趣事 Linux终端的乐趣之把玩字词计数  前者包含了20个有趣的 Linux 命令/脚本(和子命令), 得到了读者的高度赞扬. 而另一篇文章虽然没有之前那篇文章那么受欢迎，包含了一些命令/脚本和改进，让你能够玩儿转文本文件、单词和字符串.  这篇文章介绍了一些新的有趣命令和单行脚本，一定会让你

好上去不错哦～

果然有趣

马克

不错！！

呵呵

很有趣！

运行sl试试

很喜欢 aview命令

hahaha

cmatrix

# 终端中的乐趣：6个有趣的Linux命令行工具

之前, 我们展示了一些有关有趣的 Linux 命令行命令的文章, 这些文章告诉我们, Linux 并不像看起来那样复杂, 如果我们知道如何使用的话, 反而会非常有趣. Linux 命令行可以简洁而完美地执行一些复杂的任务, 并且十分有趣.

* [Linux命令及Linux终端的20个趣事](http://linux.cn/article-2831-1.html)
* [Linux终端的乐趣之把玩字词计数](http://linux.cn/article-4088-1.html)

前者包含了20个有趣的 Linux 命令/脚本(和子命令), 得到了读者的高度赞扬. 而另一篇文章虽然没有之前那篇文章那么受欢迎，包含了一些命令/脚本和改进，让你能够玩儿转文本文件、单词和字符串.

这篇文章介绍了一些新的有趣命令和单行脚本，一定会让你感到欣喜.

### 1. pv 命令

你也许曾经看到过电影里的模拟字幕, 它们好像是被实时敲打出来的. 如果我么能在终端里实现这样的效果, 那不是很好?

这是可以做到的. 我们可以安装通过 '**apt**' 或者 '**yum**' 工具在 Linux 系统上安装 '**pv**' 命令. 安装命令如下.

```
# yum install pv            [在基于 RedHat 的系统上]

# sudo apt-get install pv           [在基于 Debian 的系统上]

```

'**pv**' 命令安装成功之后, 我们尝试运行下面的单行命令在终端查看实时文字输出的效果.

```
$ echo "Tecmint[dot]com is a community of Linux Nerds and Geeks" | pv -qL 10

```

*正在运行的 pv 命令*

**注意**: '**q**' 选项表示'安静'，没有其他输出信息, '**L**' 选项表示每秒转化的字节数上限. 调整数字的值(必须是整数)可以以另外的方向显示文字效果。

### 2. toilet 命令

用单行脚本命令 '**toilet**' 在终端里显示一个添加边框的文本怎么样呢？同样, 你必须保证 '**toilet**' 已经安装在你的电脑上. 如果没有的话, 请使用 apt 或 yum 安装. (译者注: 'toilet' 并不在 Fedora 的官方仓库里, 你可以从 github 上下载源代码来安装)

```
$ while true; do echo “$(date | toilet -f term -F border –Tecmint)”; sleep 1; done

```

*正在运行的 toilet 命令*

**注意**: 上面的脚本需要使用 **ctrl+z** 键来暂停.

### 3. rig 命令

这个命令每次生成一个随机的身份信息和地址. 要运行这个命令, 你需要用 apt 或 yum 安装 '**rig**'. (译者注: 'rig' 不在 Fedora 的官方仓库中, 我只在 rpmseek 上找到了 Ubuntu 的 deb 包, 可以使用它来安装.)

```
# rig

```

*正在运行的 rig 命令*

### 4. aview 命令

你觉得在终端用 ASCII 格式显示图片怎么样? 我们必须用 apt 或 yum 安装软件包 '**aview**'. (译者注: 'avieww' 不在 Fedora 的官方仓库中, 可以从 aview 的[项目主页](http://aa-project.sourceforge.net/aview/)上下载源代码来安装. ) 在当前工作目录下有一个名为 '**elephant.jpg**' 的图片, 我想用 ASCII 模式在终端查看.

```
$ asciiview elephant.jpg -driver curses

```

*正在运行的 aview 命令*

### 5. xeyes 命令

在上一篇文章中, 我们介绍了 '**oneko**' 命令, 它可以显示一个追随鼠标指针运动的小老鼠. '**xeyes**' 是一个类似的图形程序, 当你运行它, 你可以看见小怪物的两个眼球追随你的鼠标运动.

```
$ xeyes

```

*正在运行的 xeyes 命令*

### 6. cowsay 命令

你是否还记得上一次我们介绍的这个命令? 它可以显示一段预先确定的文本和一个字符构成的奶牛. 如果你想使用其它动物来代替奶牛怎么办? 查看可用的动物列表:

```
$ cowsay -l

```

如何用ASCII描绘蛇吞象？

```
$ cowsay -f elephant-in-snake Tecmint is Best

```

*正在运行的 cowsay 命令*

换作山羊又会怎样？

```
$ cowsay -f gnu Tecmint is Best

```

*正在运行的 山羊cowsay 命令*

今天就到这里吧. 我将带着另一篇有趣的文章回来. 不要忘记在下面留下您的评论.

---

via: <http://www.tecmint.com/linux-funny-commands/>

作者：[Avishek Kumar](http://www.tecmint.com/author/avishek/) 译者：[wangjiezhe](https://github.com/wangjiezhe) 校对：[Caroline](https://github.com/carolinewuyan)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


wget 命令实例

Summary: wget是Linux/Unix命令行文件下载器，它是下载网站上文件的免费的非交互下载工具，它支持HTTP、HTTPS和FTP协议，也支持通过HTTP代理检索。Wget是非交互的，这就是说它可以在用户没有登录到系统时在后台工作。  在本帖中，我们将讨论wget命令的一些不同使用实例。 实例1 ：下载单个文件 # wget http://mirror.nbrc.ac.in/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso  该命令会下载CentOS 7 ISO文件到用户当前工作目录中。 实例2：续传分段下载文件 总有那么一些场景，当我们开始下载一个大文件时，中途互联网却断开了。那

还是很有用的，谢谢分享。

@我的印象笔记

Repost

转发微博.

@我的印象笔记

@我的印象笔记

防盗链的怎么破？下载地址老变的

防盗链的怎么破？下载地址老变的

windows？

来自 - 广东中山 的 Firefox 用户

wget 显然是 Linux 下的，当然，有 windows 的移植版本——挺好用

瀑布汗：“6 小时前 来自柬埔寨的 Wget 1.17|GNU/Linux 用户 赞了您的评论”


Linux 下载

Summary: 经常有新接触 Linux 的同学问，Linux 从哪里下载啊？这种问题，对于熟手来说要么不屑一提，要么就引来了各种 Linux 发行版之争，让初学者无所适从。 其实，对于新接触 Linux 的人来说，很多人都不知道 Linux 原来不是一个！而是有林林总总上千种发行版，甚至你乐意的话，都可以制作发行自己的发行版。而各种不同的发行版也各有特色，还层出不穷的推出新版本。这简直让初学者如置身森林，茫然不知所措~  所以，这里我整理了一份最新、最热的 Linux 发行版的下载链接，可以让初学者能够快速领略到 Linux 的风采。 简单的来说，Linux 是以 Li

转发微博.

很不错。[bm跳绳]

[doge]居然这配图

说好的openSUSE呢。。。。

回复@alim0x:哈哈，不错吧~谢谢夸奖：》

回复@eve_ouyang:我等 openSUSE 这两天新版本出来再加上呢。

[酷]

linus

产自芬兰

[肥皂]还义愤填膺的想说，我openSUSE咋不在里面。。。。

新手还是首推 deepin

居然没有SUSE。。。

好吧，我赶紧得加上~~

很实用的东西，以后不用到处找了。赞

建议加上 Arch Linux ，我以前是 CentOS 的用户， 5、6系列都用过，时间差不多有两年。从 7 发布升级了 Gnome 桌面之后实在不习惯，转投 Arch 旗下，感觉这是个优秀的发行版。作为桌面使用是不错的选择，极度纯净、深层次定制，相对其他几个主流发行版而言更能体现“自由”的特点！由于其设计理念相对比较激进，软件的选用比较前卫，因此服务器应用不建议采用。<br />
下载地址：https://www.archlinux.org/download/

我也认同 Arch 的优秀，甚至不说别的，Arch 的 WIKI 似乎是几个 Linux 发行版里面搞得最专业的一个吧。

不过，这篇主要还是介绍给初学者的，所以，Arch 这种，其实并不太适合，而且比较小众一些。

我倒是觉得应该给 Arch 在这里做个专页，和其他几个发行版一样。

楼主的网站很实用。 在linux常见问题上，如果有一个类似 http://nixCraft.biz  这种解决方法分类汇总的网站，对linux入门的同学是好消息了。

这里推荐 http://tech-life.co 网站，目的是类似 http://nixCraft.biz  的QA集合，目前做的还不专业，但是也在尝试找到志同道合的朋友 做下 linux专题技术内容。

嗯，其实这些就是点滴的辛苦工夫积累。

楼主好人，新手刚入，正好提供了大量信息。

哈哈哈，被发了好人卡~~

不会安装  好郁闷啊

很实用，赞楼主

楼主好人

赞美楼主

真是好人

可以使用虚拟光驱安装吗？

当然可以

你是指 VMWARE 这样软件中？ISO 是可以作为虚拟光驱使用的。

楼主请问可以分享一个安装教程吗？我会装7用U盘，这个可以吗。

可以的，你需要找个制作 U 盘启动盘的教程即可。我以后也会写一些如何选择发行版和安装的指导。

我在想要不要在淘宝开店，卖linux安装u盘啊？

哈哈哈，当年袁萌老师就这么干过。。

我怎么才能被邀请注册？

去群里找群主要邀请码，或者，直接用 qq、微博关联注册。

卖u盘？那多麻烦，整一次性光盘吧

想问一下，要部署Nagios 这个东西，哪个版本的linux好啊？？

請問 我沒接觸過linux 我想用來玩一下這個系統版本下的遊戲 應該使用什麼版本好呢?

玩游戏的话，其实不是特别限定版本，但是倒真没听说有专门为游戏优化的发行版。建议你可用Ubuntu和Fedora 试试。

两头雾水，WIN8越来越迷糊了，漏洞太多，也许是报复大中华对它的拒绝吧？得把 Linux 整明白才行啊。

努力学习中~~赞一个

好全啊 ，赞一个

很多开源的东西到了中国就慢慢串味了，能不能不那么财迷。

有没有linux kali？？？

没有，用 kali 的很少，我们这里只是列出了普及性的 Linux 发行版。

OpenSuse安装从优盘启动后找不到安装源是什么意思

谢谢楼主分享，赞一个

谢谢楼主

14 10版本是不是不稳定啊，今天突然启动器和上边的都没有了，只有壁纸和鼠标，试了无数的教程，无法解决

Ctrl + Alt + F7 sudo apt-get update && sudo apt-get dist-upgrade

Centos6 安装的话只需要下载DVD1就够了吗?

建议都下载了，然后将 ISO 放到服务器上，这样你可以建立本地的 yum 库。当然如果你只是测试着玩，那无所谓。

感谢楼主分享，赞一个，努力学习中...

Ubuntu下载怎么安装，可以给一个操作循序吗？ 我是把ISO直接改成ZIP然后解压安装的，也没有进行磁盘分区什么的，结果进去之后提示磁盘卷什么空间...有点什么问题 ，可以告诉我该怎么解决啊

赞一个，之前一直用Ubuntu12.04，现在改用Ubuntu14.04 lts

ISO 不是让你来解压的，你需要将它刻录成光盘（是可引导的），或者在虚拟机中安装的话，可以作为光驱挂载，然后相当于用光驱启动进行安装。

不要deepin 烫得要命 电脑会烧的

是不是说要刻录到光盘后才能安装？

如果你就装到虚拟机，完全不用刻录；如果是用远程 FTP 模式安装，也不用。

配图竟然是萤火之森，你们中间有个动漫宅……

配图是我选的——但是我不知道这个动漫。。。。我是觉得这个比较匹配小白的心态。:D

楼主你好，我下的是14.04.2 LTS<br />
Intel & AMD/ 兼容 PC 64 位的linux，用虚拟机安装的，进去后输入用户名和密码都通过了，输入init5和startx都进不了图形界面，请问是因为官方版没有图形界面么？

server 版本？那是默认没图形界面的。如果是桌面版本，默认就是图形界面的。

怎么没苹果系统？？？

你没搞错吧。。。苹果。。。。

OS X不是Linux，是UNIX！

谢谢楼主

flichote [Internet Explorer 9.0|Windows 7]

很全面！

谢谢，如果还有blfs的中文翻译版就更好了！！

用光驱刻录ultraiso软件，将ISO刻录到U盘就可以安装了，查百度ubuntu的安装方法

来自新疆昌吉的 Internet Explorer 8.0|Windows 7 用户

我强烈建议把链接改成国内镜像源，比如aliyun mirror，速度较快。

为什么ubuntu15.04安装程序写的版本是14.10？？到底是什么版本啊

看来显然是疏忽了，你可以给他们提 bug

也不是UNIX，Mac OS X是源于FreeBSD, FreeBSD是比Linux更早的类UNIX系统。

用优盘安装linux提示无法安装busybox-initramfs   换了几个系统都一样的

话说服务器版本的,不能用图形桌面?

可以，只是没有必要

新手才上路，正在下载Ubuntn，vb虚拟机

vb虚拟机呵呵呵

OS X 是UNIX，早已通过UNIX认证。

观察的真仔细

哈哈，其实我没看过，我就是有点恶搞——这难道不像是新手小白向伟岸的大神求助么~:D<br />
当然——现在我已经换了图啦~

下载了CentOS 6 (Intel & AMD/ 兼容 PC 32 位 ISO 镜像，适用于 32-bit 位 PC ，DVD 1，DVD 2)，安装到一半时竟然提示换光盘，但此时无论是换为DVD1还时DVD2均无法继续安装下去。难道这些所谓的发行版软件没有测试过？

mzsoft [Internet Explorer 11.0|Windows 7]

C6 都安装多久了，不可能有这样的问题。你看看你刻录的光盘是不是正确（校验一下），是不是32位和64位混了。

整理的很好，不错，新手都可以学学

就是有些命令不知道

确实，刚开始学习使用时会纠结于哪个版本，一时接受不了这么多选择，其实任选一个就好，学会一个是一个。

Linux 下载

新手入门，给了很多指导建议，谢谢

感谢感谢~~连新手都算不上的路过。。。目前试了几乎好多好多常被人推荐的版本，总感觉有莫名的问题和不习惯。

新人路过，谢谢指导

居然没有Debian,不科学

为啥下载不了呀

中华小学徒 [Microsoft Edge 14.14393|Windows 10]

其实小编主要还是抛砖引玉,给新手一个方向,正儿八经下系统还是去官网吧,这里的连接虽然都是官方镜像,毕竟不会实时更新,没必要这里下.

Ubuntu Server 16.04.1 LTS 。是啊，官网已经又发行2个版本了。

gnome应该在地图中有个位置

嗯，人家就是基本于openbsd的

你这里的链接已经失效了 新帖在哪

where is red hat?

请问有SCO.UNIX系统吗？？发个链接我咯

下载地址呢？？？

RedHat 红帽

steven_zdg988 [QQ Browser 9.6|Windows 7]

请您再试试，也许是网络运营商的问题哦。

我想请教一下，如果我不想把时间浪费在记住一个又一个繁琐的命令上面，有合适的Linux系统吗？

为什么没有列出我最爱的debian>????

怎么下载？？？？？？

ubantu就是基于debian呐~

ubantu就是基于debian呐~

推荐一下那个版本最好

来自北京的 Microsoft Edge 17.17134|Windows 10 用户

推荐一下那个版本最好

推荐一下那个版本最好

其实我觉得deepin挺好的，对新手也挺友好。大家不妨去试一试deepin

？？？？最好的不是linux 6.5嘛

怎么下载

我需要一个配置开发环境的linux系统,你们有什么可以推荐的

能安装到虚拟机里面的吗？

香，好资源，收藏！！

可以

应该可以

应该可以

应该可以

应该可以

请问，我把UBUNTU拷贝到U盘里，然后U盘启动，进入UBUNTU系统，再按照它桌面安装UBUNTU。装到另一个U盘里，每次装到大半以后都提示：“写错误，可能是光盘脏，或者硬盘有错误”，可是我换了2个U盘，换了笔记本试，还是这个提示，-------到底是哪里出问题了呢？

试试用UltraISO把它刻录到U盘里试试

Deepin和UOS的系统还不错，至少比较熟悉，相比直接使用原始Linux，还是要好用不少的

哈哈哈！

居然没有我家 Arch Linux，哭唧唧

又是一个找虚拟机镜像的

centos 6 过期了

过期了，进不去

怎么打开啊

centos error 404

404了呀家人们

家人们，给我转2白块钱

deepin

# Linux 下载

经常有新接触 Linux 的同学问，“Linux 从哪里下载啊？”这种问题，对于熟手来说要么不屑一提，要么就引来了各种 Linux 发行版之争，让初学者无所适从。

其实，对于新接触 Linux 的人来说，很多人都不知道 “Linux” 原来不是一个！而是有林林总总上千种发行版，甚至你乐意的话，都可以制作发行自己的发行版。而各种不同的发行版也各有特色，还层出不穷的推出新版本。这简直让初学者如置身森林，茫然不知所措~

<img src="content_image/album_201306_06_130251ttfb7ogcpzkobbwc.jpg" alt="" title="">

所以，这里我整理了一份最新、最热的 Linux 发行版的下载链接，可以让初学者能够快速领略到 Linux 的风采。

简单的来说，Linux 是以 Linux <ruby> 内核 <rp>  （ </rp> <rt>  Kernel </rt> <rp>  ） </rp></ruby>为基础，集成了各种开源软件、和/或商业软件的一个操作系统。这个将各个组件整合成一个完整的操作系统过程就称之为“制作发行版”，因此，不同的组织/公司和个人就可以制作各具特色的、可以安装或运行的操作系统的软件包——通常是 ISO 镜像——可以刻录到光盘、写入到 USB 启动盘、或者直接通过 ISO 文件来安装/运行。

一般来说，初接触 Linux，从桌面版开始比较好，几个主流的发行版，都可以尝试一下，如 Ubuntu、Debian、Fedora、CentOS、openSUSE 等；而 Linux 的一个重要领域——服务器领域——可以在你对 Linux 有了初步认识之后，再来学习和了解。当然，往往一个 Linux 发行版会同时发布桌面版和服务器版，其使用习惯也相近，所以熟悉桌面版之后，对使用和维护其相应的服务器版本会更容易一些。

好了，言归正传，您可以从下面挑个顺眼的下载安装试试了，建议你各种都体验下，最后你会选定一个适合你的！

### [Ubuntu](http://linux.cn/article-3238-1.html)

是当前最流行的 Linux 发行版之一，是 Debian Linux 的主要衍生版本，用户众多，以桌面系统所著称，适于刚刚接触 Linux 的初学者。

对于新手，安装 Ubuntu 可以参考《[新手指南： 手把手教你安装 Ubuntu 和 Fedora](/article-5893-1.html)》。

#### 16.04.2 LTS

桌面版本可以从此下载：<http://www.ubuntu.com/download/desktop>

* Intel & AMD/ 兼容 PC 64 位 [点此下载](http://releases.ubuntu.com/16.04.2/ubuntu-16.04.2-desktop-amd64.iso)
（MD5: 1400884cec8e40a1a876b2678f81494b）
* Intel & AMD/ 兼容 PC 32 位 [点此下载](http://releases.ubuntu.com/16.04.2/ubuntu-16.04.2-desktop-i386.iso)
（MD5: e14b5f2177b00dac3edc94b0e806f857）

服务器版本可以从此下载：<http://www.ubuntu.com/download/server>

* Intel & AMD/ 兼容 PC 64 位 [点此下载](http://releases.ubuntu.com/16.04.2/ubuntu-16.04.2-server-amd64.iso)
（MD5: 2bce60d18248df9980612619ff0b34e6）
* Intel & AMD/ 兼容 PC 32 位 [点此下载](http://releases.ubuntu.com/16.04.2/ubuntu-16.04.2-server-i386.iso)
（MD5: c32ba78bf6bdae6627b1e717d33eb7ae）

#### 17.04

桌面版本可以从此下载：<http://www.ubuntu.com/download/desktop>

* Intel & AMD/ 兼容 PC 64 位 [点此下载](http://releases.ubuntu.com/17.04/ubuntu-17.04-desktop-amd64.iso)
（MD5: 18cc54af55d7ca931bbb8588e8d9c1bd）
* Intel & AMD/ 兼容 PC 32 位 [点此下载](http://releases.ubuntu.com/17.04/ubuntu-17.04-desktop-i386.iso)
（MD5: eb6c4ea889f5ab44f77c9d1cde6a8818）

服务器版本可以从此下载：<http://www.ubuntu.com/download/server>

* Intel & AMD/ 兼容 PC 64 位 [点此下载](http://releases.ubuntu.com/17.04/ubuntu-17.04-server-amd64.iso)
（MD5: 4672ce371fb3c1170a9e71bc4b2810b9）
* Intel & AMD/ 兼容 PC 32 位 [点此下载](http://releases.ubuntu.com/17.04/ubuntu-17.04-server-i386.iso)
（MD5: 8e82de7efa4b1bf159b4be325e952eb1）

### [Fedora](http://linux.cn/article-3237-1.html)

在 Red Hat Linux 终止发布后，由 RedHat 推出的替代品，在新技术方面跟进较快。是 RedHat 系列的典型代表，和 CentOS / RHEL 源出一脉，如果将来使用 CentOS 作为服务器，使用 Fedora 作为个人桌面使用比较习惯。

对于新手，安装 Fedora 可以参考《[新手指南： 手把手教你安装 Ubuntu 和 Fedora](/article-5893-1.html)》。

#### Fedora 25 Workstation Live

* Intel & AMD/ 兼容 PC 32，适用于 32-bit 位 PC [点此下载](https://download.fedoraproject.org/pub/fedora/linux/releases/25/Workstation/i386/iso/Fedora-Workstation-Live-i386-25-1.3.iso)
* Intel & AMD/ 兼容 PC 64，适用于 64-bit 位 PC [点此下载](https://download.fedoraproject.org/pub/fedora/linux/releases/25/Workstation/i386/iso/Fedora-Workstation-Live-i386-25-1.3.iso)

#### Fedora 25 Server

* Intel & AMD/ 兼容 PC 32 位，适用于 32-bit 位 PC [点此下载](https://download.fedoraproject.org/pub/fedora/linux/releases/25/Server/i386/iso/Fedora-Server-dvd-i386-25-1.3.iso)
* Intel & AMD/ 兼容 PC 64 位，适用于 64-bit 位 PC [点此下载](https://download.fedoraproject.org/pub/fedora/linux/releases/25/Server/x86_64/iso/Fedora-Server-dvd-x86_64-25-1.3.iso)

### [Linux Mint](http://linux.cn/article-3260-1.html)

基于 Ubuntu 的一个衍生版，以高效易用著称。

Cinnamon 桌面

* Intel & AMD/ 兼容 PC 32 位 1.4GB ISO 镜像，适用于 32-bit 位 PC [点此下载](http://mirrors.ustc.edu.cn/linuxmint-cd//stable/17.3/linuxmint-17.3-cinnamon-32bit.iso)
（MD5: 6e7f7e03500747c6c3bfece2c9c8394f）
* Intel & AMD/ 兼容 PC 64 位 1.5GB ISO 镜像，适用于 64-bit 位 PC [点此下载](http://mirrors.ustc.edu.cn/linuxmint-cd//stable/17.3/linuxmint-17.3-cinnamon-64bit.iso)
（MD5: e71a2aad8b58605e906dbea444dc4983）

MATE 桌面

* Intel & AMD/ 兼容 PC 32 位 1.4GB ISO 镜像，适用于 32-bit 位 PC [点此下载](http://mirrors.ustc.edu.cn/linuxmint-cd//stable/17.3/linuxmint-17.3-mate-32bit.iso)
（MD5: ad46900208e69a952b3c4e1bc7f941e5）
* Intel & AMD/ 兼容 PC 64 位 1.6GB ISO 镜像，适用于 64-bit 位 PC [点此下载](http://mirrors.ustc.edu.cn/linuxmint-cd//stable/17.3/linuxmint-17.3-mate-64bit.iso)
（MD5: d3c0ef9d0c0c93ab7109fa2ef1db0c28）

### [Deepin](http://linux.cn/article-3441-1.html)

国内发展最好的 Linux 发行版，主要关注在桌面使用方面，在外观、易用性、本土化应用方面值得称道。

* Intel & AMD/ 兼容 PC 32 位 4.4GB ISO 镜像，适用于 32-bit 位 PC [点此下载](http://cdimage.linuxdeepin.com/releases/2014.3/deepin_2014.3_i386.iso)
（MD5: e9b6145ba9c0d21632936361dbe74a18）
* Intel & AMD/ 兼容 PC 64 位 4.3GB ISO 镜像，适用于 64-bit 位 PC [点此下载](http://cdimage.linuxdeepin.com/releases/2014.3/deepin_2014.3_amd64.iso)
（MD5: 036dda2007b0bf325b97ab3e0fe4a85a）

### [openSUSE](http://linux.cn/article-4143-1.html)

Novell 所开发的 Linux 桌面发行版，继承于 Slackware，有很大技术创新，如 YaST。其企业版 SLES 和 RHEL/CentOS 、Ubuntu 共同占据了 Linux 服务器市场的较大份额。

#### DVD ISO

* Intel & AMD/ 兼容 PC 32 位 4.7GB ISO 镜像，适用于 32-bit 位 PC [点此下载](http://download.opensuse.org/distribution/13.2/iso/openSUSE-13.2-DVD-i586.iso)
（MD5: 43869f9b9b944adc1b210649d3730980）
* Intel & AMD/ 兼容 PC 64 位 4.7GB ISO 镜像，适用于 64-bit 位 PC [点此下载](http://download.opensuse.org/distribution/13.2/iso/openSUSE-13.2-DVD-x86_64.iso)
（MD5: 350b8cb014a4e342cc9a7cc9df891b99）

### [CentOS 7](http://linux.cn/article-3351-1.html)

RedHat 的 Linux 企业版 RHEL 的社区重新打包版本，与 RHEL 相比，只是缺少 RedHat 的商业支持而已。主要用于服务器方面。CentOS 7 采用了一些新的技术，因此和 CentOS 6 有较大差异。

#### DVD ISO

* Intel & AMD/ 兼容 PC 64 位 4GB ISO 镜像，适用于 64-bit 位 PC ，[点此下载](http://buildlogs.centos.org/rolling/7/isos/x86_64/CentOS-7-x86_64-DVD.iso)（SHA256： c455ee948e872ad2194bdddd39045b83634e8613249182b88f549bb2319d97eb）

#### Everything ISO

* Intel & AMD/ 兼容 PC 64 位 8GB ISO 镜像，适用于 64-bit 位 PC ，[点此下载](http://buildlogs.centos.org/rolling/7/isos/x86_64/CentOS-7-x86_64-Everything.iso)
（SHA256： af4969ebbdc479d330de97c5bfbb37eedc64c369f009cb15a97f9553ba441c88）

### [CentOS 6](http://linux.cn/article-3351-1.html)

由于 CentOS 7 采用了一系列 systemd 相关的技术，因此还有相当多的产品环境的 Linux 服务器依旧使用 CentOS 6。

* Intel & AMD/ 兼容 PC 64 位 ISO 镜像，适用于 64-bit 位 PC ，[DVD 1](http://mirrors.aliyun.com/centos/6.8/isos/x86_64/CentOS-6.8-x86_64-bin-DVD1.iso)，[DVD 2](http://mirrors.aliyun.com/centos/6.8/isos/x86_64/CentOS-6.8-x86_64-bin-DVD2.iso)
（SHA256：1dda55622614a8b43b448a72f87d6cb7f79de1eff49ee8c5881a7d9db28d4e35 ，0aba869427b4ce04e100d72744daf7fea1f7be2e4be56b658095bd9e99e04e6d）
* Intel & AMD/ 兼容 PC 32 位 ISO 镜像，适用于 32-bit 位 PC ，[DVD 1](http://mirrors.aliyun.com/centos/6.8/isos/i386/CentOS-6.8-i386-bin-DVD1.iso)，[DVD 2](http://mirrors.aliyun.com/centos/6.8/isos/i386/CentOS-6.8-i386-bin-DVD2.iso)
（MD5：720d185fdf063383a4471657076b72fc162d3c3c3bca2e5e5ae13a25b3046519 ，0c1a498a469214f276b4390a9ac2111fe8eb89084f7921d2eced659ada09e1a9）

### [LFS](/article-5865-1.html)

Linux From Scratch，简称 LFS，不同于其它的 Linux 发行版，它是一种给使用者指导建议，由使用者自行从头开始自己构建的发行版。

#### Systemd 版本（简体中文翻译版本）：

LCTT 对 LFS 7.7 systemd 版本进行了翻译，并且 LFS 官方网站[收录](http://www.linuxfromscratch.org/lfs/read.html)了相应链接：

* 在线版本： <https://linux.cn/lfs/LFS-BOOK-7.7-systemd/index.html>
* PDF ： <https://img.linux.net.cn/lfs/LFS-BOOK-7.7-systemd.pdf>
* CHM ： <https://img.linux.net.cn/lfs/LFS-BOOK-7.7-systemd.chm>


在Debian上设置USB网络打印机和扫描仪服务器

Summary: 假定你想要在你的家庭/办公网络中设置一台Linux打印服务器，而你手头上却只有USB打印机可用（因为他们比那些有着内建网络接口或无线模块的打印机要便宜得多）。此外，如果这些设备中有一台是一体化的，而你也想要通过网络共享其整合的扫描仪，这该怎么办？在本文中，我将介绍怎样安装并共享一台USB一体机（Epson CX3900喷墨打印机和扫描仪），一台USB激光打印机（Samsung ML-1640），以及作为锦上添花，配置一台PDF打印机。所有这一切，我们都将在GNU/Linux Debian 7.2 服务器中实现。 尽管这些打印机看起来有点老旧了（我是在2007年买的E

我成功在funtoo下使用HP激光打印机 。

马

转一下留着备用

@mywiz

用Google云打印机

转发微博.

# 在Debian上设置USB网络打印机和扫描仪服务器

假定你想要在你的家庭/办公网络中设置一台Linux打印服务器，而你手头上却只有USB打印机可用（因为他们比那些有着内建网络接口或无线模块的打印机要便宜得多）。此外，如果这些设备中有一台是一体化的，而你也想要通过网络共享其整合的扫描仪，这该怎么办？在本文中，我将介绍怎样安装并共享一台USB一体机（Epson CX3900喷墨打印机和扫描仪），一台USB激光打印机（Samsung ML-1640），以及作为锦上添花，配置一台PDF打印机。所有这一切，我们都将在GNU/Linux Debian 7.2 [Wheezy]服务器中实现。

尽管这些打印机看起来有点老旧了（我是在2007年买的Epson一体机，2009年买的激光打印机），但我仍然相信我从安装过程中学到的东西也一样能应用到该品牌的新产品和其它品牌中去：有一些预编译的.deb包驱动可用，而其它驱动可以从仓库中直接安装。毕竟，它是重要的基本原则。

### 先决条件

要设置网络打印机和扫描仪，我们将使用[CUPS](https://www.cups.org/)，它是一个用于Linux/UNIX/OSX的开源打印系统。

```
# aptitude install cups cups-pdf

```

**排障提示**：根据你的系统状况（这个问题很可能在手动安装包失败后，或者缺少依赖包的时候会发生），在安装cups和cups-pdf前端包管理系统可能会提示你卸载许多包以尝试解决当前依赖问题。如果这种情况真的发生，你只有两个选择：

1）通过另外一个前端包管理系统安装包，如apt-get。注意，并不建议进行这样的处理，因为它不会解决当前的问题。

2）运行以下命令：aptitude update && aptitude upgrade。该命令会修复此问题，并同时更新包到最新版本。

### 配置CUPS

为了能够访问CUPS的网页接口，我们需要至少对cupsd.conf文件（用于CUPS的服务器配置文件）进行一次最低限度的修改。在进行修改前，让我们为cupsd.conf做个备份副本：

```
# cp cupsd.conf cupsd.conf.bkp

```

然后，编辑原始文件（下面只显示了最为有关联的部分）：

* **Listen**：监听指定的地址和端口，或者域套接口路径。
* **Location /path**：为该名字所代表的位置指定访问控制。
* **Order**：指定HTTP访问控制顺序（allow,deny或deny,allow）。Order allow,deny是说允许规则先于（并且优先处理）拒绝规则。
* **DefaultAuthType** (也可以用**AuthType**)： 指定默认使用的认证类型。Basic是指使用/etc/passwd文件来认证CUPS中的用户。
* **DefaultEncryption**：指定认证请求所使用的加密类型。
* **WebInterface**：指定是否启用网页接口。

---

```
    # Listen for connections from the local machine
    Listen 192.168.0.15:631

    # Restrict access to the server
    <Location />
      Order allow,deny
      Allow 192.168.0.0/24
    </Location>

    # Default authentication type, when authentication is required
    DefaultAuthType Basic
    DefaultEncryption IfRequested

    # Web interface setting
    WebInterface Yes

    # Restrict access to the admin pages
    <Location /admin>
      Order allow,deny
      Allow 192.168.0.0/24
    </Location>

```

现在，让我们重启CUPS来应用修改：

```
# service cups restart

```

为了允许另外一个用户（除了root之外）修改打印机设置，我们必须像下面这样添加他/她到lp（授权对打印机硬件的访问并启用用户管理打印任务）和lpadmin（拥有打印优先）组。如果在你当前网络设置没有必要或不需要该设置，你可以不用理会该步骤。

```
# adduser xmodulo lp
# adduser xmodulo lpadmin

```

### 通过网页接口配置网络打印机

1、 启动网页浏览器，并打开CUPS接口http://:Port，这里在我们的例子中是[http://192.168.0.15:631：](http://192.168.0.15:631%EF%BC%9A)

2、 转到**管理**标签，然后点击*添加打印机*：

3、 选择你的打印机；在本例中，**EPSON Stylus CX3900 @ debian (Inkjet Inkjet Printer)**，然后点击**继续**：

4、 是时候为打印机取个名字，并指定我们是否想要从当前工作站共享它：

5、 安装驱动——选择品牌并点击**继续**。

6、 如果打印机如果不被CUPS支持（没有在下一页中列出来），我们必须从生产厂家的网站上下载驱动（如<http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX>），安装完后回到该页。

7、 注意，预编译的.deb文件必须从我们使用的机器上发送（例如，通过sftp或scp）到打印服务器（当然，如果我们有一个直接的下载链接就更加简单了，而不用下载按钮了）：

8、 在将.deb文件放到服务器上后，我们就可以安装了：

```
 # dpkg -i epson-inkjet-printer-escpr_1.4.1-1lsb3.2_i386.deb

```

**排障提示**：如果lsb包（一个第三方Linux应用编写者可以依赖标准核心系统）没有安装，那么驱动会无法安装：

我们将安装lsb，然后尝试再次安装打印机驱动：

```
# aptitude install lsb
# dpkg -i epson-inkjet-printer-escpr_1.4.1-1lsb3.2_i386.deb

```

9、 现在，我们可以返回到第五步并安装打印机：

### 配置网络扫描仪

现在，我们将继续配置打印机服务器来共享扫描仪。首先，安装[xsane](http://www.xsane.org/)，这是[SANE](http://www.sane-project.org/)——扫描仪快捷访问的前端：

```
# aptitude install xsane

```

接下来，让我们编辑/etc/default/saned文件以启用saned服务：

```
# Set to yes to start saned
RUN=yes

```

最后，我们将检查saned是否已经在运行了（很可能不在运行哦——那么我们将启动服务并再来检查）：

```
# ps -ef | grep saned | grep -v grep
# service saned start

```

### 配置另一台网络打印机

通过CUPS，你可以配置多台网络打印机。让我们通过CUPS配置一台额外的打印机：Samsung ML-1640，它是一台USB打印机。

splix包包含了单色（ML-15xx, ML-16xx, ML-17xx, ML-2xxx）和彩色（CLP-5xx, CLP-6xx）Samsung打印机驱动。此外，此包的详细信息中指出，一些新命名的Samsung打印机，如Xerox Phaser 6100也适用此驱动。

```
# aptitude install splix

```

然后我们将使用CUPS网页接口来安装打印机，就像前面一样：

### 安装PDF打印机

接下来，让我们在打印服务器上配置一台PDF打印机。这样，你就可以将来自客户计算机的文档转换成PDF格式了。

由于我们已经安装了cups-pdf包，PDF打印机就已经自动安装好了，可以通过网页接口验证：

当选定PDF打印机后，文档将被写入可配置目录（默认是~/PDF），或者也可以通过后续处理命令进行复制。

在下一篇文章中，我们将配置桌面客户端来通过网络访问打印机和扫描仪。

---

via: <http://xmodulo.com/2014/08/usb-network-printer-and-scanner-server-debian.html>

作者：[Gabriel Cánepa](http://www.gabrielcanepa.com.ar/) 译者：[GOLinux](https://github.com/GOLinux) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


如何在ubuntu桌面配置一个网络打印机和扫描仪

Summary: 在之前的文章中, 我们讨论过如何在Linux服务器安装各种各样的打印机（当然也包括网络扫描仪）。今天我们将来处理另一端：如何通过桌面客户端来访问网络打印机/扫描仪。 网络环境 在这个安装教程中，我们的服务器（Debian Wheezy 7.2版本）的IP地址是192.168.0.10，我们的客户端(Ubuntu 12.04版本)的IP地址是192.168.0.105.注意这两台机器是在同一个网段（192.168.0.0/24).如果我们想允许打印机访问其它网段，我们需要在服务器上修改cupsd.conf文件的以下部分： Location / Order allow,deny Allow localhost Allow from XXX.YYY.ZZZ.* /Lo

Repost

转移个,因为好久没翻译廖

# 如何在ubuntu桌面配置一个网络打印机和扫描仪

在[之前的文章中](http://linux.cn/article-4139-1.html), 我们讨论过如何在Linux服务器安装各种各样的打印机（当然也包括网络扫描仪）。今天我们将来处理另一端：如何通过桌面客户端来访问网络打印机/扫描仪。

### 网络环境

在这个安装教程中，我们的服务器（Debian Wheezy 7.2版本）的IP地址是192.168.0.10，我们的客户端(Ubuntu 12.04版本)的IP地址是192.168.0.105.注意这两台机器是在同一个网段（192.168.0.0/24).如果我们想允许打印机访问其它网段，我们需要在服务器上修改cupsd.conf文件的以下部分：

```
<Location />
  Order allow,deny
  Allow localhost
  Allow from XXX.YYY.ZZZ.*
</Location>

```

（在上述例子中，我们授予打印机从本地或者任何系统能够访问打印机，这些系统的IPv4地址以XXX.YYY.ZZZ开始。

为了验证哪些打印机可以在我们的服务器上适用，我们也可以在服务器上使用lpstat命令，或者浏览网页<https://192.168.0.10:631/printers> page.

```
root@debian:~# lpstat -a

```

---

```
EPSON_Stylus_CX3900 accepting requests since Mon 18 Aug 2014 10:49:33 AM WARST
PDF accepting requests since Mon 06 May 2013 04:46:11 PM WARST
SamsungML1640Series accepting requests since Wed 13 Aug 2014 10:13:47 PM WARST

```

### 在Ubuntu桌面安装网络打印机

在我们的Ubuntu 12.04的客户端，我们将打开"Printing"菜单(Dash -> Printing).你会注意到在其它发行版中，这个名字也许会有一点差别（例如会叫做"Printers" 或者 "Print & Fax"）:

还没有打印机添加到我们的客户端：

下面是在Ubuntu桌面客户端安装一台网络打印机的一些步骤。

**1)** “Add”按钮将弹出 "New Printer" 菜单。我们将选择"Network printer" -> "Find Network Printer"并输入我们服务器的IP地址，接着点击"Find":

**2)** 在最下面我们将会看到可使用的打印机的名称。我们来选择这台三星打印机并按"Forward":

**3)** 我们将会被要求填写一些关于我们打印机的信息。当我们输入完成时，将点击 "Apply"按钮。

**4)** 我们接下来将被询问是否打印一张测试页。让我们点击"Print test page"吧:

这个打印任务将被创建为本地id 2：

5)适用我们服务器上的CUPS网络借口，我们可以观察到打印任务已经提交成功了（打印机 -> SamsungML1640系列 -> 显示完成任务):

我们也可以通过在打印机服务器上运行以下命令显示同样信息：

```
 root@debian:~# cat /var/log/cups/page_log | grep -i samsung

```

---

```
SamsungML1640Series root 27 [13/Aug/2014:22:15:34 -0300] 1 1 - localhost Test Page - -
SamsungML1640Series gacanepa 28 [18/Aug/2014:11:28:50 -0300] 1 1 - 192.168.0.105 Test Page - -
SamsungML1640Series gacanepa 29 [18/Aug/2014:11:45:57 -0300] 1 1 - 192.168.0.105 Test Page - -

```

这个page\_log日志显示每一页被打印过的信息，只包括哪些用户发送这些打印任务，打印日期&时间，以及客户端的IPv4地址。

要安装Epson喷墨和PDF打印机，我们只需重复第1-5的步骤即可，并每一次选择左边的打印队列。例如，在下图中选择PDF打印机：

然而，请注意到根据[CUPS-PDF 文档中](http://www.cups-pdf.de/documentation.shtml)，根据默认：

>
> PDF文件将会被放置在打印作业的所有者命名的子目录内。在这个案例中，打印作业的所有者不能被识别（i.e.不会存在服务器中）输出的内容被放置在匿名操作的文件中。
>
>
>

这些默认的文件夹可以通过改变在/etc/cups/cups-pdf目录中的**Out**值和**AnonDirName**变量来修改。这里，${HOME}被扩展到用户的家目录中：

```
Out ${HOME}/PDF
AnonDirName /var/spool/cups-pdf/ANONYMOUS

```

### 网络打印实例

#### 实例 #1

从Ubuntu12.04中打印，通常在本地用gacanepa（具有相同名字存在打印机服务器上）。

打印到PDF打印机之后，让我们来检查打印机服务器上的/home/gacanepa/PDF目录下的内容：

```
root@debian:~# ls -l /home/gacanepa/PDF

```

---

```
total 368
-rw------- 1 gacanepa gacanepa 279176 Aug 18 13:49 Test_Page.pdf
-rw------- 1 gacanepa gacanepa   7994 Aug 18 13:50 Untitled1.pdf
-rw------- 1 gacanepa gacanepa  74911 Aug 18 14:36 Welcome_to_Conference_-_Thomas_S__Monson.pdf

```

这个PDF文件被创建时的，权限已经设置为600(-rw-------)，这意味着只有打印任务的所有者(在这个例子中是gacanepa )可以访问它们。我们可以通过修改the /etc/cups/cups-pdf.conf文件**UserUMask**变量的值来改变这种行为。例如，0033的umask值将可以使PDF打印者以及其它所有者拥有创建文件的权限，但是只读权限也会赋予给其它所有者。

```
 root@debian:~# grep -i UserUMask /etc/cups/cups-pdf.conf

```

---

```
### Key: UserUMask
UserUMask 0033

```

对于那些不熟悉umask（有名用户文件创建模式掩码），它作为一组可以用于控制那些为新文件创建时修改默认权限。给予特定的umask值，在计算最终文件的许可权限时，在文件基本权限(0666)和umask的单项按位补码之间进行按位布尔 AND 运算。因此，如果设置一个umask值为0033，那么新文件默认的权限将不是（0033）AND 0666 = 644的值（文件拥有者具有读/写/执行的权限，其他人拥有只读权限）。

### 实例 #2

在Ubuntu12.04执行打印，本地登录用户为jdoe（同样的帐号名称但是服务器上是不存在的）。

```
 root@debian:~# ls -l /var/spool/cups-pdf/ANONYMOUS

```

---

```
total 5428
-rw-rw-rw- 1 nobody nogroup 5543070 Aug 18 15:57 Linux_-_Wikipedia__the_free_encyclopedia.pdf

```

这个PDF被创建时赋予的权限是666(-rw-rw-rw-)，这意味着每个人都可以访问它们。我们可以通过编辑在/etc/cups/cups-pdf.conf文件中的**AnonUMask**值来改变这种行为。

在这一点上，你也许会疑惑：为什么同样安装一台网络打印机，大多数（当然不是全部）当前的Linux桌面发行版都会内置一个"打印到文件"的功能来允许用户动态创建PDF文件？

使用一台网络PDF打印机有以下好处：

* 一个网络打印机（任何类型的）允许你直接从命令行直接打印，无需首先打开文件。
* 在其它操作系统上安装一个网络客户端，一个PDF网络打印机备件，于是系统管理员不必再单独需要安装PDF创建者实用程序（也避免了最终用户安装这些工具存在的风险）。
* 网络PDF打印机允许通过配置权限直接打印一个网络共享，如我们所见的例子。

### 在Ubuntu桌面安装一个网络扫描仪

这里是通过Ubuntu桌面客户端安装和访问一台网络扫描仪的一些步骤。假设网络扫描仪服务器已经启动并运行所述[here](http://xmodulo.com/2014/08/usb-network-printer-and-scanner-server-debian.html#scanner).

**1)**让我们第一步来检查在我们的Ubuntu客户端主机上是否存在一台可用的扫描仪。没有先前的安装，你将会看到信息提示"没有识别到扫描仪." $ scanimage -L

**2)** 现在我们需要启用saned进程，用来预装Ubuntu桌面。要启用它，我们需要编辑/etc/default/saned文件，并设置RUN变量为yes：

```
$ sudo vim /etc/default/saned

```

---

```
# Set to yes to start saned
RUN=yes

```

**3)** 让我们编辑/etc/sane.d/net.conf文件，并在扫描仪安装后添加服务器IP地址：

**4)** 重启saned进程：

```
$ sudo service saned restart

```

**5)** 现在让我们来看看扫描仪是否可用：

现在我们可以打开"Simple Scan"（或者其它扫描工具）并开始扫描文件。我们可以旋转，修剪，和保存生成的图片：

### 总结

拥有一或多台网络打印机或扫描仪在任何办公和家庭网络中都是非常方便适用的，并同时提供了许多好处。例举如下：

* 多用户（从不同的平台/地方）都能够向打印机发送打印作业的队列。
* 由于硬件共享达到了节约成本和维护的作用。

我希望这篇文章可以帮助你更充分地利用这些有点。

---

via: <http://xmodulo.com/2014/08/configure-network-printer-scanner-ubuntu-desktop.html>

作者：[Gabriel Cánepa](http://xmodulo.com/author/gabriel) 译者：[disylee](https://github.com/disylee) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


如何用Nagios远程执行插件（NRPE）来检测服务器内存使用率

Summary: 在先前的教程中，我们已经见到了如何在Nagios设置中设置Nagios远程执行插件（NRPE）。然而，监控内存使用率的脚本和插件并没有在原生的Nagios中。本篇中，我们会看到如何配置NRPE来监控远程服务器上的内存使用率。  我们要用的监控内存的脚本在Nagios 市场上，在创建者的Github仓库中也可以找到。 假设我们已经安装了NRPE，我们首先在我们想要监控的服务器上下载脚本。 准备远程服务器 在 Debain/Ubuntu 中: # cd /usr/lib/nagios/plugins/ # wget https://raw.githubusercontent.com/justintime/nagios-plugins/master/check_mem/check_m

@微博小秘书

@我的印象笔记

linux 监控Nagios借鉴下

@有道云笔记收藏

# 如何用Nagios远程执行插件（NRPE）来检测服务器内存使用率

在[先前的教程中](http://linux.cn/article-4101-1.html)，我们已经见到了如何在Nagios设置中设置Nagios远程执行插件（NRPE）。然而，监控内存使用率的脚本和插件并没有在原生的Nagios中。本篇中，我们会看到如何配置NRPE来监控远程服务器上的内存使用率。

<img src="content_image/album_201410_27_225219vev9r9l70rdqtg0o.jpg" alt="" title="">

我们要用的监控内存的脚本在[Nagios 市场](http://exchange.nagios.org/directory/Plugins/Operating-Systems/Solaris/check_mem-2Epl/details)上，在创建者的[Github仓库](https://github.com/justintime/nagios-plugins/blob/master/check_mem/check_mem.pl)中也可以找到。

假设我们已经安装了NRPE，我们首先在我们想要监控的服务器上下载脚本。

### 准备远程服务器

#### 在 Debain/Ubuntu 中:

```
# cd /usr/lib/nagios/plugins/
# wget https://raw.githubusercontent.com/justintime/nagios-plugins/master/check_mem/check_mem.pl
# mv check_mem.pl check_mem
# chmod +x check_mem

```

#### 在 RHEL/CentOS 中:

```
# cd /usr/lib64/nagios/plugins/ (or /usr/lib/nagios/plugins/ for 32-bit)
# wget https://raw.githubusercontent.com/justintime/nagios-plugins/master/check_mem/check_mem.pl
# mv check_mem.pl check_mem
# chmod +x check_mem

```

你可以通过手工在本地运行下面的命令来检查脚本的输出是否正常。当使用NRPE时，这条命令应该会检测空闲的内存，当可用内存小于20%时会发出警告，并且在可用内存小于10%时会生成一个严重警告。

```
# ./check_mem -f -w 20 -c 10

```

---

```
OK - 34.0% (2735744 kB) free.|TOTAL=8035340KB;;;; USED=5299596KB;6428272;7231806;; FREE=2735744KB;;;; CACHES=2703504KB;;;;

```

如果你看到像上面那样的输出，那就意味这命令正常工作着。

现在脚本已经准备好了，我们要定义NRPE检查内存使用率的命令了。如上所述，命令会检查可用内存，在可用率小于20%时发出警报，小于10%时发出严重警告。

```
# vim /etc/nagios/nrpe.cfg

```

#### 对于 Debian/Ubuntu:

```
command[check_mem]=/usr/lib/nagios/plugins/check_mem  -f -w 20 -c 10

```

#### 对于 RHEL/CentOS 32 bit:

```
command[check_mem]=/usr/lib/nagios/plugins/check_mem  -f -w 20 -c 10

```

#### 对于 RHEL/CentOS 64 bit:

```
command[check_mem]=/usr/lib64/nagios/plugins/check_mem  -f -w 20 -c 10

```

### 准备 Nagios 服务器

在Nagios服务器中，我们为NRPE定义了一条自定义命令。该命令可存储在Nagios内的任何目录中。为了让本教程简单，我们会将命令定义放在/etc/nagios目录中。

#### 对于 Debian/Ubuntu:

```
# vim /etc/nagios3/conf.d/nrpe_command.cfg

```

---

```
define command{
        command_name check_nrpe
        command_line /usr/lib/nagios/plugins/check_nrpe -H '$HOSTADDRESS$'  -c '$ARG1$'
}

```

#### 对于 RHEL/CentOS 32 bit:

```
# vim /etc/nagios/objects/nrpe_command.cfg

```

---

```
define command{
        command_name check_nrpe
        command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

```

#### 对于 RHEL/CentOS 64 bit:

```
# vim /etc/nagios/objects/nrpe_command.cfg

```

---

```
define command{
        command_name check_nrpe
        command_line /usr/lib64/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

```

现在我们定义Nagios的服务检查

#### 在 Debian/Ubuntu 上:

```
# vim /etc/nagios3/conf.d/nrpe_service_check.cfg

```

---

```
define service{
        use                            local-service
        host_name                      remote-server
        service_description            Check RAM
        check_command                  check_nrpe!check_mem
}

```

#### 在 RHEL/CentOS 上:

```
# vim /etc/nagios/objects/nrpe_service_check.cfg

```

---

```
define service{
        use                            local-service
        host_name                      remote-server
        service_description            Check RAM
        check_command                  check_nrpe!check_mem
}

```

最后我们重启Nagios服务

#### 在 Debian/Ubuntu 上:

```
# service nagios3 restart

```

#### 在 RHEL/CentOS 6 上:

```
# service nagios restart

```

#### 在 RHEL/CentOS 7 上:

```
# systemctl restart nagios.service

```

### 故障排除

Nagios应该开始在使用NRPE的远程服务器上检查内存使用率了。如果你有任何问题，你可以检查下面这些情况。

* 确保NRPE的端口在远程主机上是总是允许的。默认NRPE的端口是TCP 5666。
* 你可以尝试通过执行check\_nrpe 命令： /usr/lib/nagios/plugins/check\_nrpe -H remote-server 手工检查NRPE操作。
* 你同样可以尝试运行check\_mem 命令：/usr/lib/nagios/plugins/check\_nrpe -H remote-server –c check\_mem
* 在远程服务器上，在/etc/nagios/nrpe.cfg中设置debug=1。重启NRPE服务并检查这些日志文件，/var/log/messages (RHEL/CentOS)或者/var/log/syslog (Debain/Ubuntu)。如果有任何的配置或者权限错误，日志中应该包含了相关的信息。如果日志中没有反映出什么，很有可能是由于请求在某些端口上有过滤而没有到达远程服务器上。

总结一下，这边教程描述了我们该如何调试NRPE来监控远程服务器的内存使用率。过程只需要下载脚本、定义命令和重启服务就行了。希望这对你们有帮助。

---

via: <http://xmodulo.com/2014/09/monitor-server-memory-usage-nagios-remote-plugin-executor.html>

作者：[Sarmed Rahman](http://xmodulo.com/author/sarmed) 译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


openSUSE 42.3

Summary: 简介 openSUSE(发音为/ˌoʊpənˈsuːzə/)是以Linux核心为基础，提供符合一般日常使用的操作系统。开放社区的openSUSE Project所开发，并由Novell赞助。 2004年1月当Novell成功收购SuSE后，Novell决定将SuSE Professional产品完全开源，包括SUSE Linux引以为傲的YaST管理工具，以加入社区力量，协助其开发其商业产品SUSE Linux Enterprise。2011年Attachmate集团收购了Novell，并把Novell和SUSE做为两个独立的子公司运营。openSUSE 操作系统和相关的开源程序会被SUSE Linux Enterprise（比如 SLES 和 SLED）使用。2014年9月，SUSE Linux

13.2已经发布了

好久没更新了，13.2都发布了。。。

最新版本已经是42.1了

来自安徽合肥的 Internet Explorer 11.0|Windows 7 用户

好的，尽快更新。真是被这版本号刺激到了——没事跳这么大。。汗

文章好就没更新了～

是时候更新更新文章内容了~

# openSUSE 42.3

### 简介

openSUSE（发音为 /ˌoʊpənˈsuːsə/ 或 /ˌoʊpənˈsuːzə/，德语发音 /ˌoʊpənˈzuːzə/）是以Linux核心为基础，提供符合一般日常使用的操作系统。开放社区的openSUSE Project所开发，并由Novell赞助。

2004年1月当Novell成功收购SuSE后，Novell决定将SuSE Professional产品完全开源，包括SUSE Linux引以为傲的YaST管理工具，以加入社区力量，协助其开发其商业产品SUSE Linux Enterprise。2011年Attachmate集团收购了Novell，并把Novell和SUSE做为两个独立的子公司运营。openSUSE 操作系统和相关的开源程序会被SUSE Linux Enterprise（比如 SLES 和 SLED）使用。2014年9月，SUSE Linux的母公司[Attachmate集团被Micro Focus收购](http://www.phoronix.com/scan.php?page=news_item&px=MTc4OTI)，这是SUSE的第3位东家。

openSUSE发布的第一个版本是基于SuSE Professional 10.0的测试版，而目前的稳定版是在2017年7月26日发布的42.3，而42.x开始的版本是42.1 对上一个版本是2014年11月4日发布的13.2版。版本号为何跳跃如此之大，并选择这样的一个数字，可参看：《[openSUSE Leap 42.1 华丽发布](/article-6533-1.html)》一文。

官方网站：<http://www.opensuse.org/>

### 下载

openSUSE 42.3 分为滚动更新版 Tumbleweed 和完整版 Leap。

#### 滚动更新版 Tumbleweed

下载页面：<https://software.opensuse.org/distributions/tumbleweed>

* Intel & AMD/ 兼容 PC 64 位 DVD ISO 镜像，适用于 64-bit 位 PC [点此下载](http://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-DVD-x86_64-Current.iso)

#### 完整版 Leap

完整 DVD，也可用于 USB：下载页面： <https://software.opensuse.org/distributions/leap>

* Intel & AMD/ 兼容 PC 64 位 4.7GB ISO 镜像，适用于 64-bit 位 PC [点此下载](http://download.opensuse.org/distribution/leap/42.3/iso/openSUSE-Leap-42.3-DVD-x86_64.iso)

### 发行

openSUSE 可以免费的、完整的下载得到。它包括支持32位和64位的 x86 架构：

* openSUSE 下载版本：可以从 openSUSE 的下载页面自由的下载 ISO 版本。有几种不同版本：包括 KDE 4或 GNOME 的 Live-CD 版本（也可以安装到硬盘），和完整的 DVD 版本。此外还有一个含有专有软件即语言包的光盘。这个版本不包括任何技术支持和纸质手册。
* openSUSE 零售版或 openSUSE 机器：用户可以从 [www.opensourcepress.de](http://www.opensourcepress.de) 购买德语版本的 openSUSE 机器。该版本包含纸质的文档。零售版本不包含官方的英语及其它语言版本。
* openSUSE FTP： 可以用一个小的 ISO 来通过 FTP 进行网络安装。有两种不同的 FTP 镜像站点：一个是开源软件包（OSS），另外一个是非开源软件包或整个协议是受限的。
* openSUSE Factory: 这是一个持续开发版本，包含开发过程中的 CVS、GIT 等版本控制信息，用于开发团队用于构建稳定版本之前的标准快照（里程碑和 RC）。
* openSUSE Leap：完整稳定版本，是最新的openSUSE主力发行版，只提供64位版本。
* openSUSE Tumbleweed：滚动发布，当新的软件包的稳定版可用时立刻发布。

### 当前版本

目前的稳定版是在2017年7月26日发布的42.3版。

**稳健的**

我们在 [openQA](https://zh.opensuse.org/openSUSE:OpenQA "openSUSE:OpenQA") 上投入了大量的辛勤工作，通过这个自动化的测试工具来改进 openSUSE，确保了最新的 openSUSE 版本不会使最终用户失望而归。13.2 采用崭新的 Btrfs 作为 root 分区的默认文件系统，而 XFS 经过测试成为 /home 分区的默认文件系统。最新的 3.16 版 Linux 内核同样带来了一些稳定的特性，例如[探测 Dell Latitude 笔记本是否正在跌落（到地上）](http://www.phoronix.com/scan.php?page=news_item&px=MTcxNzg)。此外，YaST 在迁移到 Ruby 语言后，其代码库已经成熟，这意味着 YaST 获得了比以往更好的响应速度和可靠性。

**网络化的**

这个版本带来了 AppArmor 2.9，并设置为默认启用。这意味着那些相应 AppArmor 配置文件设置为强制模式的应用程序将会获得更强的安全性。此外其的他网络工具，例如 Samba, AutoYaST 等，同样有大量的更新包。

**进化的**

openSUSE 13.2 带来了 GCC 4.8，并且可以选择安装更新的 GCC 4.9 版本，[Qt 5.3](http://qt-project.org/wiki/New-Features-in-Qt-5.3) 带来了更多的改进，以适应 Qt5 框架。您也可以选择[安装全新的（但仍在测试中） Plasma5](https://zh.opensuse.org/SDB:KDE_%E8%BD%AF%E4%BB%B6%E6%BA%90#KDE_Frameworks_5 "SDB:KDE 软件源")。

**精致的**

此版本中，YaST 向 Ruby 语言的迁移工作已成熟，其代码库已相当可靠，并且满满的都是您期待 YaST 应有的奇妙特性。[ActiveDoc](https://activedoc.opensuse.org/) 可继续用来查找多种您在 Linux 世界中避无可避的工具的文档。13.2 还带来了 [KDE 应用程序 4.14](https://zh.opensuse.org/Portal:KDE "Portal:KDE")和 Plasma 桌面 4.11，它们共同组成了一个稳定的桌面环境，而 KDE 项目仍在迁移其代码到 KDE Frameworks 5。同时，[GNOME](https://zh.opensuse.org/Portal:GNOME "Portal:GNOME") 桌面更新到了[3.14](https://help.gnome.org/~/3.14/)。[LXDE](https://zh.opensuse.org/index.php?title=Portal:LXDE&action=edit&redlink=1 "Portal:LXDE（页面不存在）") 在此版本中大动干戈，更新了软件包，改进了美工，以及修复了大量的故障并加入了很多新特性。

**快速的**

Linux 3.16 对 Nouveau 这个 NVIDIA 显卡的开源驱动进行了改进，同时还为 Intel 和 AMD 的显卡驱动添加了更多功能。这个新的内核还提升了 Btrfs 和 XFS 的性能表现。

**全功能的**

KDE Plasma 桌面现在支持通过 [KDE Connect](https://community.kde.org/KDEConnect) 整合您的移动设备了。默认的 Btrfs 文件系统为您带来[大量新的特性](https://www.youtube.com/v/9H7e6BcI5Fo?start=209)，这些特性您之前想都不敢想！YaST 带来了新的 Qt 界面，迁移到了 Qt5。

**创新的**

这个版本包含了相当一部分值得尝试的实验性技术，例如 Wayland 1.4，KDE Frameworks 5。最前沿的软件可以从 [编译服务](http://software.opensuse.org/search?utf8=%E2%9C%93&q=&search_devel=false&search_unsupported=false&baseproject=openSUSE%3A13.2)上获取。此外此版本还有一个崭新的配色方案。

更多细节请参见：<https://zh.opensuse.org/Features_13.2>

### 历史

| 名称 | 版本 | 发布日期 | Linux内核版本 |
| --- | --- | --- | --- |
| S.u.S.E Linux
(Slackware based) | 3/94 | 1994-03-?? |  ?.?.? |
| 7/94 | 1994-07-?? |  ?.?.? |
| 11/94 | 1994-11-?? |  ?.?.? |
| 4/95 | 1995-04-?? | 1.2.9 |
| 8/95 | 1995-08-?? |  ?.?.? |
| 11/95 | 1995-11-?? |  ?.?.? |
| S.u.S.E Linux | 4.2 | 1996-05-?? |  ?.?.? |
| 4.3 | 1996-09-?? |  ?.?.? |
| 4.4 | 1997-05-?? |  ?.?.? |
| 5.0 | 1997-07-?? | 2.0.30 |
| 5.1 | 1997-10-?? | 2.0.32 |
| 5.2 | 1998-03-23 | 2.0.33 |
| 5.3 | 1998-09-10 | 2.0.35 |
| SuSE Linux | 6.0 | 1998-12-21 | 2.0.36 |
| 6.1 | 1999-04-07 | 2.2.6 |
| 6.2 | 1999-08-12 | 2.2.10 |
| 6.3 | 1999-11-25 | 2.2.13 |
| 6.4 | 2000-03-09 | 2.2.14 |
| 7.0 | 2000-09-27 | 2.2.16 |
| 7.1 | 2001-01-24 | 2.2.18 |
| 7.2 | 2001-06-15 | 2.4.4 |
| 7.3 | 2001-10-13 | 2.4.9 |
| 8.0 | 2002-04-22 | 2.4.18 |
| 8.1 | 2002-09-30 | 2.4.19 |
| 8.2 | 2003-04-07 | 2.4.20 |
| SUSE Linux | 9.0 | 2003-10-15 | 2.4.21 |
| 9.1 | 2004-04-23 | 2.6.4 |
| 9.2 | 2004-10-25 | 2.6.8 |
| 9.3 | 2005-04-16 | 2.6.11 |
| 10.0 | 2005-10-06 | 2.6.13 |
| 10.1 | 2006-05-11 | 2.6.16 |
| 10.1bis | 2006-10-13 | 2.6.16 |
| openSUSE | 10.2 | 2006-12-07 | 2.6.18 |
| 10.3 | 2007-10-04 | 2.6.22 |
| 11.0 | 2008-06-19 | 2.6.25 |
| 11.1 | 2008-12-18 | 2.6.27 |
| 11.2 | 2009-11-12 | 2.6.31 |
| 11.3 | 2010-07-15 | 2.6.34 |
| 11.4 | 2011-03-10 | 2.6.37 |
| 12.1 | 2011-11-16 | 3.1.0-1.2 |
| 12.2 | 2012-09-05 | 3.4.6-2.10 |
| 12.3 | 2013-03-13 | 3.7.10-1.1 |
| 13.1 | 2013-11-19 | 3.11.6 |
| 13.2 | 2014-11-04 | 3.16.6 |
| Leap 42.1 | 2015-11-04 | 4.1 |
| Leap 42.2  | 2016-11-16 | 4.4 |
| Leap 42.3  | 2017-07-26 | 4.4 |

### 截屏

注：部分资料来自维基百科。


[华章赠书]《构建高可用Linux服务器(第3版)》点评赠书

Summary: 本书是Linux运维领域公认经典畅销书，运维工程师必备的工具书。现在起微博关注@LINUX中国 @华章图书 转发此微博并添加有效评论即有机会获得这本书哦。

一本很棒的书！很想要！

没看过这本书,不知道评论啥....我只是想拿奖品

我也想要。

之前买过第一版，非常不错！想必3版也值得拥有，

这本书很不错！

没看过此书，但对linux运维有兴趣，拼人品

[爱你]好想看看里面写的什么

瞅瞅高可用的内容

再信你一次

看起来不错啊，求获赠。[抱抱][抱抱]

很不错的感觉

拼人品的时候到了

完全看完一次 从各個方面把高可用性的運維寫的簡單易懂。裡邊有大量的配置代碼，很好的一本書

关于这本书，以前看到过是第二版，整本书注重理论加实践的教学模式。给读者一个更清楚的思路去思考问题。书中所举的案例都是源于实际生产环境中，更具实战性，相信这本书会给读者带来不只是知识层面的飞跃。另外第三版在第二版的基础上，更新操作系统的环境为centos5.8.更贴近前沿！高可用部分则可能是我们今后学习的重中之重啊！

这本书在无论是在京东、淘宝、还是在亚马逊我都在关注，一直都是非常畅销书，我非常喜欢它。我的室友买了一本，我大体看了一下，作者把一些复杂的问题，用一些简单易懂的语言描述出来，非常适合我这样的初学者，同时里面还有一些经典架构，比如像某某网店的架构，我就不细说，大家都明白，呵呵  我真的超喜欢这本，  希望楼主给我送一本呀，求求楼主了！！！！

这本书倒是挺不错的。

伤心啊，刚才忘了登陆，我是“柒拾贰音阶” 在群名称是“Linux中国-运维群”叫 北京-Romeo   希望楼主给我送一本

这本书关注很久了，终于有了第三版，作者也是很好的技术大牛，感谢作者，把经验成书，让更多的小牛获得洗礼！

求中奖啦

还没送出去？我收了。[哈哈]

看上去不错，试手气

需要赠书。

一直向linux运维道路上前进，但是一直缺乏一件利器，这本书就是那件利器！

构建Linux服务器，正需要呢，送我一本吧！[威武]@华章图书

一直想构建一个自己的服务器、送给我吧[威武]

一直想要构建一个自己的服务器、送给我吧

好想要啊，学习一发服务器[哈哈]

点评：好书。请赠书

运维工程师的利器，求一本

自己买了……

点评就能赠书吗？？  要能拿到真是太好啦~~  希望可以得到  linux服务器构建！

这本书适合刚入门的工程师，试读感觉挺好，希望能获得一本。

服务器运行情况查看及管理、日志管理及故障诊断；Linux下的负载均衡及mysql性能调优...很实用

一直在学习Linux的道路上不断前进，希望得到这本书更进一步学习！

基于实际生产环境，有效解决学与用的问题的书才是好书！

[爱你]大爱linux服务器的书，一本鸟哥服务器还没看完[泪]

一本好书，期待能拜读

整本书注重理论加实践的教学模式，给读者一个更清楚的思路去思考问题。书中所举的案例都是源于实际生产环境中，更具实战性，相信这本书会给读者带来不只是知识层面的飞跃。另外第三版在第二版的基础上，更新操作系统的环境为centos5.8.更贴近前沿！

求送，正在学习linux

果断给我瞅瞅啊，还没看怎么品论？

来吧，让我吃掉它

好期待能得一本。。。。

不错的书，赠我一本把

话不多说!!!求送!!!

我试试

[doge]不错的一本书，曾在书店多次翻阅，一看就是一下午。@慕课网 你们也可以送此类书籍哈。偏向运维方向的。

快到碗里来[来][来]

很喜欢的一本书，一直想入手一本。捣鼓实验室的几台破破的服务器许久，想好好了解下怎样提高服务器的性能，值得认真拜读下先辈的经验之谈。

我也想要!!!我想学linux...快到碗里来==!!!

让我成为那个分子吧！~

看过第二版，非常好的，对这一版很期待！

看过第二版，非常好！期待看到该版有啥新的内容

刚买了《Linux内核探秘》还少本《构建高可用Linux服务器》，哈哈@Linux中国

好书，运维方面的经典好书，推荐

运维工程师必备的工具书

好书，运维工程师必备的经典工具书！

以后肯定是运维党了，默默求一本，希望有nginx和apache的详细

运维方向的必备书籍，求一本哈，能在运维上更深入一步。

出道半年以来，一直在公司担任系统工程师一职，自己把服务器从上架开始，一步一步从0到有的搭建起来生产环境，赶脚很不容易，然后现在公司的业务量没天都在递增，业务量越来越大，必须以集群和负载均衡来应对。<br />
然而自己再集群方面和自动化puppet自动化运维方面有所欠缺，然后看了看试读章节和书的目录，有讲集群和puppet自动化运维，正好符合自己现状，希望能得到一本学习学习，增强一下自己这方面的实力。正好应对公司越来越多的业务量，从而可以构建出高可用、高稳定、高可靠性的服务器，希望能得到这本书学习一下。

快到我碗里。。。。

刚看了看目录和试读章节，都是精华好东西啊！自己公司业务量增加一直，正好学习一下集群和puppet自动化运维管理，正好可以增加自己这方面的实力，希望可以得到学习学习@LINUX中国 @华章图书

Linux运维必备图书!好书值得购买……

我正在学习Linux，这本书正是我需要的。@Linux中国 @华章图书

最近在公司被调到了运维部 希望通过此书能加快我融入的步伐

工具书不错

运维学习的好书不错

最近在公司被调到了运维部 希望通过此书能加快我融入的步伐

linux不错，能掌握很多知识是在win平台无法学到的。继续坚持学习linux

读过样张之后，感觉很赞！

这本书是学习Linux服务器应用的不二之选，内容立足于工作实际，

尤其是当下热门的虚拟化、集群的应用，在这本书中都剖析的淋漓尽致。

另一方面，该书已经重印至“第三版”了，由此可见其大受欢迎！

内容翔实，深入浅出的讲解了Linux的方方面面，从目录便可以看出，本书是以实践为驱动，手把手教你如何部署，如何排错，如何维护，如何保证高效和高可用，本书由此出发，引发起我们对Linux机理的思考。老是停留在理论层面，未免过于纸上谈兵，恶劣的生产环境才可以造就出“高超的运维人员”，实践出真知，只有在实际操作过程中，才知理论和实践之差距。对于作者的实践精神和总结技巧，表示佩服。对于有志于成为一个优秀的运维人员，或者想在Linux Server方面有所造诣的人，值得一读此书！

我是linux爱好者，自己一直在尝试各种软件及配置，希望此书能对我有所帮助。

运维要求的知识面太广了。希望得到这本书来充电

增加了好多计算节点。学习下，看看怎么管理运行效率高些。集群没太搞明白。买本书看看。

Repost

万一中了呢

我是linux爱好者，现正在学习中，希望此书能对我有所帮助。

自开始学习Linux运维技术之初，从一个懵懵懂懂的Linux入门学生，一直对Linux方向没有迷失，一直一直向前一点一点的坚持，到现在的热爱上这门技术感觉的幸运吧。记得在之初学习Linux度过的资料很多，但是就这本---Linux运维领域公认经典畅销书---构建高可用Linux服务器，一出感觉到自己的思路一下就重新梳理。。架构师推荐的，一本很棒的书籍和资料！！！

运维的同事们桌子上就放着这本书 最近正在看 写得很通俗 最大的特点是结合了作者的实际工作

这个是好书啊，最近在纠结怎么练习下搭建服务器，看来有方向了，不知道这个和Hadoop有什么关联和区别。

既然是必备书，怎么能不弄一本在手边时时翻阅呢？

目前正向网运维工作方面学习，构建高可用Linux服务器，一出感觉到自己的思路一下就清晰了，里面有一些经典架构，正好适合现在的我学习使用，来一本吧

我朋友买了一本，这本书非常不错的，浅显易懂，思路清晰，真正能够教会你怎么去做，推荐此书，谢谢!

书已收到，非常感谢

等收书

很久也没有研究过linux服务器，服务器最主要的性能就是稳定！  构建稳定的服务器很大的限度可以提升我们的业务能力和公司的稳定避免受到损失

只看本书目录，就知道书写的很好，浅显易懂，思路清晰。

刚读了一点样张的内容，脚本中关于双引号和单引号的应用，我还真第一次看到，实例很详细，也贴近实用环境……时间仓促，样张还没来得及全部看完。安装这样的风格写完全书，想必一定对实际的工作有很好指导！鼎立推荐！有机会一定要拜读全书！

先说书的优点：

1.图文并茂，十分详细阐述各种环境下的脚本的写法，能让我举一反三，发散性的考虑脚本在高可用中的应用。

2.内容详实，单纯从目录上来看，基本上贴近显示环境，主要是案例特别多，自己动手操作下，吸收下很好。

先说两点吧，如果能拿到赠本，我会在详细看看。

本书的缺点：

1.既然都是第三版内容了，看这本书的内容就是一些，已经有经验的运维朋友，我觉得他们在理解某些部分内容的时候，不需要在怎么指引了，有点画蛇添足。

2.平心而论，后面的安全部分内容，有点鸡肋，有点想临时添加上去的内容，当然我没有看到后面的内容，也许内容特别详实，跟我想象的不一样，但是安全内容这块实际上特别多，光单纯的系统级别的测试我就能罗列十几项内容出来。

 对于本书，我觉得我应该吧侧重点想好，针对哪个人群这样进行。

这些仅仅是看到样张 还有目录后的感觉 希望别介意。

我想要 赐我一本吧。。。。。。。。

作为运维。此书成为非常有用的工具书。对于初接触运维的人来说，此书让你丰富自己，增加更多的经验！

现在做运维的越来越多了，像这部运维案头书是很不错的必看书籍

不知道本书对服务器性能述说得怎么样，有机会的看看

此书乃运维中的葵花宝典

听人说不错，希望能看看

介绍不错，希望能看看这本书。

看了样张，觉得写得挺好的，一直在Linux上学习，这类书我也一直有所考虑。

一直在关注这本书 ，就是不知道书里面，讲的都是什么示例

# [华章赠书]《构建高可用Linux服务器(第3版)》点评赠书

**Linux运维领域公认经典畅销书，曾被《程序员》杂志和51CTO等权威IT媒体评为10大最具技术影响力的图书和最爱读者喜爱的原创图书，运维工程师必备工具书。**

<img src="content_image/album_201411_02_100206qh1cbijjbvshkcd1.jpg" alt="" title="">

### 活动内容

活动时间：2014年11月2日-2014年11月14日

活动要求：

**活动形式一** ：在新浪微博关注[@LINUX中国](http://linux.cn/home.php?mod=space&uid=16101) [@华章图书](http://weibo.com/huazhangbook) 转发本微博并添加有效评论。
**活动形式二：**在Linux中国（[http://linux.cn](http://linux.cn/)）对本书进行评论，说说你喜爱它的理由。

活动奖品：《构建高可用Linux服务器(第3版)》图书一本（共5本）

**特此注意：**

**1、本站论坛评论方式参与的用户，评论前需登录您的Linux中国账号，匿名评论无效**

**2、微博用户参与活动，活动结束后注意查看[@LINUX中国](http://linux.cn/home.php?mod=space&uid=16101) 官方微博公布的中奖名单或留意您的微博私信，本站用户参与活动，注意查看您注册Linux中国时所填写的邮箱。 我们会通过微博私信以及电子邮件两种方式获取您的邮寄信息。**

### 编辑推荐

Linux运维领域公认经典畅销书，曾被《程序员》杂志和51CTO等权威IT媒体评为10大最具技术影响力的图书和最爱读者喜爱的原创图书，运维工程师必备工具书。
基于实际生产环境，从Linux服务器构建与优化，高可用Linux集群构建、MySQL高可用架构设计、Puppet自动化运维等多角度讲解了构建高可用Linux服务器的方法和技巧。

### 内容简介

《构建高可用linux服务器(第3版)》是linux运维领域公认的经典畅销书，是 51cto、itl68等知名网站和多位资深运维专家共同推荐的运维工程师必备的工具书!
酒哥在linux运维领域潜心实践近10年，一直在运维一线，技术和思维都紧跟时代的发展，非常清楚运维工程师们需要什么，应该学习什么。本书不仅是他近10年工作经验的结晶，同时也是他的数万名读者和数十万粉丝共同需求和集体智慧的呈现。本书自第1版出版以来，就广受关注和好评，曾被《程序员》杂志和51cto等权威it媒体评为“10大最具技术影响力的图书”和“最受读者喜爱的原创图书”。笔者根据运维技术的发展和读者的反馈意见，不断地对书的内容进行优化：更新了过时的技术：补充了最新的内容；限于篇幅，部分内容作为电子版免费提供给读者在线阅读，从而使得这本书的内容更加完善。
本书最大的特点就是与实践紧密结合，所有理论知识、方法、技巧和案例都来自实际生产环境，涵盖 linux服务器构建与优化、服务器故障诊断与排除、shell脚本、高可用linux集群构建、mysql性能调优及高可用、自动化运维(puppet)、安全运维等主题，所有内容都围绕“如何构建高可用的linux服务器”这个主题深度展开。

### 作者简介

余洪春(抚琴煮酒，人称“酒哥” )高级系统架构师，从事CDN广告系统和电子商务网站运维工作近10年，在Linux集群、自动化运维、系统安全及高并发高流量网站架构设计等方面进行了深入的研究，在大量一线实践中积累了丰富的经验．精通负载均衡高可用技术，擅长电子商务和门户类网站架构。51CTO和ChinaUnix等知名社区的特邀专家，51CTO系统网络频道的专栏作家，ChinaUnix论坛“集群和高可用”及“监控及自动化运维”版版主，在社区内发表了大量技术文章，深受网友好评。

**试读样张：**<http://images.china-pub.com/ebook3770001-3775000/3770632/ch03.pdf>

**购买链接：**<http://product.china-pub.com/3804117>


在 LVM中 录制逻辑卷快照并恢复（第三部分）

Summary: LVM快照是以空间换时间时间的方式制作的lvm卷副本。它只在lvm中工作，并只在源逻辑卷发生改变时占用快照卷的空间。如果源卷的变化达到1GB这么大，快照卷同样也会产生这样大的改变。因而，对于空间有效利用的最佳途径，就是总是进行小的修改。如果快照将存储空间消耗殆尽，我们可以使用lvextend来扩容。而如果我们需要缩减快照所占用卷的大小，可以使用lvreduce。  在LVM中录制快照 如果我们在创建快照后意外地删除了无论什么文件，我们没有必要担心，因为快照里包含了我们所删除的文件的原始文件。创建快照时，很有可能文件已经存在了。不

转发微博.

LVM快照，看起来很深奥

LVM逻辑卷的扩展知识的补充，不错！

问一下，创建的快照设备是不是不能挂载啊，我挂载失败了

# 在 LVM中 录制逻辑卷快照并恢复（第三部分）

**LVM快照**是以空间换时间时间的方式制作的lvm卷副本。它只在lvm中工作，并只在源逻辑卷发生改变时占用快照卷的空间。如果源卷的变化达到1GB这么大，快照卷同样也会产生这样大的改变。因而，对于空间有效利用的最佳途径，就是总是进行小的修改。如果快照将存储空间消耗殆尽，我们可以使用lvextend来扩容。而如果我们需要缩减快照所占用卷的大小，可以使用lvreduce。

*在LVM中录制快照*

如果我们在创建快照后意外地删除了无论什么文件，我们没有必要担心，因为快照里包含了我们所删除的文件的原始文件。创建快照时，很有可能文件已经存在了。不要改变快照卷，保持创建时的样子，因为它用于快速恢复。

快照不可以用于备份选项。备份是某些数据的基础副本，因此我们不能使用快照作为备份的一个选择。

#### 前置阅读

* [在Linux中使用LVM构建灵活的磁盘存储（第一部分）](http://linux.cn/article-3965-1.html)
* [在Linux中扩展/缩减LVM（第二部分）](http://linux.cn/article-3974-1.html)

### 我的服务器设置

* 操作系统 — 安装有LVM的CentOS 6.5
* 服务器IP — 192.168.0.200

#### 步骤1： 创建LVM快照

首先，使用‘**vgs**’命令检查卷组中的空闲空间以创建新的快照。

```
# vgs
# lvs

```

*检查LVM磁盘空间*

正如你所见，在**vgs**命令输出中，我们可以看到有8GB的剩余空闲空间。所以，让我们为我的名为**tecmint\_datas**的卷创建快照。处于演示的目的，我将会使用以下命令来创建1GB的快照卷。

```
# lvcreate -L 1GB -s -n tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas

```

或者

```
# lvcreate --size 1G --snapshot --name tecmint_datas_snap /dev/vg_tecmint_extra/tecmint_datas

```

上面的两个命令都是干得同一件事：

* **-s** – 创建快照
* **-n** – 为快照命名

*创建LVM快照*

此处，是对上面高亮要点的说明。

1. 我在此创建的快照的大小。
2. 创建快照。
3. 创建快照名。
4. 新的快照名。
5. 要创建快照的卷。

如果你想要移除快照，可以使用‘**lvremove**’命令。

```
# lvremove /dev/vg_tecmint_extra/tecmint_datas_snap

```

*移除LVM快照*

现在，使用以下命令列出新创建的快照。

```
# lvs

```

*验证LVM快照*

上面的你看到了吧，成功创建了一个快照。上面我用箭头标出了快照创建的源，它就是**tecmint\_datas**。是的，因为我已经为**tecmint\_datas l-volume**创建了一个快照。

*检查LVM快照空间*

让我们添加一些新文件到**tecmint\_datas**里头。现在卷里大概有650MB左右的数据，而我我们的快照有1GB大。因此，有足够的空间在快照卷里备份我们的修改。这里我们可以使用下面的命令来查看到，我们的快照当前的状态。

```
# lvs

```

*检查快照状态*

你看到了，现在已经用掉了**51%**的快照卷，你要对你的文件作更多的修改都没有问题。使用下面的命令来查看更多详细信息。

```
# lvdisplay vg_tecmint_extra/tecmint_data_snap

```

*查看快照信息*

再来对上面图片中高亮的要点作个清楚的说明。

1. 快照逻辑卷名称。
2. 当前使用的卷组名。
3. 读写模式下的快照卷，我们甚至可以挂载并使用该卷。
4. 快照创建时间。这个很重要，因为快照将跟踪此时间之后的每个改变。
5. 该快照属于tecmint\_datas逻辑卷。
6. 逻辑卷在线并可用。
7. 我们录制快照的源卷大小。
8. 写时复制表大小，Cow = copy on Write，这是说对tecmint\_data卷所作的任何改变都会写入此快照。
9. 当前使用的快照大小，我们的tecmint*data有10GB，而我们的快照大小是1GB，这就意味着我们的数据大概有650MB。所以，如果tecmint*datas中的文件增长到2GB，现在的51%中的内容将增加到超过所分配的快照的大小，当然，我们在创建快照时会出现问题。这就意味着我们需要扩展逻辑卷大小（快照逻辑卷）
10. 给出快照组块的大小。

现在，让我们复制超过1GB的文件到**tecmint\_datas**。让我们看看会发生什么。如果你那么做了，你将会见到‘**Input/output error**’这样的错误信息，它告诉你快照超出空间大小了。

*添加文件到快照*

如果该逻辑卷满了，它就会自动丢失新的数据，我们就不能再使用了，就算我们去扩展快照卷的大小也不行。最好的方法就是在创建快照时，创建一个和源一样大小的快照卷。**tecmint\_datas**的大小是10GB，如果我们创建一个10GB大小的快照，它就永远都不会像上面那样超载，因为它有足够的空间来录制你的逻辑卷的快照。

#### 步骤2： 在LVM中扩展快照

如果我们需要在超过容量前扩展快照卷的大小，我们可以使用以下命令来完成此项任务。

```
# lvextend -L +1G /dev/vg_tecmint_extra/tecmint_data_snap

```

现在，那里有总计2GB大小的快照空间。

*扩展LVM快照*

接下来，使用以下命令来验证新的大小和写时复制表。

```
# lvdisplay /dev/vg_tecmint_extra/tecmint_data_snap

```

要知道快照卷的大小使用**%**。

```
# lvs

```

*检查快照大小*

然而，如果你的快照大小和源卷一样，我们就没有必要担心这些问题了。

#### 步骤3： 恢复快照或合并

要恢复快照，我们首先需要卸载文件系统。

```
# unmount /mnt/tecmint_datas/

```

*卸载文件系统*

只想检查挂载点是否卸载成功，可以使用下面的命令。

```
# df -h

```

*检查文件系统挂载点*

这里，我们的挂载已经被卸载，所以我们可以继续恢复快照。要恢复快照，可以使用**lvconvert**命令。

```
# lvconvert --merge /dev/vg_tecmint_extra/tecmint_data_snap

```

*恢复LVM快照*

在合并完成后，快照卷将被自动移除。现在我们可以使用**df**命令来查看分区大小。

```
# df -Th

```

在快照卷自动移除后，你可以用下面的命令查看逻辑卷大小。

```
# lvs

```

*检查逻辑卷大小*

**重要**：要自动扩展快照，我们可以通过修改配置文件来进行。对于手动扩展，我们可以使用lvextend。

使用你喜欢的编辑器打开lvm配置文件。

```
# vim /etc/lvm/lvm.conf

```

搜索单词autoextend。默认情况下，该值和下图中的类似。

*LVM配置*

修改此处的**100**为**75**，这样自动扩展的起始点就是**75**，而自动扩展百分比为20，它将自动扩容**百分之20**。

如果快照卷达到**75%**，它会自动为快照卷扩容**20%**。这样，我们可以自动扩容了。使用**wq!**来保存并退出。

这将把快照从超载导致下线事故中拯救出来，这也会帮助你节省更多时间。LVM是我们扩容以及获得其它众多特性如精简资源调配、拆卸、虚拟卷和使用精简池的唯一方法，让我们在下一个话题中来讨论吧。

---

via: <http://212.71.234.61/take-snapshot-of-logical-volume-and-restore-in-lvm/>

作者：[Babin Lonston](http://212.71.234.61/author/babinlonston/) 译者：[GOLinux](https://github.com/GOLinux) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


通过网络方式安装 Debian 7（Wheezy）

Summary: 本教程将指引你直接通过使用DNSMASQ作为PXE服务器（预启动执行环境），以网络方式安装Debian 7（Wheezy），此种情况是假定你的服务器不提供任何CD/DVD/USB介质驱动器，或者它只能通过相连的监视器、键盘和鼠标操作。  客户机上的Debian 7网络安装 DNSMASQ是一个轻量级网络基础架构服务器，它可以通过内建的DNS、DHCP和TFTP服务器提供如DNS、DHCP和网络启动等关键服务。 一旦PXE服务器启动并运行，你可以指示你所有的客户机直接从网络启动，前提是你的客户机必须拥有一张支持网络启动的网卡，网络启动可以从BIOS的网络启动或启动服务选项中

现在越来越多的系统都能网络安装了

转发微博.

# 通过网络方式安装 Debian 7（Wheezy）

本教程将指引你直接通过使用**DNSMASQ**作为**PXE服务器（预启动执行环境）**，以网络方式安装**Debian 7（Wheezy）**，此种情况是假定你的服务器不提供任何CD/DVD/USB介质驱动器，或者它只能通过相连的监视器、键盘和鼠标操作。

*客户机上的Debian 7网络安装*

**DNSMASQ**是一个轻量级网络基础架构服务器，它可以通过内建的DNS、DHCP和TFTP服务器提供如DNS、DHCP和网络启动等关键服务。

一旦PXE服务器启动并运行，你可以指示你所有的客户机直接从网络启动，前提是你的客户机必须拥有一张支持网络启动的网卡，网络启动可以从BIOS的网络启动或启动服务选项中启用。

### 前置阅读

* [Debian 7 (Wheezy)安装指南](http://212.71.234.61/debian-gnulinux-7-0-code-name-wheezy-server-installation-guide/)

### 步骤1： 安装及配置DNSMASQ服务器

**1.** 首先，在安装Debian服务器后，要确保你的系统使用的是**静态IP地址**。因为除了网络启动之外，也要为你的整个网段提供DHCP服务。设置好静态IP地址后，以root帐号或具有root权力的用户来运行以下命令，进行DNSMASQ服务器的安装。

```
# apt-get install dnsmasq

```

*安装Dnsmasq包*

**2.** 安装好DNSMASQ包后，你可以开始编辑配置文件。首先创建一个主配置文件的备份，然后使用下面的命令对**dnsmasq.conf**文件进行编辑。

```
# mv /etc/dnsmasq.conf  /etc/dnsmasq.conf.backup
# nano /etc/dnsmasq.conf

```

*备份Dnsmasq配置*

**3.** 上面的备份过程适合重命名配置文件，所以新的文件应该是空，你可以使用以下描述的**DNSMASQ**配置文件节录。

```
interface=eth0
domain=debian.lan
dhcp-range=192.168.1.3,192.168.1.253,255.255.255.0,1h
dhcp-boot=pxelinux.0,pxeserver,192.168.1.100
pxe-prompt="Press F8 for menu.", 60
#pxe-service types: x86PC, PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI and X86-64_EFI
pxe-service=x86PC, "Install Debian 7 Linux from network server 192.168.1.100", pxelinux
enable-tftp
tftp-root=/srv/tftp

```

*Dnsmasq配置*

* **interface** – 服务器监听的网络接口。
* **domain** – 用你自己的域名替换。
* **dhcp-range** – 用你自己的网络掩码定义的网络IP地址范围。
* **dhcp-boot** – 保持默认，但使用你自己的服务器IP地址替换IP声明。
* **pxe-prompt** – 保持默认 – 要求在**敲击F8键** 进入菜单时等待60秒。
* **pxe=service** – 使用**x86PC**作为32位/64位架构，并进入引号字符串的菜单描述提示。其它值类型可能是：PC98，IA64*EFI，Alpha，Arc*x86，Intel*Lean*Client，IA32*EFI, BC*EFI，Xscale*EFI和 X86-64*EFI。
* **enable-tftp** – 启用内建TFTP服务器。
* **tftp-root** – 使用/srv/tftp作为Debian网络启动文件的存放位置。

### 步骤2: 下载Debian网络启动文件并打开防火墙连接

**4.** 现在，该下载Debian网络启动文件了。首先，修改你当前工作目录路径到**TFTP根目录**位置，此位置由最后的配置语句定义（**/srv/tftp**系统路径）。

转到[Debian网络安装](http://www.debian.org/distrib/netinst#netboot) – [网络启动部分](http://ftp.nl.debian.org/debian/dists/wheezy/main/)的官方页面镜像，抓取以下文件，要抓取的文件取决于你想要安装到客户端的系统架构。

下载好**netboot.tar.gz**文件后，同时提取归档（该过程描述只适用于64位，但对于其它系统架构也基本相同）。

```
# cd /srv/tftp/
# wget http://ftp.nl.debian.org/debian/dists/wheezy/main/installer-amd64/current/images/netboot/netboot.tar.gz
# tar xfz netboot.tar.gz
# wget http://ftp.nl.debian.org/debian/dists/wheezy/main/installer-amd64/current/images/SHA256SUMS
# wget http://ftp.nl.debian.org/debian/dists/wheezy/Release
# wget http://ftp.nl.debian.org/debian/dists/wheezy/Release.gpg

```

同时，必须确保**TFTP**目录中的所有文件都可让TFTP服务器读取。

```
# chmod -R 755 /srv/tftp/

```

*下载Debian网络启动文件*

使用以下变量用于**Debian网络安装**镜像和架构。

```
# wget http://"$YOURMIRROR"/debian/dists/wheezy/main/installer-"$ARCH"/current/images/netboot/netboot.tar.gz
# wget http://"$YOURMIRROR"/debian/dists/wheezy/main/installer-"$ARCH"/current/images/SHA256SUMS
# wget http://"$YOURMIRROR"/debian/dists/wheezy/Release
# wget http://"$YOURMIRROR"/debian/dists/wheezy/Release.gpg

```

**5.** 下一步，启动或重启DNSMASQ守护进程，并运行netstat命令来获取服务器监听的端口列表。

```
# service dnsmasq restart
# netstat -tulpn | grep dnsmasq

```

*启动Dnsmasq服务*

**6.** 基于Debian的发行版通常附带了**UFW防火墙**包。使用以下命令来打开需要的**DNSMASQ**端口号：**67**（Bootps），**69**（TFTP），**53**（DNS）**4011**（代理DHCP）udp和**53** tcp（DNS）。

```
# ufw allow 69/udp
# ufw allow 4011/udp   ## Only if you have a ProxyDHCP on the network
# ufw allow 67/udp
# ufw allow 53/tcp
# ufw allow 53/udp

```

*开启Dnsmasq端口*

现在，位于你的客户机网络接口上的PXE加载器将使用按以下顺序从**/srv/tftp/pxelinux.cfg**目录加载**pxelinux**配置文件。

* GUID文件
* MAC文件
* 默认文件

### 步骤3： 配置客户端从网络启动

**7.** 要为你的客户端计算机启用网络启动，请进入系统**BIOS配置**（如何进入BIOS设置，请查阅硬件主板提供商的文档）。

转到**启动菜单**，然后选择**网络启动**作为**首要启动设备**（在某些系统上，你可以不用进入BIOS配置就能选择启动设备，只要在**BIOS自检**时按一个键就可以进行选择了）。

*选择BIOS设置*

**8。** 在编辑启动顺序后，通常按**F10**来保存BIOS设置。重启后，你的客户端计算机应该可以直接从网络启动了，应该会出第一个**PXE**提示，要求你按**F8**键进入菜单。

接下来，敲击**F8**键来进入，会出现一个新的提示。敲击**回车**键，屏幕上会出现**Debian安装器**主界面提示，如下图所示。

*启动菜单选择*

*选择Debian安装器启动*

*选择Debian安装*

从这里开始，你可以使用Debian 7 Wheezy安装进程将Debian安装到你的机器上了（安装链接见上面）。然而，为了能够完成安装进程，你也需要确保你的机器上互联网连接已经激活。

### 步骤4： DNSMASQ服务器排障并在系统范围内启用

**9.** 要诊断服务器以查询最终是否发生问题或要查询其它提供给客户端的信息，运行以下命令来打开日志文件。

```
# tailf /var/log/daemon.log

```

*DNSMASQ服务器排障*

**10.** 如果服务器测试中已一切就绪，你现在可以在**sysv-rc-conf**包的帮助下，启用**DNSMASQ**守护进程自启动，以使该进程在系统重启后自动启动。

```
# apt-get install sysv-rc-conf
# sysv-rc-conf dnsmaq on

```

*启用DNSMASQ守护进程*

到此为止吧！现在你的**PXE**服务器已经整装待发，随时准备好分配IP地址了（**DHCP**），并为你所有网段中的客户端提供需要的启动信息，这些信息配置用来从网络启动并安装Debian Wheezy。

使用PXE网络启动安装在服务器主机数量很多时很有优势，因为你可以在短时间内火同时设置整个网络基础架构，为版本升级提供了方便，也可以通过kickstart文件使整个安装的全自动化。

---

via: <http://212.71.234.61/network-installation-of-debian-7-on-client-machines/>

作者：[Matei Cezar](http://212.71.234.61/author/cezarmatei/) 译者：[GOLinux](https://github.com/GOLinux) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Summary: Question：我尝试在Linux编译一个程序，但是编译失败并报了一个错，fatal error: openssl/aes.h: No such file or directory。我该怎样安装要求的头文件并在我的Linux上解决这个问题？  fatal error: openssl/aes.h: No such file or directory  如果你在编译时遇到这个错误，这可能是下面的原因：你尝试编译的程序使用OpenSSL，但是需要和OpenSSL链接的文件（库和头文件）在你Linux平台上缺少。（LCTT 译注：其它类似的错误也可以照此处理）  要解决这个问题，你需要安装OpenSSL 开发包，这在所有的现代Linux发行版的标准软件仓库中都有

# Linux 有问必答：如何修复“fatal error: openssl/aes.h: No such file or directory

>
> **Question**：我尝试在Linux编译一个程序，但是编译失败并报了一个错，“fatal error: openssl/aes.h: No such file or directory”。我该怎样安装要求的头文件并在我的Linux上解决这个问题？
>
>
>

```
fatal error: openssl/aes.h: No such file or directory

```

如果你在编译时遇到这个错误，这可能是下面的原因：你尝试编译的程序使用OpenSSL，但是需要和OpenSSL链接的文件（库和头文件）在你Linux平台上缺少。（LCTT 译注：其它类似的错误也可以照此处理）

<img src="content_image/album_201411_02_145831iac9z9tuto1aww19.jpg" alt="" title="">

要解决这个问题，你需要安装**OpenSSL 开发包**，这在所有的现代Linux发行版的标准软件仓库中都有。

要在Debian、Ubuntu或者其他衍生版上安装OpenSSL：

```
$ sudo apt-get install libssl-dev

```

要在Fedora、CentOS或者RHEL上安装OpenSSL开发包：

```
$ sudo yum install openssl-devel

```

安装完后，尝试重新编译程序。

---

via: <http://ask.xmodulo.com/fix-fatal-error-openssl.html>

译者：[geekpi](https://github.com/geekpi) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出


Linux 命令行下嗅探 HTTP 流量的工具：httpry

Summary: 假设由于某种原因，你需要嗅探HTTP站点的流量（如HTTP请求与响应）。举个例子，你可能在测试一个web服务器的实验性功能，或者你在为某个web应用或RESTful服务排错，又或者你正在为PAC(proxy auto config)排错或寻找某个站点下载的恶意软件。不论什么原因，在这些情况下，进行HTTP流量嗅探对于系统管理、开发者、甚至最终用户来说都是很有帮助的。 数据包嗅工具tcpdump被广泛用于实时数据包的导出，但是你需要设置过滤规则来捕获HTTP流量，甚至它的原始输出通常不能方便的停在HTTP协议层。实时web服务器日志解析器如ngxtop可以提供可读的实

@aaashun

mark

#my evernote#

实用。在推荐个类似工具 ngrep，也很方便。

这个实在太好//@wangtuanjie_: 实用。在推荐个类似工具 ngrep，也很方便。

做手机网站的时候说不定也能用到

路由器上弄一个 //@XuYuanzhen: 转发微博

@我的印象笔记

转发微博.

Linux 命令行下嗅探 HTTP 流量的工具：httpry

可能会用到

mark

@我的印象笔记

我觉得很不错.

不错

//@宋宝华Barry://@linux内核控: //@Linux中国://@wangtuanjie_: 实用。在推荐个类似工具 ngrep，也很方便。

好东西。

@我的印象笔记

好工具。

@有道云笔记收藏

make

@我的印象笔记

# Linux 命令行下嗅探 HTTP 流量的工具：httpry

假设由于某种原因，你需要嗅探HTTP站点的流量（如HTTP请求与响应）。举个例子，你可能在测试一个web服务器的实验性功能，或者你在为某个web应用或RESTful服务排错，又或者你正在为PAC(proxy auto config)排错或寻找某个站点下载的恶意软件。不论什么原因，在这些情况下，进行HTTP流量嗅探对于系统管理、开发者、甚至最终用户来说都是很有帮助的。

数据包嗅工具tcpdump被广泛用于实时数据包的导出，但是你需要设置过滤规则来捕获HTTP流量，甚至它的原始输出通常不能方便的停在HTTP协议层。实时web服务器日志解析器如[ngxtop](http://xmodulo.com/2014/06/monitor-nginx-web-server-command-line-real-time.html)可以提供可读的实时web流量跟踪痕迹，但这仅适用于可完全访问live web服务器日志的情况。

要是有一个仅用于抓取HTTP流量的类似tcpdump的数据包嗅探工具就非常好了。事实上，[httpry](http://dumpsterventures.com/jason/httpry/)就是:**HTTP包嗅探工具**。httpry捕获HTTP数据包，并且将HTTP协议层的数据内容以可读形式列举出来。通过这篇指文章，让我们了解如何使用httpry工具嗅探HTTP流量。

### 在Linux上安装httpry

基于Debian系统（Ubuntu 或 LinuxMint），基础仓库中没有httpry安装包(译者注：本人ubuntu14.04,仓库中已有包，可直接安装)。所以我们需要通过源码安装:

```
$ sudo apt-get install gcc make git libpcap0.8-dev
$ git clone https://github.com/jbittel/httpry.git
$ cd httpry
$ make
$ sudo make install

```

在Fedora，CentOS 或 RHEL系统，可以使用如下yum命令安装httpry。在CentOS/RHEL系统上，运行yum之前使其能够访问[EPEL repo](http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html)。

```
$ sudo yum install httpry

```

如果你仍想通过基于RPM系统的源码来安装httpry的话，你可以通过这几个步骤实现：

```
$ sudo yum install gcc make git libpcap-devel
$ git clone https://github.com/jbittel/httpry.git
$ cd httpry
$ make
$ sudo make install

```

### httpry的基本用法

以下是httpry的基本用法

```
$ sudo httpry -i <network-interface>

```

httpry就会监听指定的网络接口，并且实时的显示捕获到的HTTP请求/相应。

在大多数情况下，由于发送与接到的数据包过多导致刷屏很快，难以分析。这时候你肯定想将捕获到的数据包保存下来以便离线分析。可以使用'b'或'-o'选项保存数据包。'-b'选项将数据包以二进制文件的形式保存下来，这样可以使用httpry软件打开文件以浏览。另一方面，'-o'选项将数据以可读的字符文件形式保存下来。

以二进制形式保存文件：

```
$ sudo httpry -i eth0 -b output.dump

```

浏览所保存的HTTP数据包文件：

```
$ httpry -r output.dump

```

注意，不需要根用户权限就可以使用'-r'选项读取数据文件。

将httpry数据以字符文件保存：

```
$ sudo httpry -i eth0 -o output.txt

```

### httpry 的高级应用

如果你想监视指定的HTTP方法（如：GET，POST，PUT，HEAD，CONNECT等），使用'-m'选项：

```
$ sudo httpry -i eth0 -m get,head

```

如果你下载了httpry的源码，你会发现源码下有一些Perl脚本，这些脚本用于分析httpry输出。脚本位于目录httpry/scripts/plugins。如果你想写一个定制的httpry输出分析器，则这些脚可以作为很好的例子。其中一些有如下的功能：

* **hostnames**: 显示唯一主机名列表。
* **find\_proxies**: 探测web代理。
* **search\_terms**: 查找及统计在搜索服务里面的搜索词。
* **content\_analysis**: 查找含有指定关键的URL。
* **xml\_output**: 将输出转换为XML形式。
* **log\_summary**: 生成日志汇总。
* **db\_dump**: 将日志文件数据保存数据库。

在使用这些脚本之前，首先使用'-o'选项运行httpry。当获取到输出文件后，立即使用如下命令执行脚本：

```
$ cd httpry/scripts
$ perl parse_log.pl -d ./plugins <httpry-output-file>

```

你可能在使用插件的时候遇到警告。比如，如果你没有安装带有DBI接口的MySQL数据库，那么使用db\_dump插件时可能会失败。如果一个插件初始化失败的话，那么只是这个插件不能使用，所以你可以忽略那些警告。

当parse\_log.pl完成后，你将在httpry/scripts 目录下看到数个分析结果。例如，log\_summary.txt 与如下内容类似。

总的来说，当你要分析HTTP数据包的时候，httpry非常有用。它可能并不被大多Linux使用者所熟知，但会用总是有好处的。你觉得这个工具怎么样呢？

---

via: <http://xmodulo.com/2014/08/sniff-http-traffic-command-line-linux.html>

作者：[Dan Nanni](http://xmodulo.com/author/nanni) 译者：[DoubleC](https://github.com/DoubleC) 校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出