+ # utmpdump -r tmp_output > /var/log/utmp
+
+This can be useful when you want to remove or fix any bogus entry in the binary logs.
+
+To sum up, utmpdump complements standard utilities such as who, w, uptime, last, lastb by dumping detailed login events stored in utmp, wtmp and btmp log files, as well as in their rotated old archives, and that certainly makes it a great utility.
+
+Feel free to enhance this post with your comments.
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/09/monitor-user-login-history-centos-utmpdump.html
+
+作者:[Gabriel Cánepa][a]
+译者:[译者ID](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/gabriel
+[1]:http://xmodulo.com/2014/09/logrotate-manage-log-files-linux.html
\ No newline at end of file
diff --git a/translated/news/20140910 Jelly Conky Adds Simple, Stylish Stats To Your Linux Desktop.md b/translated/news/20140910 Jelly Conky Adds Simple, Stylish Stats To Your Linux Desktop.md
new file mode 100644
index 0000000000..7ef4156aa3
--- /dev/null
+++ b/translated/news/20140910 Jelly Conky Adds Simple, Stylish Stats To Your Linux Desktop.md
@@ -0,0 +1,36 @@
+Jelly Conky给你的Linux桌面加入了简约、时尚的状态
+================================================================================
+**我把Conky设置成有点像壁纸:我会找出一张我喜欢的,只在下一周更换因为我厌倦了并且想要一点改变。**
+
+不耐烦的一部分原因是由于日益增长的设计目录。我最近最喜欢的是Jelly Conky。
+
+![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/jelly-conky.png)
+
+我们最近强调的许多Conky所夸耀的最小设计都遵循了。它并不想成为一个厨房水槽。它不会被那些需要一眼需要看到他们硬盘温度和IP地址的人所青睐
+
+它配备了三种不同的模式,它们都可以添加个性的或者静态背景图像:
+
+- 时钟
+- 时钟加日期
+- 时钟加日期和天气
+
+一些人不理解为什么要在桌面上拥有重复的时钟。这是很好理解的。对于我而言,这不仅仅是功能(虽然,个人而言,Conky的时钟比挤在上部面板上那渺小的数字要更容易看清)。
+
+机会是如果你的Android主屏幕有一个时间小部件的话,你不会介意在你的桌面上也有这么一个
+
+
+- [从Deviant Art上下载 Jelly Conky][2]
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/09/jelly-conky-for-linux-desktop
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:http://www.omgubuntu.co.uk/2014/07/conky-circle-theme-nod-lg-quick-cover
+[2]:http://zagortenay333.deviantart.com/art/Jelly-Conky-442559003
\ No newline at end of file
diff --git a/translated/news/20140924 Canonical Closes nginx Exploit in Ubuntu 14.04 LTS.md b/translated/news/20140924 Canonical Closes nginx Exploit in Ubuntu 14.04 LTS.md
new file mode 100644
index 0000000000..3afcf92fe7
--- /dev/null
+++ b/translated/news/20140924 Canonical Closes nginx Exploit in Ubuntu 14.04 LTS.md
@@ -0,0 +1,37 @@
+Canonical在Ubuntu 14.04 LTS中关闭了一个nginx漏洞
+================================================================================
+> 用户不得不升级他们的系统来修复这个漏洞
+
+![Ubuntu 14.04 LTS](http://i1-news.softpedia-static.com/images/news2/Canonical-Closes-Nginx-Exploit-in-Ubuntu-14-04-LTS-459677-2.jpg)
+
+Ubuntu 14.04 LTS
+
+**Canonical已经在安全公告中公布了这个影响到Ubuntu 14.04 LTS (Trusty Tahr)的nginx漏洞的细节。这个问题已经被确定并被修复了**
+
+Ubuntu的开发者已经修复了nginx的一个小漏洞。他们解释nginx可能已经被用来暴露网络上的敏感信息。
+
+
+根据安全公告,“Antoine Delignat-Lavaud和Karthikeyan Bhargavan发现nginx错误地重复使用了缓存的SSL会话。攻击者可能利用此问题,在特定的配置下,可以从不同的虚拟主机获得信息“。
+
+对于这些问题的更详细的描述,可以看到Canonical的安全[公告][1]。用户应该升级自己的Linux发行版以解决此问题。
+
+这个问题可以通过在系统升级到最新nginx包(和依赖v包)进行修复。要应用该补丁,你可以直接运行升级管理程序。
+
+如果你不想使用软件更新器,您可以打开终端,输入以下命令(需要root权限):
+
+ sudo apt-get update
+ sudo apt-get dist-upgrade
+
+在一般情况下,一个标准的系统更新将会进行必要的更改。要应用此修补程序您不必重新启动计算机。
+--------------------------------------------------------------------------------
+
+via: http://news.softpedia.com/news/Canonical-Closes-Nginx-Exploit-in-Ubuntu-14-04-LTS-459677.shtml
+
+作者:[Silviu Stahie][a]
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://news.softpedia.com/editors/browse/silviu-stahie
+[1]:http://www.ubuntu.com/usn/usn-2351-1/
\ No newline at end of file
diff --git a/translated/news/20140924 Wal Commander GitHub Edition 0.17 released.md b/translated/news/20140924 Wal Commander GitHub Edition 0.17 released.md
new file mode 100644
index 0000000000..1698210390
--- /dev/null
+++ b/translated/news/20140924 Wal Commander GitHub Edition 0.17 released.md
@@ -0,0 +1,37 @@
+Wal Commander 0.17 Github版发布了
+================================================================================
+![](http://wcm.linderdaum.com/wp-content/uploads/2014/09/wc21.png)
+
+> ### 描述 ###
+>
+、> Wal Commander GitHub 版是一款多平台的开源文件管理器。适用于Windows、Linux、FreeBSD、和OSX。
+>
+> 这个从项目的目的是创建一个模仿Far管理器外观和感觉的便携式文件管理器。
+
+The next stable version of our Wal Commander GitHub Edition 0.17 is out. Major features include command line autocomplete using the commands history; file associations to bind custom commands to different actions on files; and experimental support of OS X using XQuartz. A lot of new hotkeys were added in this release. Precompiled binaries are available for Windows x64. Linux, FreeBSD and OS X versions can be built directly from the [GitHub source code][1].
+Wal Commander 的下一个Github稳定版本0.17 已经出来了。主要功能包括:使用命令历史自动补全;文件关联绑定自定义命令对文件的各种操作;和用XQuartz实验性地支持OS X。很多新的快捷键添加在此版本中。预编译二进制文件适用于Windows64、Linux,FreeBSD和OS X版本,这些可以直接从[GitHub中的源代码][1]编译。
+
+### 主要特性 ###
+
+- 命令行自动补全 (使用Del键删除一条命令)
+- 文件关联 (主菜单 -> 命令 -> 文件关联)
+- XQuartz上实验性地支持OS X ([https://github.com/corporateshark/WalCommander/issues/5][2])
+
+### [下载][3] ###.
+
+源代码: [https://github.com/corporateshark/WalCommander][4]
+
+
+--------------------------------------------------------------------------------
+
+via: http://wcm.linderdaum.com/release-0-17-0/
+
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:https://github.com/corporateshark/WalCommander/releases
+[2]:https://github.com/corporateshark/WalCommander/issues/5
+[3]:http://wcm.linderdaum.com/downloads/
+[4]:https://github.com/corporateshark/WalCommander
\ No newline at end of file
diff --git a/translated/talk/20140828 Interesting facts about Linux.md b/translated/talk/20140828 Interesting facts about Linux.md
new file mode 100644
index 0000000000..689003b93b
--- /dev/null
+++ b/translated/talk/20140828 Interesting facts about Linux.md
@@ -0,0 +1,85 @@
+Linux趣事
+================================================================================
+今天,8月25号,是Linux的第23个生日。1991年,8月25日,21岁的赫尔辛基大学的学生发布了举世闻名的[新闻组][1](Usenet post),标志着现在世界著名的Linux正式诞生。
+
+23年以后的今天,linux已经无处不在,不仅仅被安装于桌面系统,[智能手机][2]和嵌入式系统,甚至也被[龙头企业][3]用于他们的关键系统,比如说像[美国海军的核潜艇][4](US Navy's nuclear submarines)和[联邦航空局的空中管制系统][5](FAA's air traffic control)。进入无处不在的云计算时代,linux在云计算平台方面仍然保持着它的优势。
+
+今天,我们一起庆祝linux 23岁生日,就让我们告诉你**一些你可能不知道的linux趣事和linux历史**。如果有什么要补充的,请在评论中分享出来。在这篇文章里,我可能用会用“linux”,“kernel”和“Linux kernel”来表示同一个意思。
+
+1.关于linux是否是一个开源的操作系统这种争论一直是无休无止的。事实上,“Linux”操作系统的核心组件参照的是Linux kernel(内核)。而反派认为Linux不是一个纯粹的操作系统,因为他们认为仅仅一个内核(kernel),并不是一个操作系统,自由软件的推崇者认为最大的操作系统应叫做“[GNU/Linux][7]”把功劳归于应得的人。(比如:[GNU project][8])。另一方面,一些linux的开发者认为,linux拥有成为一个操作系统的资格,因为它实现了[POSIX标准][9]。
+
+2.从openhub网站的统计来看,绝大部分(95%)的Linux是用C语言写的。第二(2.8%)受欢迎的是汇编语言。毫无疑问,C语言比C++ 的更受欢迎,也表明了linus对C++的立场。下面是Linus编程语言的分类。
+
+![](https://farm4.staticflickr.com/3845/15025332121_055cfe3a2c_z.jpg)
+
+3.在世界上,Linux已经被[13,036个贡献者][10]创建和修改。当然,贡献最多的还是Linus Torvalds自己。直到目前,他提交了20,000次以上的代码。下图显示了所有提交次数最多的前十位Linux贡献者。
+
+![](https://farm4.staticflickr.com/3837/14841786838_7a50625f9d_b.jpg)
+
+4.Linux的代码行(SLOC)有超过1700万行。估计整个代码库的花费大概是5,526人年,或者是超过300M(1M=10*1000万亿)美元,[基于模型的基本估算法][11](basic COCOMO model)。
+
+5.企业并不是单纯的Linux消费者。他们的员工也在[积极参与][12]Linux的开发。下图显示了前十的Linux内核开发参与的企业员工2013年提交次数的总和。他们包括linux的商业版发行者(Red Hat,SUSE),芯片/嵌入式系统制造商(Intel,Texas Instrument,wolfson),非盈利性组织(Linaro)和其他的IT公司(IBM,Samsung,Google)。
+
+![](https://farm6.staticflickr.com/5573/14841856427_a5a1828245_o.png)
+
+6.Linux的官方吉祥物是“小企鹅”,一个非常可爱的企鹅标志。[第一次提出][13]并决定小企鹅作为Linux吉祥物/标志这个想法的是Linus自己。为什么是小企鹅呢?因为Linus本人很喜欢企鹅,尽管他曾经被一只凶猛的企鹅咬伤过,还导致他得了一场病。
+
+7.一个Linux系统“包括”Linux内核、支持GUN的组件和库、和一些第三方的应用。[distrowatch网站][14]显示,现在总共有286个活跃的Linux发行版。其中最老的一个版本叫[Slackware][15],它是从1993年正式发布出来的一个可用的版本。
+
+8.Kernel.org是一个Linux源码的主要仓库,曾经在2011年8月被一个匿名的攻击者[攻陷][16],攻击者打算篡改kernel.org的服务器。为了加强linux内核的访问策略的安全性,Linux基金会最近在Linux内核的Git官方托管的仓库上[开启了][17]双重认证。
+
+9.Linux在500强超级计算机中的优势还在[增加][18]。截至2014年6月,运算速度最快的计算机97%都是运行在Linux上面的。
+
+10.太空监视(spacewatch),是亚利桑那大学月球与行星实验室的一个研究项目,在GNU/Linux和它的创造者们出现之后,用他们名字命名了几颗小行星([小行星9793 Torvalds][19],[小行星9882 Stallman][20],[小行星9885 Linux][21],[小行星9965 GUN][22]),以表彰他们把开源操作系统用于他们的小行星调查活动。
+
+11.纵观Linux内核发展得近代史,版本从2.6到3.0有一个很大的跳跃。这个[重编的版本号3][23]实际上并不是意味着Linux内核有什么重大的构建,但却标志着Linux 20周年的一个里程碑。
+
+12.在2000年的时候,乔帮主还在苹果。他当时就[尝试雇佣][24]Linus Torvalds,让他放弃Linux的开发,转而为“Unix最大的用户群工作”,这个项目后面发展成了MAC OS X。当时,linus拒绝了乔帮主的邀请。
+
+13.Linux 内核的重启函数[reboot()][25]要求两个神奇的数字,而这第二个数字来自Linus Torvalds和他的3个女儿的出生日期。
+
+14.虽然全世界都有Linux的很多粉丝,但是也仍然存在很多对Linux的批评(主要是桌面系统),如缺乏硬件支持,缺乏标准化,由于很短的升级和发布周期导致系统的不稳定,等。2014年Linux内核小组在linuxCon大会上,当Linus被问及Linux的未来将何去何从,他表示“I still want the desktop”(我仍然希望桌面化)。
+
+如果你还知道些关于Linux的趣事,请写在评论里。
+
+生日快乐,Linux!
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/08/interesting-facts-linux.html
+
+作者:[Dan Nanni][a]
+译者:[barney-ro](https://github.com/barney-ro)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/nanni
+[1]:https://groups.google.com/forum/message/raw?msg=comp.os.minix/dlNtH7RRrGA/SwRavCzVE7gJ
+[2]:http://developer.android.com/about/index.html
+[3]:http://fortune.com/2013/05/06/how-linux-conquered-the-fortune-500/
+[4]:http://www.linuxjournal.com/article/7789
+[5]:http://fcw.com/Articles/2006/05/01/FAA-manages-air-traffic-with-Linux.aspx
+[6]:http://thecloudmarket.com/stats
+[7]:http://www.gnu.org/gnu/why-gnu-linux.html
+[8]:http://www.gnu.org/gnu/gnu-history.html
+[9]:http://en.wikipedia.org/wiki/POSIX
+[10]:https://www.openhub.net/p/linux/contributors/summary
+[11]:https://www.openhub.net/p/linux/estimated_cost
+[12]:http://www.linuxfoundation.org/publications/linux-foundation/who-writes-linux-2013
+[13]:http://www.sjbaker.org/wiki/index.php?title=The_History_of_Tux_the_Linux_Penguin
+[14]:http://distrowatch.com/search.php?ostype=All&category=All&origin=All&basedon=All¬basedon=None&desktop=All&architecture=All&status=Active
+[15]:http://www.slackware.com/info/
+[16]:http://pastebin.com/BKcmMd47
+[17]:http://www.linux.com/news/featured-blogs/203-konstantin-ryabitsev/784544-linux-kernel-git-repositories-add-2-factor-authentication
+[18]:http://www.top500.org/statistics/details/osfam/1
+[19]:http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=9793
+[20]:http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=9882
+[21]:http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=9885
+[22]:http://ssd.jpl.nasa.gov/sbdb.cgi?sstr=9965
+[23]:https://lkml.org/lkml/2011/5/29/204
+[24]:http://www.wired.com/2012/03/mr-linux/2/
+[25]:http://lxr.free-electrons.com/source/kernel/reboot.c#L199
+[26]:http://www.nndb.com/people/444/000022378/
+[27]:http://linuxfonts.narod.ru/why.linux.is.not.ready.for.the.desktop.current.html
+[28]:https://www.youtube.com/watch?v=8myENKt8bD0
diff --git a/translated/talk/20140904 Making MySQL Better at GitHub.md b/translated/talk/20140904 Making MySQL Better at GitHub.md
new file mode 100644
index 0000000000..6afac31f2a
--- /dev/null
+++ b/translated/talk/20140904 Making MySQL Better at GitHub.md
@@ -0,0 +1,92 @@
+优化 GitHub 服务器上的 MySQL 数据库性能
+================================================================================
+> 在 GitHub 我们总是说“如果网站响应速度不够快,说明我们的工作没完成”。我们之前在[前端的体验速度][1]这篇文章中介绍了一些提高网站响应速率的方法,但这只是故事的一部分。真正影响到 GitHub.com 性能的因素是 MySQL 数据库架构。让我们来瞧瞧我们的基础架构团队是如何无缝升级了 MySQL 架构吧,这事儿发生在去年8月份,成果就是大大提高了 GitHub 网站的速度。
+
+### 任务 ###
+
+去年我们把 GitHub 上的大部分数据移到了新的数据中心,这个中心有世界顶级的硬件资源和网络平台。自从使用了 MySQL 作为我们的后端基本存储系统,我们一直期望着一些改进来大大提高数据库性能,但是在数据中心使用全新的硬件来部署一套全新的集群环境并不是一件简单的工作,所以我们制定了一套计划和测试工作,以便数据能平滑过渡到新环境。
+
+### 准备工作 ###
+
+像我们这种关于架构上的巨大改变,在执行的每一步都需要收集数据指标。新机器上安装好了基础操作系统,接下来就是测试新配置下的各种性能。为了模拟真实的工作负载环境,我们使用 tcpdump 工具从老集群那里复制正在发生的 SELECT 请求,并在新集群上重新响应一遍。
+
+MySQL 微调是个繁琐的细致活,像众所周知的 innodb_buffer_pool_size 这个参数往往能对 MySQL 性能产生巨大的影响。对于这类参数,我们必须考虑在内,所以我们列了一份参数清单,包括 innodb_thread_concurrency,innodb_io_capacity,和 innodb_buffer_pool_instances,还有其它的。
+
+在每次测试中,我们都很小心地只改变一个参数,并且让一次测试至少运行12小时。我们会观察响应时间的变化曲线,每秒的响应次数,以及有可能会导致并发性降低的参数。我们使用 “SHOW ENGINE INNODB STATUS” 命令打印 InnoDB 性能信息,特别观察了 “SEMAPHORES” 一节的内容,它为我们提供了工作负载的状态信息。
+
+当我们在设置参数后对运行结果感到满意,然后就开始将我们最大的一个数据表格迁移到一套独立的集群上,这个步骤作为整个迁移过程的早期测试,保证我们的核心集群空出更多的缓存池空间,并且为故障切换和存储功能提供更强的灵活性。这步初始迁移方案也引入了一个有趣的挑战:我们必须维持多条客户连接,并且要将这些连接重定向到正确的集群上。
+
+除了硬件性能的提升,还需要补充一点,我们同时也对处理进程和拓扑结构进行了改进:我们添加了延时拷贝技术,更快、更高频地备份数据,以及更多的读拷贝空间。这些功能已经准备上线。
+
+### 列出任务清单,三思后行 ###
+
+每天有上百万用户的使用 GitHub.com,我们不可能有机会进行实际意义上的数据切换。我们有一个详细的[任务清单][2]来执行迁移:
+
+![](https://cloud.githubusercontent.com/assets/1155781/4116929/13fc6f50-328b-11e4-837b-922aad3055a8.png)
+
+我们还规划了一个维护期,并且[在我们的博客中通知了大家][3],让用户注意到这件事情。
+
+### 迁移时间到 ###
+
+太平洋时间星期六上午5点,我们的迁移团队上线集合聊天,同时数据迁移正式开始:
+
+![](https://cloud.githubusercontent.com/assets/1155781/4060850/39f52cd4-2df3-11e4-9aca-1f54a4870d24.png)
+
+我们将 GitHub 网站设置为维护模式,并在 Twitter 上发表声明,然后开始按上述任务清单的步骤开始工作:
+
+![](https://cloud.githubusercontent.com/assets/1155781/4060864/54ff6bac-2df3-11e4-95da-b059c0ec668f.png)
+
+**13 分钟**后,我们确保新的集群能正常工作:
+
+![](https://cloud.githubusercontent.com/assets/1155781/4060870/6a4c0060-2df3-11e4-8dab-654562fe628d.png)
+
+然后我们让 GitHub.com 脱离维护期,并且让全世界的用户都知道我们的最新状态:
+
+![](https://cloud.githubusercontent.com/assets/1155781/4060878/79b9884c-2df3-11e4-98ed-d11818c8915a.png)
+
+大量前期的测试工作与准备工作,让我们将维护期缩到最短。
+
+### 检验最终的成果 ###
+
+在接下来的几周时间里,我们密切监视着 GitHub.com 的性能和响应时间。我们发现迁移后网站的平均加载时间减少一半,并且在99%的时间里,能减少*三分之二*:
+
+![](https://cloud.githubusercontent.com/assets/1155781/4060886/9106e54e-2df3-11e4-8fda-a4c64c229ba1.png)
+
+### 我们学到了什么 ###
+
+#### 功能划分 ####
+
+在迁移过程中,我们采用了一个比较好的方法是:将大的数据表(主要记录了一些历史数据)先迁移过去,空出旧集群的磁盘空间和缓存池空间。这一步给我们留下了更过的资源用户维护“热”数据,将一些连接请求分离到多套集群里面。这步为我们之后的胜利奠定了基础,我们以后还会使用这种模式来进行迁移工作。
+
+#### 测试测试测试 ####
+
+为你的应用做验收测试和回归测试,越多越好,多多益善,不要嫌多。从老集群复制数据到新集群的过程中,如果进行验收测试和响应状态测试,得到的数据是不准的,如果数据不理想,这是正常的,不要惊讶,不要试图拿这些数据去分析原因。
+
+#### 合作的力量 ####
+
+对基础架构进行大的改变,通常需要涉及到很多人,我们要像一个团队一样为共同的目标而合作。我们的团队成员来自全球各地。
+
+团队成员地图:
+
+![](https://render.githubusercontent.com/view/geojson?url=https://gist.githubusercontent.com/anonymous/5fa29a7ccbd0101630da/raw/map.geojson)
+
+本次合作新创了一种工作流程:我们提交更改(pull request),获取实时反馈,查看修改了错误的 commit —— 全程没有电话交流或面对面的会议。当所有东西都可以通过 URL 提供信息,不同区域的人群之间的交流和反馈会变得非常简单。
+
+### 一年后。。。 ###
+
+整整一年时间过去了,我们很高兴地宣布这次数据迁移是很成功的 —— MySQL 性能和可靠性一直处于我们期望的状态。另外,新的集群还能让我们进一步去升级,提供更好的可靠性和响应时间。我将继续记录这些优化过程。
+
+--------------------------------------------------------------------------------
+
+via: https://github.com/blog/1880-making-mysql-better-at-github
+
+作者:[samlambert][a]
+译者:[bazz2](https://github.com/bazz2)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://github.com/samlambert
+[1]:https://github.com/blog/1756-optimizing-large-selector-sets
+[2]:https://help.github.com/articles/writing-on-github#task-lists
+[3]:https://github.com/blog/1603-site-maintenance-august-31st-2013
diff --git a/translated/talk/20140904 The Masked Avengers.md b/translated/talk/20140904 The Masked Avengers.md
new file mode 100644
index 0000000000..2add033d0f
--- /dev/null
+++ b/translated/talk/20140904 The Masked Avengers.md
@@ -0,0 +1,377 @@
+戴着面具的复仇者 —— 揭秘:激进黑客组织“匿名者”
+
+从“突尼斯政变”到“弗格森枪击事件”,“匿名者”组织是如何煽动起网络示威活动的。
+
+
+
+通过入会声明,任何人都能轻易加入“匿名者”组织。某人类学家称,组织成员会“根据影响程度对重大事件保持着不同关注,特别是那些能挑起强烈争端的事件”。
+
+布景:Jeff Nishinaka / 摄影:Scott Dunbar
+
+1
+
+上世纪七十年代中期,当 Christopher Doyon 还是一个生活在缅因州乡村的孩童时,就终日泡在 CB radio 上与各种陌生人聊天。他的昵称是“大红”,因为他有一头红色的头发。Christopher Doyon 把发射机挂在了卧室的墙壁上,并且说服了父亲在自家屋顶安装了两根天线。CB radio 主要用于卡车司机间的联络,但 Doyon 和一些人却将之用于不久后出现在 Internet 上的虚拟社交——自定义昵称、成员间才懂的笑话,以及施行变革的强烈愿望。
+
+Doyon 很小的时候母亲就去世了,兄妹二人由父亲抚养长大,他俩都说受到过父亲的虐待。由此 Doyon 在 CB radio 社区中找到了慰藉和归属感。他和他的朋友们轮流监听当地紧急事件频道。其中一个朋友的父亲买了一个气泡灯并安装在了他的车顶上;每当这个孩子收听到来自孤立无援的乘车人的求助后,都会开车载着所有人到求助者所在的公路旁。除了拨打 911 外他们基本没有什么可做的,但这足以让他们感觉自己成为了英雄。
+
+短小精悍的 Doyon 有着一口浓厚的新英格兰口音,并且非常喜欢《星际迷航》和阿西莫夫的小说。当他在《大众机械》上看到一则“组装你的专属个人计算机”构件广告时,就央求祖父给他买一套,接下来 Doyon 花了数月的时间把计算机组装起来并连接到 Internet 上去。与鲜为人知的 CB 电波相比,在线聊天室确实不可同日而语。“我只需要点一下按钮,再选中某个家伙的名字,然后我就可以和他聊天了,” Doyon 在最近回忆时说道,“这真的很惊人。”
+
+十四岁那年,Doyon 离家出走,两年后他搬到了马萨诸塞州的剑桥,那里是一个新出现的计算机反主流文化的中心。同一时间,早在 34 年前就已由麻省理工学院的铁路狂热爱好者们创立的铁路模型技术俱乐部,已经演变成了“黑客”——也是推广该词的第一个组织。Richard Stallman,在那时还是一名任职于麻省理工学院人工智能实验室的计算机科学家,指出早期黑客们比起引发技术战争更乐于讨论“哥德尔、艾舍尔、巴赫”之类的话题。“我们没有任何约束”,Stallman 说,“这不是一项运动,而是一种可以让人们相互留下深刻印象的行为。”其中有些“行为”很有趣(制作电子游戏);有些非常实用(提高计算机处理速度);还有些则属于发生在真实世界里的恶作剧(在校园内放置模拟街道标识)。Michael Patton,在七十年代里管理着铁路模型技术俱乐部的人,谈起初代黑客间不成文的规定,说第一条就是“不要搞破坏”。
+
+在剑桥,Doyon 以打零工和乞讨为生,他宁愿为了自由而睡在公园的长椅上,也不愿被单调的固定工作所束缚。1985 年,他和其他六个活跃分子共同组建了一支电子“义勇军”。模仿“动物解放阵线”,他们称呼自己为“人民解放阵线”(Peoples Liberation Front,PLF)。所有人都使用化名:如组织的创建者,声称自己是老兵的一位高大中年男子,自称“Commander Adama”;Doyon 则选择了“Commander X”这个称呼。受 “Merry Pranksters” 启示,他们在 Grateful Dead 的演唱会上出售 LSD(lysergic acid diethylamide,麦角酸酰二乙胺,一种迷幻药),并用收入的一部分购置了一辆二手校车,以及扩音器、相机,还有电源充电器。同时在剑桥租了一间地下公寓,Doyon 偶尔会在那里歇息。
+
+Doyon 深深地沉溺于计算机中,虽然他并不是一位专业的程序员。在过去一年的几次谈话中,他告诉我他将自己视为激进主义分子,继承了 Abbie Hoffman 和 Eldridge Cleaver 的激进传统;技术不过是他抗议的工具。八十年代,哈佛大学和麻省理工学院的学生们举行集会,强烈抗议他们的学校从南非撤资。为了帮助抗议者通过安全渠道进行交流,PLF 制作了无线电套装:移动调频发射器、伸缩式天线,还有麦克风,所有部件都内置于背包内。Willard Johnson,麻省理工学院的一位激进分子和政治学家,表示黑客们出席集会并不意味着一次变革。“我们的大部分工作仍然是通过扩音器来完成的,”他解释道。
+
+1992 年,在 Grateful Dead 的一场印第安纳的演唱会上,Doyon 秘密地向一位瘾君子出售了 300 粒药。由此他被判决在印第安纳州立监狱服役十二年,后来改为五年。服役期间,他对宗教和哲学产生了浓厚的兴趣,并于鲍尔州立大学学习了相应课程。
+
+1994 年,第一款商业 Web 浏览器网景领航员正式发布,同一年 Doyon 被捕入狱。当他出狱并再次回到剑桥后,PLF 依然活跃着,并且他们的工具有了实质性的飞跃。Doyon 回忆起和他入狱之前的变化,“非常巨大——好比是‘烽火狼烟’跟‘电报传信’之间那么大的差距。”黑客们入侵了一个印度的军事网站,并修改其首页文字为“拯救克什米尔”。在塞尔维亚,黑客们攻陷了一个阿尔巴尼亚网站。Stefan Wray,一位早期网络激进主义分子,为一次纽约“反哥伦布日”集会上的黑客行径辩护。“我们视之为电子形式的公众抗议,”他告诉大家。
+
+1999 年,美国唱片业协会因为版权侵犯问题起诉了 Napster,一款文件共享软件。最终,Napster 于 2001 年关闭。Doyon 与其他黑客使用分布式拒绝服务(Distributed Denial of Service,DDoS,使大量数据涌入网站导致其响应速度减缓直至奔溃)的手段,攻击了美国唱片业协会的网站,使之停运时间长达一星期之久。Doyon为自己的行为进行了辩解,并高度赞扬了其他的“黑客主义者”。“我们很快意识到保卫 Napster 的战争象征着保卫 Internet 自由的战争,”他在后来写道。
+
+2008 年的一天,Doyon 和 “Commander Adama” 在剑桥的 PLE 地下公寓相遇。Adama 当着 Doyon 的面点击了癫痫基金会的一个链接,与意料中将要打开的论坛不同,出现的是一连串闪烁的彩光。有些癫痫病患者对闪光灯非常敏感——这完全是出于恶意,有人想要在无辜群众中诱发癫痫病。已经出现了至少一名受害者。
+
+Doyon 愤怒了。他质问 Adama 什么样的人才会做出这样的事来。
+
+“你听说过‘匿名者’组织吗?” Adama 问。
+
+2
+
+2003 年,一位来自纽约的已经患病 15 年的失眠症患者 Christopher Poole,推出了 4chan 讨论社区,在这里用户们可以随意发布照片或者尖锐评论。随后其关注点迅速从动漫延伸到许多 Internet 的早期文化基因,如:LOLcats、Chocolate Rain、RickRolls。当用户没有按照屏幕上的要求输入昵称时,将会得到系统默认的“匿名者”(Anonymous)称呼。
+
+
+
+“我得谈谈我的感受。”
+
+Poole 希望匿名这一举措可以延续社区的尖锐性因素。“我们无意参与理智的涉外事件讨论,”他在网站上写道。4chan 社区里最具价值的事之一便是寻求“挑起强烈的争端”(lulz),这个词源自缩写 LOL。Lulz 经常是通过分享充满孩子气的笑话或图片来实现的,它们中的大部分不是色情的就是下流的。其中最令人震惊的部分被贴在了网站的“/b/”版块上,这里的用户们称呼自己为“/b/tards”。Doyon 知道 4chan 这个社区,但他认为那些用户是“一群愚昧无知的顽童”。2004 年前后,/b/ 上的部分用户开始把“匿名者”视为一个独立的实体。
+
+这是一个全新的黑客团体。“这不是一个传统意义上的组织,”一位领导计算机安全工作的研究员 Mikko Hypponen 告诉我——倒不如,视之为一个非传统的亚文化群体。Barrett Brown,德克萨斯州的一名记者,同时也是众所周知的“匿名者”高层领导,把“匿名者”描述为“一连串前仆后继的伟大友谊”。无需任何会费或者入会仪式。任何想要加入“匿名者”组织,成为一名匿名者(Anon)的人,都可以通过简短的象征性的宣誓加入。
+
+尽管 4chan 的关注焦点是一些琐碎的话题,但许多匿名者认为自己就是“正义的十字军”。如果网上有不良迹象出现,他们就会发起具有针对性的治安维护行动。不止一次,他们以未成年少女的身份套取恋童癖的私人信息,然后把这些信息交给警察局。其他匿名者则是政治的厌恶者,为了挑起争端想方设法散布混乱的信息。他们中的一些人在 /b/ 上发布看着像是雷管炸弹的图片;另一些则叫嚣着要炸毁足球场并因此被联邦调查局逮捕。2007 年,一家洛杉矶当地的新闻联盟机构称呼“匿名者”组织为“互联网负能量制造机”。
+
+2008 年 1 月,Gawker Media 上传了一段关于汤姆克鲁斯大力吹捧山达基优点的视频。这段视频是受版权保护的,山达基教会致信 Gawker,勒令其删除这段视频。“匿名者”组织认为教会企图控制网络信息。“是时候让 /b/ 来干票大的了,”有人在 4chan 上写道。“我说的是‘入侵’或者‘攻陷’山达基官方网站。”一位匿名者使用 YouTube 放出一段“新闻稿”,其中包括暴雨云视频和经过计算机处理的语音。“我们要立刻把你们从 Internet 上赶出去,并且在现有规模上逐渐瓦解山达基教会,”那个声音说,“你们无处可躲。”不到一个星期,这段 YouTube 视频的点击率就超过了两百万次。
+
+“匿名者”组织已经不仅限于 4chan 社区。黑客们在专用的互联网中继聊天(Internet Relay Chat channels,IRC 聊天室)频道内进行交流,协商策略。通过 DDoS 攻击手段,他们使山达基的主网站间歇性崩溃了好几天。匿名者们制造了“谷歌炸弹”,由此导致 “dangerous cult” 的搜索结果中的第一条结果就是山达基主网站。其余的匿名者向山达基的欧洲总部寄送了数以百计的披萨,并用大量全黑的传真单耗干了洛杉矶教会总部的传真机墨盒。山达基教会,据报道拥有超过十亿美元资产的组织,当然能经得起墨盒耗尽的考验。但山达基教会的高层可不这么认为,他们还收到了严厉的恐吓,由此他们不得不向 FBI 申请逮捕“匿名者”组织的成员。
+
+2008 年 3 月 15 日,在从伦敦到悉尼的一百多个城市里,数以千计匿名者们游行示威山达基教会。为了切合“匿名”这个主题,组织者下令所有的抗议者都应该佩戴相同的面具。深思熟虑过蝙蝠侠后,他们选定了 2005 年上映的反乌托邦电影《 V 字仇杀队》中 Guy Fawkes 的面具。“在每个大城市里都能以很便宜的价格大量购买,”广为人知的匿名者、游行组织者之一 Gregg Housh 告诉我说道。漫画式的面具上是一个的脸颊红润的男人,八字胡,有着灿烂的笑容。
+
+匿名者们并未“瓦解”山达基教会。并且汤姆克鲁斯的那段视频任然保留在网络上。匿名者们证明了自己的顽强。组织选择了一个相当浮夸的口号:“我们是一体。绝不宽恕。永不遗忘。相信我们。”(We are Legion. We do not forgive. We do not forget. Expect us.)
+
+3
+
+2010 年,Doyon 搬到了加利福尼亚州的圣克鲁斯,并加入了当地的“和平阵营”组织。利用从木材堆置场偷来的木头,他在山上盖起了一间简陋的小屋,“借用”附近住宅的 WiFi,使用太阳能电池板发电,并通过贩卖种植的大麻换取现金。
+
+与此同时,“和平阵营”维权者们每天晚上开始在公共场所休息,以此抗议圣克鲁斯政府此前颁布的“流浪者管理法案”,他们认为这项法案严重侵犯了流浪者的生存权。Doyon 出席了“和平阵营”的会议,并在网上发起了抗议活动。他留着蓬乱的红色山羊胡,戴一顶米黄色软呢帽,像军人那样不知疲倦。因此维权者们送给了他“罪恶制裁克里斯”的称呼。
+
+“和平阵营”的成员之一 Kelley Landaker 曾几次和 Doyong 讨论入侵事宜。Doyon 有时会吹嘘自己的技术是多么的厉害,但作为一名资深程序员的 Landaker 却不为所动。“他说得很棒,但却不是行动派的,”Landaker 告诉我。不过在那种场合下,的确更需要一位富有激情的领导者,而不是埋头苦干的技术员。“他非常热情并且坦率,”另一位成员 Robert Norse 如是对我说。“他创造出了大量的能够吸引媒体眼球的话题。我从事这行已经二十年了,在这一点上他比我见过的任何人都要厉害。”
+
+Doyon 在 PLF 的上司,Commander Adama 仍然住在剑桥,并且通过电子邮件和 Doyon 保持着联络,他下令让 Doyon 潜入“匿名者”组织。以此获知其运作方式,并伺机为 PLF 招募新成员。因为癫痫基金会网站入侵事件的那段不愉快回忆,Doyon 拒绝了 Adama。Adama 给 Doyon 解释说,在“匿名者”组织里不怀好意的黑客只占极少数,与此相反,这个组织经常会有一些的轰动世界举动。Doyon 对这点表示怀疑。“4chan 怎么可能会轰动世界?”他质问道。但出于对 PLF 的忠诚,他还是答应了 Adama 的请求。
+
+Doyon 经常带着一台宏基笔记本电脑出入于圣克鲁斯的一家名为 Coffee Roasting Company 的咖啡厅。“匿名者”组织的 IRC 聊天室主频道无需密码就能进入。Doyon 使用 PLF 的昵称进行登录并加入了聊天室。一段时间后,他发现了组织内大量的专用匿名者行动聊天频道,这些频道的规模更小,并相互重复。要想参与行动,你必须知道行动的专用聊天频道名称,并且聊天频道随时会因为陌生的闯入者而进行变更。这套交流系统并不具备较高的安全系数,但它的确很凑效。“这些专用行动聊天频道确保了行动机密的高度集中,”麦吉尔大学的人类学家 Gabriella Coleman 告诉我。
+
+有些匿名者提议了一项行动,名为“反击行动”。如同新闻记者 Parmy Olson 于 2012 年在书中写道的,“我们是匿名者,”这项行动成为了又一次支援文件共享网站,如 Napster 的后继者海盗湾(Pirate Bay),的行动的前奏,但随后其目标却扩展到了政治领域。2010 年末,在美国国务院的要求下,包括万事达、Visa、PayPal 在内的几家公司终止了对维基解密,一家公布了成百上千份外交文件的民间组织,的捐助。在一段网络视频中,“匿名者”组织扬言要进行报复,发誓会对那些阻碍维基解密发展的公司进行惩罚。Doyon 被这种抗议企业的精神所吸引,决定参加这次行动。
+
+
+
+潘多拉的魔盒
+
+在十二月初的“反击行动”中,“匿名者”组织指导那些新成员,或者说新兵,关于“如何他【哔~】加入组织”,教程中提到“首先配置你【哔~】的网络,这他【哔~】的很重要。”同时他们被要求下载“低轨道离子炮”,一款易于使用的开源软件。Doyon 下载了软件并在聊天室内等待着下一步指示。当开始的指令发出后,数千名匿名者将同时发动进攻。Doyon 收到了含有目标网址的指令——目标是,www.visa.com——同时,在软件的右上角有个按钮,上面写着“IMMA CHARGIN MAH LAZER.”(“反击行动”同时也发动了大量的复杂精密的入侵进攻。)几天后,“反击行动”攻陷了万事达、Visa、PayPal 公司的主页。在法院的控告单上,PayPal 称这次攻击给公司造成了 550 万美元的损失。
+
+但对 Doyon 来说,这是切实的激进主义体现。在剑桥反对种族隔离的行动中,他不能立即看到结果;而现在,只需指尖轻轻一点,就可以在攻陷大公司网站的行动中做出自己的贡献。隔天,赫芬顿邮报上出现了“万事达沦陷”的醒目标题。一位得意洋洋的匿名者发推特道:“有些事情维基解密是无能为力的。但这些事情却可以由‘反击行动’来完成。”
+
+4
+
+2010 年的秋天,“和平阵营”的抗议活动终止,政府只做出了轻微的让步,“流浪者管理法案”仍然有效。Doyon 希望通过借助“匿名者”组织的方略扭转局势。他回忆当时自己的想法,“也许我可以发动‘匿名者’组织来教训这种看似不堪一击的市政府网站,这些人绝对会【哔~】地赞同我的提议。最终我们将使得市政府永久性的废除‘流浪者管理法案’。”
+
+Joshua Covelli 是一位 25 岁的匿名者,他的昵称是“Absolem”,他非常钦佩 Doyon 的果敢。“现在我们的组织完全是他【哔~】各种混乱的一盘散沙,”Covelli 告诉我道。在“Commander X”加入之后,“组织似乎开始变得有模有样了。”Covelli 的工作是俄亥俄州费尔伯恩的一所大学接待员,他从不了解任何有关圣克鲁斯的政治。但是当 Doyon 提及帮助“和平阵营”抗击活动的计划后,Covelli 立即回复了一封表示赞同的电子邮件:“我期待这样的行动很久了。”
+
+Doyon 使用 PLF 的昵称邀请 Covelli 在 IRC 聊天室进行了一次秘密谈话:
+
+Absolem:抱歉,有个比较冒犯的问题...请问 PLF 也是组织的一员吗?
+
+Absolem:我会这么问,是因为我在频道里看过你的聊天记录,你像是一名训练有素的黑客,不太像是来自组织里的成员。
+
+PLF:不不不,你的问题一点也不冒犯。很高兴遇到你。PLF 是一个来自波士顿的黑客组织,已经成立 22 年了。我在 1981 年就开始了我的黑客生涯,但那时我并没有使用计算机,而是使用的 PBX(Private Branch Exchange,电话交换机)。
+
+PLF:我们组织内所有成员的年龄都超过了 40 岁。我们当中有退伍士兵和学者。并且我们的成员“Commander Adama”,正在躲避一大帮警察还有间谍的追捕。
+
+Absolem:听起来很棒!我对这次行动很感兴趣,不知道我是否可以提供一些帮助,我们的组织实在是太混乱了。我的电脑技术还不错,但我在入侵技术上还完全是一个新手。我有一些小工具,但不知道怎么去使用它们。
+
+庄重的入会仪式后,Doyon 正式接纳 Covelli 加入 PLF:
+
+PLF:把所有可能对你不利的【哔~】敏感文件加密。
+
+PLF:还有,想要联系任何一位 PLF 成员的话,给我发消息就行。从现在起,请叫我... Commander X。
+
+2012 年,美联社称“匿名者”组织为“一伙训练有素的黑客”;Quinn Norton 在《连线》杂志上发文称“‘匿名者’组织可以入侵任何坚不可摧的网站”,并在文末赞扬他们为“一群卓越的民间黑客”。事实上,有些匿名者的确是很有天赋的程序员,但绝大部分成员根本不懂任何技术。人类学家 Coleman 告诉我只有大约五分之一的匿名者是真正的黑客——其他匿名者则是“极客与抗议者”。
+
+2010 年 12 月 16 日,Doyon 以 Commander X 的身份向几名记者发送了电子邮件。“明天当地时间 12:00 的时候,‘人民解放阵线’组织与‘匿名者’组织将大举进攻圣克鲁斯政府网站”,他在邮件中写道,“12:30 之后我们将恢复网站的正常运行。”
+
+圣克鲁斯数据中心的工作人员收到了警告,匆忙地准备应对攻击。他们在服务器上运行起安全扫描软件,并向当地的互联网供应商 AT & T 求助,后者建议他们向 FBI 报警。
+
+第二天,Doyon 走进了一家星巴克并启动了笔记本电脑。即便是在这样一个小镇上,Doyon 也显得格外醒目:一个疲惫的流浪汉疯狂地敲击着键盘。随后,Covelli 和他在一间秘密聊天室碰头。
+
+PLF:去社区,登录——检查一下右上角的“聊天”菜单栏,上面有今天的具体方案。感谢你对我们的支持。
+
+Absolem:一切为了 PLF,长官。
+
+他们都打开了 DDoS 软件。尽管只有少数人参加了这次“和平阵营”的行动,但 Doyon 好似统率千军万马般下令:
+
+PLF:注意:每一位支持 PLF 或者站在我们这边的朋友——还有那些对抗邪恶保卫正义的勇士们:‘和平阵营’行动进行中,战斗的号角已经响起!目标:www.co.santa-cruz.ca.us。随意开火。重复指令:开火!
+
+Absolem:收到,长官。
+
+数据中心的工作人员紧张地盯着服务器,上面反馈出一连串拒绝服务的请求。尽管他们尽了最大的努力,网站还是崩溃了。25 分钟后,Doyon 决定遵守承诺。他下令“停止攻击”,政府网站开始恢复了正常运行。(这次攻击后,“流浪者管理法案”依旧没有废除。)
+
+Doyon 没有时间去庆祝胜利,他显得焦躁不安。“我得走了,”他告诉 Covelli。他飞一般得逃回了山中小屋。Doyon 的感觉是正确的:一位 FBI 的探员早就在 IRC 上盯住了他。这位 FBI 的探员已经获许搜查 Doyon 的笔记本电脑。
+
+几周后,Doyon 的食物吃完了,他不得不下山进行采购。当 Doyon在 Coffee Roasting Company 咖啡厅逗留的时候,两位联邦探员走了进来将他拘捕。Doyon 给“和平阵营”的创建者,同时也是一名律师的 Ed Frey 打了一个电话,Ed Frey 来到了警察局。Doyon 告诉了 Frey 他的另一个身份“Commander X”的事。
+
+随后 Doyon 被释放,但 FBI 没收了他的笔记本电脑,里面满是犯罪证据。Frey 一个几乎不了解网络世界的维权律师,把 Doyon 载回了他的山边露营。“接着你要怎么办?”Frey 问道。
+
+
+
+“Zach 很聪明... 并且... 是一个天才... 但.. 你们... 不在一个班。”
+
+Doyon 引用了一句电影台词。“拼命地跑,”他说。“我会躲起来,尽可能保持我的行动自由,用尽全力和这帮杂种们作斗争。”Frey 给了他两张 20 美元的钞票并祝他好运。
+
+5
+
+Doyon 搭着便车来到了旧金山,并在这里呆了三个月。他经常混迹于 Haight 大街 Ashbury 区的一家杂乱的咖啡馆里,在计算机前一坐就是几个小时,只有在抽烟时他才会起身走到室外活动。
+
+2011 年 1 月,Doyon 联系了新闻记者兼匿名者的 Barrett Brown。“我们的下一步计划是什么?”Doyon 问道。
+
+“突尼斯,” Brown 答道。
+
+“我知道,那是中东地区的一个国家,” Doyon 继续问,“然后呢?”
+
+“我们准备打倒那里的独裁者,” Brown 再次答道。
+
+“啊?!那里有一位独裁者吗?” Doyon 有点惊讶。
+
+几天后,“突尼斯行动”正式展开。Doyon 作为参与者向突尼斯政府域名下的电子邮箱发送了大量的垃圾邮件,以此阻塞其服务器。“我会提前写好关于那次行动邮件,接着一次又一次地把它们发送出去,” Doyon 说,“有时候实在没有时间,我就只简短的写上一句问候对方母亲的的话,然后发送出去。”短短一天时间里,匿名者们就攻陷了包括突尼斯证券交易所、工业部、总统办公室、总理办公室在内的多个网站。他们把总统办公室网站的首页替换成了一艘海盗船的图片,并配以文字“‘报复’是个贱人,不是吗?”
+
+Doyon 不时会谈起他的网上“战斗”经历,似乎他刚从弹坑里爬出来一样。“伙计,自从干了这行我就变黑了,”他向我诉苦道。“你看我的脸,全是抽烟的时候熏的——而且可能已经粘在我的脸上了。我仔细地照过镜子,毫不夸张地说我简直就是一头棕熊。”很多个夜晚,Doyon 都是在 Golden Gate 公园里露营过夜的。“我就那样干了四天,我看了看镜子里的‘我’,感觉还可以——但其实我觉得‘我’也许应该去吃点东西、洗个澡了。”
+
+“匿名者”组织接着又在 YouTube 上声明了将要进行的一系列行动:“利比亚行动”、“巴林行动”、“摩洛哥行动”。作为解放广场事件的抗议者,Doyon 参与了“埃及行动”。在 Facebook 针对这次行动的宣传专页中,有一个为当地示威者准备的“行动套装”链接。“行动套装”通过文件共享网站 Megaupload 进行分发,其中含有一份加密软件以及应对瓦斯袭击的保护措施。并且在不久后,埃及政府关闭了埃及的所有互联网及子网络的时候,继续向当地抗议者们提供连接网络的方法。
+
+2011 年夏季,Doyon 接替 Adama 成为 PLF 的最高指挥官。Doyon 招募了六个新成员,并力图发展 PLF 成为“匿名者”组织的中坚力量。Covelli 成为了他的其中一技位术顾问。另一名黑客 Crypt0nymous 负责在 YouTube 上发布视频;其余的人负责研究以及组装电子设备。与松散的“匿名者”组织不同,PLF 内部有一套极其严格的管理体系。“Commander X 事必躬亲,”Covelli 说。“这是他的行事风格,也许不能称之为一种风格。”一位创立了 AnonInsiders 博客的黑客通过加密聊天告诉我,他认为 Doyon 总是一意孤行——这在“匿名者”组织中是很罕见的现象。“当我们策划发起一项行动时,他并不在乎其他人是否同意,”这位黑客补充道,“他会一个人列出行动方案,确定攻击目标,登录 IRC 聊天室,接着告诉所有人在哪里‘碰头’,然后发起 DDoS 攻击。”
+
+一些匿名者把 PLF 视为可有可无的部分,认为 Doyon 的所作所为完全是个天大的笑柄。“他是因为吹牛出名的,”另一名昵称为 Tflow 的匿名者 Mustafa Al-Bassam 告诉我。不过,即使是那些极度反感 Doyon 的狂妄自大的人,也不得不承认他在“匿名者”组织发展过程中的重要性。“他所倡导的强硬路线有时很凑效,有时则完全不起作用,” Gregg Housh 说,并且补充道自己和其他优秀的匿名者都曾遇到过相同的问题。
+
+“匿名者”组织对外坚持声称自己是不分层次的平等组织。在由 Brian Knappenberger 制作的一部纪录片,《我们是一个团体》中,一名成员使用“一群鸟”来比喻组织,它们轮流领飞带动整个组织不断前行。Gabriella Coleman 告诉我,这个比喻不太切合实际,“匿名者”组织内实际上早就出现了一个非正式的领导阶层。“领导者非常重要,”她说。“有四五个人可以看做是我们的领头羊。”她把 Doyon 也算在了其中。但是匿名者们仍然倾向于反抗这种具有体系的组织结构。在一本即将出版的关于“匿名者”组织的书,《黑客、骗子、告密者、间谍》中,Coleman 这么写道,在匿名者中,“成员个体以及那些特立独行的人依然在一些重大事件上保持着服从的态度,优先考虑集体——特别是那些能引发强烈争端的事件。”
+
+匿名者们谑称那些特立独行的成员为“自尊心超强的疯子”和“想让自己出名的疯子”。(不过许多匿名者已经不会再随便给他人取那种具有冒犯性的称号了。)“但还是有令人惊讶的极少数成员违反规则”打破传统上的看法,Coleman 说。“这么做的人,像 Commander X 这样的,都会在组织里受到排斥。”去年,在一家网络论坛上,有人写道,“当他开始把自己比作‘蝙蝠侠’的时候我就不想理他了。”
+
+Peter Fein,是一位以 n0pants 为昵称而出名的网络激进分子,也是众多反对 Doyon 的浮夸行为的众多匿名者之一。Fein 浏览了 PLF 的网站,其封面上有一个徽章,还有关于组织的宣言——“为了解放众多人类的灵魂而不断战斗”。Fein 沮丧的发现 Doyon 早就使用真名为这家网站注册过了,使他这种,以及其他想要找事的匿名者们无机可乘。“如果有人要对我的网站进行 DDoS 攻击,那完全可以,” Fein 回想起通过私密聊天告诉 Doyon 时的情景,“但如果你要这么做了的话,我会揍扁你的屁股。”
+
+2011 年 2 月 5 日,《金融时报》报道了在一家名为 HBGary Federal 的网络安全公司里,首席执行官 HBGary Federal 已经得到了“匿名者”组织骨干成员名单的消息。Barr 的调查结果表明,三位最高领导人其中之一就是‘ Commander X’,这位潜伏在加利福尼亚州的黑客有能力“策划一些大型网络攻击事件”。Barr 联系了 FBI 并提交了自己的调查结果。
+
+和 Fein 一样,Barr 也发现了 PLF 网站的注册法人名为 Christopher Doyon,地址是 Haight 大街。基于 Facebook 和 IRC 聊天室的调查,Barr 断定‘ Commander X’的真实身份是一名家庭住址在 Haight 大街附近的网络激进分子 Benjamin Spock de Vries。Barr 通过 Facebook 和 de Vries 取得了联系。“请告诉组织里的普通阶层,我并不是来抓你们的,” Barr 留言道,“只是想让‘领导阶层’知晓我的意图。”
+
+“‘领导阶层’? 2333,笑死我了,” de Vries 回复道。
+
+《金融时报》发布报道的第二天,“匿名者”组织就进行了反击。HBGary Federal 的网站被进行了恶意篡改。Barr 的私人 Twitter 账户被盗取,他的上千封电子邮件被泄漏到了网上,同时匿名者们还公布了他的住址以及其他私人信息——这是一系列被称作“doxing”的惩罚。不到一个月后,Barr 就从 HBGary Federal 辞职了。
+
+6
+
+2011 年 4 月,Doyon 离开了旧金山搭便车向西部前行,过着夜晚露宿公园、白天混迹于星巴克的生活。他的背包里只有一台笔记本电脑、Guy Fawkes 面具,还有在 Pall 超市里购买的一些东西。
+
+
+
+“这是我在 TED 夏令营里学到的东西。”
+
+他时刻关注着“匿名者”组织的内部消息。那年春季,在 Barr 调查报告中提到的六位匿名者精锐成员,组建了“LulzSec 安全”组织(Lulz Security),简称 LulzSec。这个组织正如其名,这些成员认为“匿名者”组织已经变得太过严肃;他们的目标是重新引发起那些“能挑起强烈争端”的事件。当“匿名者”组织还在继续支持“阿拉伯之春”的抗议者的时候,LulzSec 入侵了公共电视网(Public Broadcasting Service,PBS)网站,并发布了一则虚假声明称已故说唱歌手 Tupac Shakur 仍然生活在新西兰。
+
+匿名者之间会通过 Pastebin.com 网站来共享文字。在这个网站上,LulzSec 发表了一则声明,称“很不幸,我们注意到北约和我们的好总统巴拉克,奥萨马·本·美洲驼(拉登同学)的好朋友,来自 24 世纪的奥巴马,最近明显提高了对我们这些黑客的关注程度。他们把黑客入侵行为视作一种战争的表现。”目标越高远,挑起的纷争就越大。6 月 15 日,LulzSec 表示对 CIA 网站受到的袭击行为负责,他们发表了一条推特,上面写道“目标击毙(Tango down,亦即target down)—— cia.gov ——这是起挑衅行为。”
+
+2011 年 6 月 20 日,LulzSec 的一名十九岁的成员 Ryan Cleary 因为对 CIA 的网站进行了 DDoS 攻击而被捕。7 月,FBI 探员逮捕了七个月前对 PayPal 进行 DDoS 攻击的其他十四名黑客。这十四名黑客,每人都面临着 15 年的牢狱之灾以及 500 万美元的罚款。他们因为图谋不轨以及故意破坏互联网,而被控违反了计算机欺诈与滥用处理条例。(该法案允许检察官进行酌情处置,并在去年网络激进分子 Aaron Swartz 因为被判处 35 年牢狱之灾而自杀身亡之后,受到了广泛的质疑和批评。)
+
+LulzSec 的成员之一 Jake (Topiary) Davis 因为付不起法律诉讼费,给组织的成员们写了一封请求帮助的信件。Doyon 进入了 IRC 聊天室把 Davis 需要帮助的消息进行了扩散:
+
+CommanderX:那么请大家阅读信件并给予 Topiary 帮助...
+
+Toad:你真是和【哔~】一样消息灵通。
+
+Toad:这么说你得到 Topiary 的消息了?
+
+CommanderX:Toad 你这个混蛋!
+
+Katanon:唉...
+
+Doyon 越来越大胆。他在佛罗里达州当局逮捕了支持流浪者的激进分子后,就 DDoS 了奥兰多商务部商会网站。他使用个人笔记本电脑通过公用无线网络实施了攻击,并且没有花费太多精力来隐藏自己的网络行踪。“这种做法很勇敢,但也很愚蠢,”一位自称 Kalli 的 PLF 的资深成员告诉我。“他看起来并不在乎是否会被抓。他完全是一名自杀式黑客。”
+
+两个月后,Doyon 参与了针对旧金山湾区快速交通系统(Bay Area Rapid Transit)的 DDoS 攻击,以此抗议一名 BART 的警官杀害一名叫做 Charles Hill 的流浪者的事件。随后 Doyon 现身“CBS 晚间新闻”为这次行动辩护,当然,他处理了自己的声音,把自己的脸用香蕉进行替代。他把 DDoS 攻击比作为公民的抗议行为。“与占用 Woolworth 午餐柜台的座位相比,这真的没什么不同,真的,”他说道。CBS 的主播 Bob Schieffer 笑称:“就我所见,它并不完全是一项民权运动。”
+
+2011 年 9 月 22 日,在加利福尼亚州的一家名为 Mountain View 的咖啡店里,Doyon 被捕,同时面临着“使用互联网非法破坏受保护的计算机”罪名指控。他被拘留了一个星期的时间,接着在签署协议之后获得假释。两天后,他不顾律师的反对,宣布将在圣克鲁斯郡法院召开新闻发布会。他梳起了马尾辫,戴着一副墨镜、一顶黑色海盗帽,同时还在脖子上围了一条五彩手帕。
+
+Doyon 通过非常夸大的方式披露了自己的身份。“我就是 Commander X,”他告诉蜂拥的记者。他举起了拳头。“作为‘匿名者’组织的一员,作为一名核心成员,我感到非常的骄傲。”他在接受一名记者的采访时说,“想要成为一名顶尖黑客的话,你只需要准备一台电脑以及一副墨镜。任何一台电脑都行。”
+
+Kalli 非常担心 Doyon 会不小心泄露组织机密或者其他匿名者的信息。“这是所有环节中最薄弱的地方,如果这里出问题了,那么组织就完了,”他告诉我。曾在“和平阵营行动”中给予 Doyon 大力帮助的匿名者 Josh Covelli 告诉我,当他在网上看见 Doyon 的新闻发布会视频的时候,他感觉瞬间“下巴掉地下了”。“他的所作所为变得越来越不可捉摸,” Covelli 评价道。
+
+三个月后,Doyon 的指定律师 Jay Leiderman 出席了圣荷西联邦法庭的辩护。Leiderman 已经好几个星期没有得到 Doyon 的消息了。“我需要得知被告无法出席的具体原因,”法官说。Leiderman 无法回答。Doyon 再次缺席了两星期后的另一场听证会。检控方表示:“很明显,看来被告已经逃跑了。”
+
+7
+
+“Xport 行动”是“匿名者”组织进行的所有同类行动中的第一个行动。这次行动的目标是协助如今已经背负两项罪名的通缉犯 Doyon 潜逃出国。负责调度的人是 Kalli 以及另一位曾在八十年代剑桥的迷幻药派对上和 Doyon 见过面的匿名者老兵。这位老兵是一位已经退休的软件主管,在组织内部威望很高。
+
+Doyon 的终点站是这位软件主管的家,位于加拿大的偏远乡村。2011 年 12 月,他搭便车前往旧金山,并辗转来到了市区组织大本营。他找到了他的指定联系人,后者带领他到达了奥克兰的一家披萨店。凌晨 2 点,Doyon 通过披萨店的无线网络,接收了一条加密聊天消息。
+
+“你现在靠近窗户吗?”那条消息问道。
+
+“是的,” Doyon 回复道。
+
+“往大街对面看。看见一个绿色的邮箱了吗?十五分钟后,你去站到那个邮箱旁边,把你的背包取下来,然后把你的面具放在上面。”
+
+一连几个星期的时间,Doyon 穿梭于海湾地区的安全屋之间,按照加密聊天那头的指示不断行动。最后,他搭上了前往西雅图的长途公交车,软件主管的一个朋友在那里接待了他。这个朋友是一名非常富有的退休人员,他花费了通过谷歌地球来帮助 Doyon 规划前往加拿大的路线。他们共同前往了一家野外用品供应商店,这位朋友为 Doyon 购置了价值 1500 美元的商品,包括登山鞋以及一个全新的背包。接着他又开车载着 Doyon 北上,两小时后到达距离国界只有几百英里的偏僻地区。随后 Doyon 见到了 Amber Lyon。
+
+几个月前,广播新闻记者 Lyon 曾在 CNN 的关于“匿名者”组织的节目里采访过 Doyon。Doyon 很欣赏她的报道,他们一直保持着联络。Lyon 要求加入 Doyon 的逃亡行程,为一部可能会发行的纪录片拍摄素材。软件主管认为这样太过冒险,但 Doyon 还是接受了她的请求。“我觉得他是想让自己出名,” Lyon 告诉我。四天的时间里,她用影像记录下了 Doyon 徒步北上,在林间露宿的行程。“那一切看起来不太像是仔细规划过的,” Lyon 回忆说。“他实在是无家可归了,所以他才会想要逃到国外去。”
+
+
+
+“这里是我们存放各种感觉的仓库。如果你发现了某种感觉,把它带到这里然后锁起来。”
+
+2012 年 2 月 11 日,Pastebin 上出现了一条消息。“PLF 很高兴的宣布‘ Commander X’,也就是 Christopher Mark Doyon,已经离开了美国的司法管辖区,抵达了加拿大一个比较安全的地方,”上面写着,“PLF 呼吁美国政府,希望政府能够醒悟过来并停止无谓的骚扰与监视行为——不要仅仅逮捕‘匿名者’组织的成员,对所有的激进组织应该一视同仁。”
+
+8
+
+Doyon 和软件主管在加拿大的小木屋里呆了几天。在一次同 Barrett Brown 的聊天中,Doyon 难掩内心的喜悦之情。
+
+BarrettBrown:你现在应该足够安全了吧,其他的呢?...
+
+CommanderX:是的,我现在很安全,现在加拿大既不缺钱也不缺藏身的地方。
+
+CommanderX:Amber Lyon 想要你的一张照片。
+
+CommanderX:去他【哔~】的怪人,Barrett,相信你会喜欢我告诉她应该怎样评价你的。
+
+CommanderX::-)
+
+CommanderX:我告诉她你是一个英雄。
+
+BarrettBrown:你才是真正的英雄...
+
+BarrettBrown:很高兴你现在安全了
+
+BarrettBrown:如果你还需要什么,告诉我一声就可以了
+
+CommanderX:我会的,如果这种方式的确很凑效的话,可以让其他被通缉的人也这样逃出来....
+
+BarrettBrown:当然,估计我们不久后也得这样了
+
+在 Doyon 出逃十天后,《华尔街日报》上刊登了关于不久后升职为美国国家安全局及网络指挥部主任的 Keith Alexander 的报道,他在白宫举行的秘密会晤以及其他场合下,表达了对“匿名者”组织的高度关注。Alexander 发出警告,两年内,该组织必将会是国家电网改造的大患。参谋长联席会议的主席 General Martin Dempsey 告诉记者,这群人是国家的敌人。“他们有能力把这些使用恶意软件造成破坏的技术扩散到其他的边缘组织去,”随后又补充道,“我们必须防范这种情况发生。”
+
+3 月 8 日,国会议员们在国会大厦附近的一个敏感信息隔离设施附近举行了关于网络安全的会议。包括 Alexander、Dempsey、美国联邦调查局局长 Robert Mueller,以及美国国土安全部部长 Janet Napolitano 在内的多名美国安全方面的高级官员出席了这次会议。会议上,通过计算机向与会者模拟了东部沿海地区电力设施可能会遭受到的网络攻击时的情境。“匿名者”组织目前应该还不具备发动此种规模攻击的能力,但安全方面的官员担心他们会联合其他更加危险的组织来共同发动攻击。“在我们着手于不断增加的网络风险事故时,政府仍在就具体的处理细节进行不断协商讨论,” Napolitano 告诉我。当谈及潜在的网络安全隐患时,她补充道,“我们通常会把‘匿名者’组织的行动当做 A 级威胁来应对。”
+
+“匿名者”也许是当今世界上最强大的无政府主义黑客组织。即使如此,它却从未表现出过任何的会对公共基础设施造成破坏的迹象或意愿。一些网络安全专家称,那些关于“匿名者”组织的谣传太过危言耸听。“在奥兰多发布战前宣言和实际发动 Stuxnet 蠕虫病毒攻击之间是有很大的差距的,” Internet 研究与战略中心的一位职员 James Andrew Lewis 告诉我,这和 2007 年美国与以色列对伊朗原子能网站发动的黑客袭击有关。哈佛大学法学院的教授 Yochai Benkler 告诉我,“我们所看见的只是以主要防御为理由而进行的开销,否则,将很难自圆其说。”
+
+Keith Alexander 最近刚从政府部门退休,他拒绝就此事发表评论,因为他并不能代表国家安全局、联邦调查局、中央情报局以及国土安全部。尽管匿名者们从未真正盯上过政府部门的计算机网络,但他们对于那些激怒他们的人有着强烈的报复心理。前国土安全部国家网络安全部门负责人 Andy Purdy 告诉我他们“害怕被报复,”无论机构还是个人,都不同意政府公然反对“匿名者”组织。“每个人都非常脆弱,”他说。
+
+9
+
+2012 年 3 月 6 日,Hector Xavier Monsegur,昵称为 Sabu 的 LulzSec 骨干成员,被发现是 FBI 派来的卧底。为了换取减刑,Monsegur 花费了数月的时间卧底,协助搜集其他 LulzSec 成员的罪证。同一天,五位匿名者领导被捕,同时面临着包括“计算机某犯罪”在内的多项罪名指控。联邦调查局的一名官员在接受福克斯新闻记者采访时说道,“这对那个组织是一个毁灭性的打击。我们的行动如同砍掉了 LulzSec 组织的头。”接下来的十个月里, Barrett Brown 收到了 17 项联邦罪名的指控,其中的大部分后来被撤销了。(他将在十月被宣判最终结果。)
+
+Doyon 感到很烦躁,但他还是继续扮演着一名黑客——以此吸引关注。他在多伦多上映的纪录片上以戴着面具的匿名者形象出现。在接受《National Post》的采访时,他向记者大肆吹嘘未经证实的消息,“我们已经入侵了美国政府的所有机密数据库。现在的问题是我们该何时泄露这些机密数据,而不是我们是否会泄露。”
+
+2013 年 1 月,在另一名匿名者介入俄亥俄州斯托本维尔未成年少女轮奸案,发起抗议行动之后,Doyon 重新启用了他两年前创办的网站 LocalLeaks,作为那起轮奸事件的信息汇总处理中心。如同许多其他“匿名者”组织的所作所为一样,LocalLeaks 网站非常具有影响力,但却也不承担任何责任。LocalLeaks 网站是第一家公布 12 分钟斯托本维尔高中毕业生猥亵视频的网站,这激起了众多当事人的愤怒。LocalLeaks 网站上同时披露了几份未被法庭收录的关于案件的材料,并且由此不小心透漏出了案件受害人的名字。Doyon向我承认他公开这些未经证实的信息的策略是存在争议的,但他同时回忆起自己当时的想法,“我们可以选择去除这些斯托本维尔案件的材料...也可以选择公开所有我们搜集的信息,基本上,给公众以提醒,不过,前提是你们得相信我们。”
+
+2013 年 3 月,一个名为 Rustle League 的组织入侵了 Doyon 的 Twitter 账户,该组织此前经常挑衅“匿名者”组织。Rustle League 的领导者之一 Shm00p 告诉我,“我们的本意并不是伤害那些家伙,只不过,哦,那些家伙说的话你就当是在放屁好了——我会这么做只是因为我感到很好笑。” Rustle League 组织使用 Doyon 的账户发布了含有如 www.jewsdid911.org 链接这样的,种族主义和反犹太主义的信息。
+
+2013 年 8 月 27 日,Doyon 发布了一则退出“匿名者”组织的声明。“我的一生都用在了追求正义和自由上,”他写道,“也许‘ Commander X’是无敌的,但我在这种高节奏的全球网络斗争中已经感到很累了,感觉自己好像病了。”各界对此反应不一,有同情的(“你是该休息了”),也有嘲讽的(“可怜的疯狂小老头。也许他现在有时间洗澡了”)。 Covelli 告诉我,“‘匿名者’的身份对他产生了较大的影响,他已经不能再应付了。”
+
+
+
+1998 年 8 月 17 日 “我们还有‘巴黎’吗?仔细想想,我等会儿去检查一下。”
+
+10
+
+2013 年 11 月 5 日举行了第一次“百万面具游行”活动。在全世界四百五十个城市里,发起了数千人的支持“匿名者”组织的游行。伦敦的一名抗议者摘下了盖伊·福克斯面具后,露出了演员罗素·布兰德的脸。这种的迹象表明,“匿名者”组织已经深入到了流行文化中。
+
+我参加了华盛顿的集会,Doyon 则呆在了加拿大观看现场直播。通过移动电话,我和 Doyon 不断交换着电子邮件。“只能坐在这里看直播而不能亲自去现场真的很令人沮丧——尤其是当这里面包含有你努力的结果的时候,”他在邮件里写道。“不过至少一切都已有所改变。”
+
+我们约定了一次面谈。Doyon 坚持让我通过加密聊天把面谈的详细情况提前告诉他。我坐了几个小时的飞机,租车来到了加拿大的一个偏远小镇,并且禁用了我的电话。
+
+最后,我在一个狭小安静的住宅区公寓里见到了 Doyon。他穿了一件绿色的军人夹克衫以及印有“匿名者”组织 logo 的 T 恤衫:一个脸被问号所替代的黑衣人形象。公寓里基本上没有什么家具,充满了一股烟味。他谈论起了美国政治(“我基本没怎么在众多的选举中投票——它们不过是暗箱操作的游戏罢了”),好战的伊斯兰教(“我相信,尼日利亚政府的人不过是相互勾结,以创建一个名为‘博科圣地’的基地组织的下属机构罢了”),以及他对“匿名者”组织的小小看法(“那些自称为怪人的人是真的是烂透了,意思是,邪恶的人”)。
+
+Doyon 剃去了他的胡须,但他却显得更加憔悴了。他说那是因为他病了的原因,他几乎很少出去。很小的写字台上有两台笔记本电脑、一摞关于佛教的书,还有一个堆满烟灰的烟灰缸。另一面裸露的泛黄墙壁上挂着盖伊·福克斯面具。他告诉我,“所谓‘Commander X’不过是一个处于极度痛苦中的小老头罢了。”
+
+在刚过去的圣诞节里,匿名者的新网站 AnonInsiders 的创建者拜访了 Doyon,并给他带来了馅饼和香烟。Doyon 询问来访的朋友是否可以继承自己的衣钵成为 PLF 的最高指挥官,同时希望能够递交出自己手里的“王国钥匙”——手里的所有密码,以及几份关于“匿名者”组织的机密文件。这位朋友委婉的拒绝了。“我有自己的生活,”他告诉了我拒绝的理由。
+
+11
+
+2014 年 8 月 9 日,当地时间下午 5 时 09 分,来自密苏里州圣路易斯郊区德尔伍德的一位说唱歌手同时也是激进分子的 Kareem (Tef Poe) Jackson,在 Twitter 上谈起了邻近城镇的一系列令人担忧的举措。“基本可以断定弗格森已经实施了戒严,任何人都无法出入,”他在 Twitter 上写道。“国内的朋友还有因特网上的朋友请帮助我们!!!”五个小时前,弗格森,一位十八岁的手无寸铁的非裔美国人 Michael Brown,被一位白人警察射杀。射杀警察声称自己这么做的原因是 Brown 意图伸手抢夺自己的枪支。而事发当时和 Brown 在一起的朋友 Dorian Johnson 却说,Brown 唯一做得不对的地方在于他当时拒绝离开街道中间。
+
+不到两小时,Jackson 就收到了一位名为 CommanderXanon 的 Twitter 用户的回复。“你完全可以相信我们,”回复信息里写道。“你是否可以给我们详细描述一下现场情况,那样会对我们很有帮助。”近几周的时间里,仍然呆在加拿大的 Doyon 复出了。六月,他在还有两个月满 50 岁的时候,成功戒烟(“#戒瘾成功 #电子香烟功不可没 #老了,”他在戒烟成功后在 Twitter 上写道)。七月,在加沙地带爆发武装对抗之后,Doyon 发表 Twiter 支持“匿名者”组织的“拯救加沙行动”,并发动了一系列针对以色列网站的 DDoS 攻击。Doyon 认为弗格森枪击事件更加令人关注。抛开他本人的个性,他有在事件发展到引人注目之前的早期,就迅速注意该事件的能力。
+
+“正在网上搜索关于那名警察以及当地政府的信息,” Doyon 发 Twitter 道。不到十分钟,他就为此专门在 IRC 聊天室里创建了一个频道。“‘匿名者’组织‘弗格森’行动正式启动,”他又发了一条 Twitter。但只有两个人转推了此消息。
+
+次日早晨,Doyon 发布了一条链接,链接指向的是一个初具雏形的网站,网站首页有一条致弗格森市民的信息——“你们并不孤单,我们将尽一切努力支持你们”——以及致当地警察的警告:“如果你们对对弗格森的抗议者们滥用职权、骚扰,或者伤害了他们,我们绝对会让你们所有政府部门的网站瘫痪。这不是威胁,这是承诺。”同时 Doyon 呼吁有 130 万粉丝的“匿名者”组织的 Twitter 账号 YourAnonNews 给与支持。“请支持‘弗格森’行动”,他发送了消息。一分钟后,YourAnonNews 回复表示同意。当天,包含话题 #OpFerguson 的 Twitter 发表/转推了超过六千次。
+
+这个事件迅速成为头条新闻,同时匿名者们在弗格森周围进行了大集会。与“阿拉伯之春行动”类似,“匿名者”组织向抗议者们发送了电子关怀包,包括抗暴指导(“把瓦斯弹捡起来回丢给警察”)与可打印的盖伊·福克斯面具。Jackson 和其他示威者在弗格森进行示威游行时,警察企图通过橡皮子弹和催泪瓦斯来驱散他们。“当时的情景真像是布鲁斯·威利斯的电影里的情节,” Jackson 后来告诉我。“不过巴拉克·奥巴马应该并不会支持‘匿名者’组织传授给我们的这些知识,”他笑称道。“让那些警察赶到束手无策真的是太爽了。”
+
+有个域名是 www.opferguson.com 的网站,后来发现不过是一个骗局——一个用来收集访问者 ip 地址的陷阱,随后这些地址会被移交给执法机构。有些人怀疑 Commander X 是政府的线人。在 IRC 聊天室 #OpFerguson 频道,一个名叫 Sherlock 写道,“现在频道里每个人说的已经让我害怕去点击任何陌生的链接了。除非是一个我非常熟悉的网址,否则我绝对不会去点击。”
+
+弗格森的抗议者要求当局公布射杀 Brown 的警察的名字。几天后,匿名者们附和了抗议者们的请求。有人在 Twitter 上写道,“弗格森警察局最好公布肇事警察的名字,否则‘匿名者’组织将会替他们公布。”8 月 12 的新闻发布会上,圣路易斯警察局的局长 Jon Belmar 拒绝了这个请求。“我们不会这样做,除非他们被某个罪名所指控,”他说道。
+
+作为报复,一名黑客使用名为 TheAnonMessage 的 Twitter 账户公布了一条链接,该链接指向一段来自警察的无线电设备所记录的音频文件,文件记录时间是 Brown 被枪杀的两小时左右。TheAnonMessage 同时也把矛头指向了 Belmar,在 Twitter 上公布了这位警察局长的家庭住址、电话号码以及他的家庭照片——一张是他的儿子在长椅上睡觉,另一张则是 Belmar 和他的妻子的合影。“不错的照片,Jon,” TheAnonMessage 在 Twitter 上写道。“你的妻子在她这个年龄算是一个美人了。你已经爱她爱得不耐烦了吗?”一个小时后,TheAnonMessage 又以 Belmar 的女儿为把柄进行了恐吓。
+
+Richard Stallman,来自 MIT 的初代黑客,告诉我虽然他在很多地方赞同“匿名者”组织的行为,但他认为这些泄露私人信息的攻击行为是要受到谴责的。即使是在国内,TheAnonMessage 的行为也受到了谴责。“为何要泄露无辜的人的信息到网上?”一位匿名者通过 IRC 发问,并且表示威胁 Belmar 的家人实在是“相当愚蠢的行为”。但是 TheAnonMessage 和其他的一些匿名者仍然进行着不断搜寻,并企图在将来再次进行泄露信息的攻击。在互联网上可以得到所有弗格森警察局警员的名字,匿名者们不断地搜索着信息,企图找出具体是哪一个警察找出杀害了 Brown。
+
+
+
+1999 年 4 月 12 日 “我应该把镜头对向谁?”
+
+8 月 14 日清晨,及位匿名者基于 Facebook 上的照片还有其他的证据,确定了射杀 Brown 的凶手是一位名叫 Bryan Willman 的 32 岁男子。根据一份 IRC 聊天记录,一位匿名者贴出了 Willman 的浮夸面孔的照片;另一位匿名者提醒道,“凶手声称自己的脸没有被任何人看到。”另一位昵称为 Anonymous|11057 的匿名者承认他对 Willman 的怀疑确实是“跳跃性的可能错误的逻辑过程推导出来的。”不过他还是写道,“我只是无法动摇自己的想法。虽然我没有任何证据,但我非常非常地确信就是他。”
+
+TheAnonMessage 看起来被这次对话逗乐了,写道,“#愿逝者安息,凶手是 BryanWillman。”另一位匿名者发出了强烈警告。“请务必确认,” Anonymous|2252 写道。“这不仅仅关乎到一个人的性命,我们可以不负责任地向公众公布我们的结果,但却很可能有无辜的人会因此受到不应受到的对待。”
+
+争论超过了一个小时。一些匿名者指出没有证据表明 Willman 曾经在弗格森警察局任过职。
+
+Anonymous|3549:@gs 我们依旧没有证据能够证明 Bryan 曾在警局呆过
+
+Intangir:现在的形势已经够紧张的了,一旦我们把这个消息公布出去,可能就会有人因此去杀了他
+
+Anonymous|11057:唯一的证明方法是犯罪现场目击者报告。否则我们的结果只是一个谣言
+
+Anonymous|11057:最快的排除嫌疑的方法是称他为嫌疑犯...我们都害怕犯下不公正的错误,但这种方法恰好可以避免这些...
+
+大部分匿名者都反对在网上泄露他人信息。但是早晨七点左右匿名者们进行了一次投票。聊天记录显示,当时聊天室里有 80 人左右,只有不到十人参与了投票表决。因此他们决定在互联网上公布 Willman 的私人信息。
+
+Anonymous|2252:还在 Twitter 上公布?
+
+anondepp:lol
+
+Anonymous|2252:用 @theanonmessage 公布?
+
+TheAnonMessage:当然
+
+TheAnonMessage:去发吧
+
+anondepp:搞定了
+
+Anonymous|2252:我去
+
+TheAnonMessage:上帝保佑...
+
+Anonymous|3549:...请拯救我们的灵魂
+
+anondepp:lol
+
+早晨 9 时 45 分,圣路易斯警察局对 TheAnonMessage 进行了答复。“Bryan Willman 从来没有在弗格森警察局或者圣路易斯警察局任过职,” 他们在 Twitter 上写道。“请不要再公布这位无辜市民的信息了。”(随后 FBI 对弗格森警察的电脑遭黑客入侵的事情展开了调查。)Twitter 管理员迅速封禁了 TheAnonMessage 的账户,但 Willman 的名字和家庭住址仍然被广泛传开。
+
+实际上,Willman 是弗格森西郊圣安区的警察外勤负责人。当圣路易斯警察局的情报处打电话告诉 Willman,他已经被“确认”为凶手时,他告诉我,“我以为不过是个奇怪的笑话。”几小时后,他的社交账号上就收到了数百条要杀死他的威胁。他在警察的保护下,独自一人在家里呆了将近一个星期。“我只希望这一切都尽快过去,”他告诉我他的感受。他认为“匿名者”组织已经不可挽回地损害了他的名誉。“我不知道他们怎么会以为自己可以被再次信任的,”他说。
+
+“我们并不完美,” OpFerguson 在 Twitter 上说道。“‘匿名者’组织确实犯错了,过去的几天我们制造一些混乱。为此,我们道歉。”尽管 Doyon 并不应该为这次错误的信息泄露攻击负责,但其他的匿名者却因为他发起了一次无法控制的行动,而归咎他。YourAnonNews 在 Pastebin 上发表了一则消息,上面写道,“你们也许注意到了组织不同的 Twitter 账户发表的话题 #Ferguson 和 #OpFerguson,这两个话题下的 Twitter 与信息是相互矛盾的。为什么会在这些关键话题上出现分歧,部分原因是因为 CommanderX 是一个‘想让自己出名的疯子/想让公众认识自己的疯子’——这种人喜欢,或者至少不回避媒体的宣传——并且显而易见的,组织内大部分成员并不喜欢这样。”
+
+在个人 Twitter 上,Doyon 否认了所有关于“弗格森行动”的职责,他写道,“我讨厌这样。我不希望这样的情况发生,我也不希望和我认为是朋友的人战斗。”沉寂了几天后,他又再度获吹响了战斗的号角。他最近在 Twitter 上写道,“你们称他们是暴民,我们却称他们是压迫下的反抗之声”以及“解放西藏”。
+
+Doyon 仍然处于藏匿状态。甚至连他的律师 Jay Leiderman 也不知道他在哪里。Leiderman 表示,除了在圣克鲁斯受到的指控,Doyon 很有可能因为攻击了 PayPal 和奥兰多而面临新的指控。一旦他被捕,所有的刑期加起来,他的余生就要在监狱里度过了。借鉴 Edward Snowden 的先例,他希望申请去俄罗斯避难。我们谈话时,他用一支点燃的香烟在他的公寓里比划着。“这里比他【哔~】的牢房强多了吧?我绝对不会出去,”他愤愤道。“我不会再联系我的家人了....这是相当高的代价,但我必须这么做,我会尽我的努力让所有人活得自由、明白。”
+
+
+
+via: http://www.newyorker.com/magazine/2014/09/08/masked-avengers
+
+作者:David Kushner
+译者:SteveArcher
+校对:校对者ID
+
+本文由 LCTT 原创翻译,Linux中国荣誉推出
diff --git a/translated/talk/20140910 Drab Desktop Try These 4 Beautiful Linux Icon Themes.md b/translated/talk/20140910 Drab Desktop Try These 4 Beautiful Linux Icon Themes.md
new file mode 100644
index 0000000000..39b62717bc
--- /dev/null
+++ b/translated/talk/20140910 Drab Desktop Try These 4 Beautiful Linux Icon Themes.md
@@ -0,0 +1,89 @@
+桌面看腻了?试试这 4 款漂亮的 Linux 图标主题吧
+================================================================================
+**Ubuntu 的默认图标主题在 5 年内[并未发生太大的变化][1],那些说“[图标早就彻底更新过了][2]”的你过来,我保证不打你。如果你确实想尝试一些新鲜的东西,我们将向你展示一些惊艳的替代品,它们会让你感到眼前一亮。**
+
+如果还是感到不太满意,你可以在文末的评论里留下你比较中意的图标主题的链接地址。
+
+### Captiva ###
+
+![Captiva 图标 + elementary 文件夹图标 + Moka GTK](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/moka-and-captiva.jpg)
+
+Captiva 图标 + elementary 文件夹图标 + Moka GTK
+
+Captiva 是一款相对较新的图标主题,即使那些有华丽图标倾向的用户也会接受它。
+
+Captiva 由 DeviantArt 的用户 ~[bokehlicia][3] 制作,它并未使用现在非常流行的平面扁平风格,而是采用了一种圆润、柔和的外观。图标本身呈现出一种很有质感的材质外观,同时通过微调的阴影和亮丽的颜色提高了自身的格调。
+
+不过 Captiva 图标主题并未包含文件夹图标在内,因此它将使用 elementary(如果可以的话)或者普通的 Ubuntu 文件夹图标。
+
+要想在 Ubuntu 14.04 中安装 Captiva 图标,你可以新开一个终端,按如下方式添加官方 PPA 并进行安装:
+
+ sudo add-apt-repository ppa:captiva/ppa
+
+ sudo apt-get update && sudo apt-get install captiva-icon-theme
+
+或者,如果你不擅长通过软件源安装的话,你也可以直接从 DeviantArt 的主页上下载图标压缩包。把解压过的文件夹挪到家目录的‘.icons’目录下,即可完成安装。
+
+不过在你完成安装后,你必须得通过像 [Unity Tweak Tool][4] 这样的工具来把你安装的图标主题(本文列出的其他图标主题也要这样)应用到系统上。
+
+- [DeviantArt 上的 Captiva 图标主题][5]
+
+### Square Beam ###
+
+![Square Beam 图标在 Orchis GTK 主题下](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/squarebeam.jpg)
+
+Square Beam 图标在 Orchis GTK 主题下
+
+厌倦有棱角的图标了?尝试下 Square Beam 吧。Square Beam 因为其艳丽的色泽、尖锐的坡度变化和鲜明的图标形象,比本文列出的其他图标具有更加宏大的视觉效果。Square Beam 声称自己有超过 30,000 个(抱歉,我没有仔细数过...)的不同图标(!),因此你很难找到它没有考虑到的地方。
+
+- [GNOME-Look.org 上的 Square Beam 图标主题][6]
+
+### Moka & Faba ###
+
+![Moka/Faba Mono 图标在 Orchis GTK 主题下](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/moka-faba.jpg)
+
+Moka/Faba Mono 图标在 Orchis GTK 主题下
+
+这里得稍微介绍下 Moka 图标集。事实上,我敢打赌阅读此文的绝大部分用户正在使用这款图标。
+
+柔和的颜色、平滑的边缘以及简洁的图标艺术设计,Moka 是一款真正出色的覆盖全面的应用图标。它的兄弟 Faba 将这些特点展现得淋漓尽致,而 Moka 也将延续这些 —— 涵盖所有的系统图标、文件夹图标、面板图标,等等。
+
+欲知 Ubuntu 上的安装详情、访问项目官方网站?请点击下面的链接。
+
+- [下载 Moka & Faba 图标主题][7]
+
+### Compass ###
+
+![Compass 图标在 Numix Blue GTK 主题下](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/compass1.jpg)
+
+Compass 图标在 Numix Blue GTK 主题下
+
+在本文最后推荐的是 Compass,最后推荐当然不是最差的意思。这款图标现在仍然保持着‘2D,双色’的 UI 设计风格。它也许是不像本文推荐的其他图标那样鲜明,但这正是它的特色。Compass 秉持这点并与之不断的完善 —— 看看文件夹的图标就知道了!
+
+可以通过 GNOME-Look(下面有链接)进行下载和安装,或者通过添加 Nitrux Artwork 的 PPA 安装:
+
+ sudo add-apt-repository ppa:nitrux/nitrux-artwork
+
+ sudo apt-get update && sudo apt-get install compass-icon-theme
+
+- [GNOME-Look.org 上的 Compass 图标主题][8]
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/09/4-gorgeous-linux-icon-themes-download
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[SteveArcher](https://github.com/SteveArcher)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:http://www.omgubuntu.co.uk/2010/02/lucid-gets-new-icons-for-rhythmbox-ubuntuone-memenu-more
+[2]:http://www.omgubuntu.co.uk/2012/08/new-icon-theme-lands-in-lubuntu-12-10
+[3]:http://bokehlicia.deviantart.com/
+[4]:http://www.omgubuntu.co.uk/2014/06/unity-tweak-tool-0-7-development-download
+[5]:http://bokehlicia.deviantart.com/art/Captiva-Icon-Theme-479302805
+[6]:http://gnome-look.org/content/show.php/Square-Beam?content=165094
+[7]:http://mokaproject.com/moka-icon-theme/download/ubuntu/
+[8]:http://gnome-look.org/content/show.php/Compass?content=160629
\ No newline at end of file
diff --git a/translated/talk/20140915 Make Downloading Files Effortless.md b/translated/talk/20140915 Make Downloading Files Effortless.md
new file mode 100644
index 0000000000..eb7b27e8bc
--- /dev/null
+++ b/translated/talk/20140915 Make Downloading Files Effortless.md
@@ -0,0 +1,189 @@
+让下载更方便
+================================================================================
+下载管理器是一个电脑程序,专门处理下载文件,优化带宽占用,以及让下载更有条理等任务。有些网页浏览器,例如Firefox,也集成了一个下载管理器作为功能,但是它们的方式还是没有专门的下载管理器(或者浏览器插件)那么专业,没有最佳地使用带宽,也没有好用的文件管理功能。
+
+对于那些经常下载的人,使用一个好的下载管理器会更有帮助。它能够最大化下载速度(加速下载),断点续传以及制定下载计划,让下载更安全也更有价值。下载管理器已经没有之前流行了,但是最好的下载管理器还是很实用,包括和浏览器的紧密结合,支持类似YouTube的主流网站,以及更多。
+
+有好几个能在Linux下工作都非常优秀的开源下载管理器,以至于让人无从选择。我整理了一个摘要,是我喜欢的下载管理器,以及Firefox里的一个非常好用的下载插件。这里列出的每一个程序都是开源许可发布的。
+
+----------
+
+![](http://www.linuxlinks.com/portal/content2/png/uGet.png)
+
+![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-uGet.png)
+
+uGet是一个轻量级,容易使用,功能完备的开源下载管理器。uGet允许用户从不同的源并行下载来加快速度,添加文件到下载序列,暂停或继续下载,提供高级分类管理,和浏览器集成,监控剪贴板,批量下载,支持26种语言,以及其他许多功能。
+
+uGet是一个成熟的软件;保持开发超过11年。在这个时间里,它发展成一个非常多功能的下载管理器,拥有一套很高价值的功能集,还保持了易用性。
+
+uGet是用C语言开发的,使用了cURL作为底层支持,以及应用库libcurl。uGet有非常好的平台兼容性。它一开始是Linux系统下的项目,但是被移植到在Mac OS X,FreeBSD,Android和Windows平台运行。
+
+#### 功能点: ####
+
+- 容易使用
+- 下载队列可以让下载任务按任意多或少或你希望的数量同时进行。
+- 断点续传
+- 默认分类
+- 完美实现的剪贴板监控功能
+- 批量下载
+- 支持从HTML文件导入下载任务
+- 支持通过HTTP,HTTPS,FTP,BitTorrent和Metalink下载
+- 多线程下载(也被称为分块下载):每个下载任务支持最多20个线程同时连接,支持自适应的分块管理,意味着如果某个下载块中断了,那么会其他连接会把它捡起来,以时刻保证最佳的下载速度。
+- 多镜像下载
+- FTP登录和匿名FTP
+- 强大的计划任务
+- 通过FlashGot和FireFox集成
+- Aria2插件
+- 多变的主题
+- 安静模式
+- 键盘快捷键
+- 支持命令行/终端控制
+- 自动创建目录
+- 下载历史管理
+- 支持GnuTLS
+- 支持26种语言,包括:阿拉伯语,白俄罗斯语,简体中文,繁体中文,捷克语,丹麦语,英语(默认),法语,格鲁吉亚语,德语,匈牙利语,印尼语,意大利语,波兰语,葡萄牙语(巴西),俄语,西班牙语,土耳其语,乌克兰语,以及越南语。
+
+
+- 网站:[ugetdm.com][1]
+- 开发人员:C.H. Huang and contributors
+- 许可:GNU LGPL 2.1
+- 版本:1.10.5
+
+----------
+
+![](http://www.linuxlinks.com/portal/content2/png/DownThemAll%21.png)
+
+![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-DownThemAll%21.png)
+
+DownThemAll!是一个小巧的,可靠的以及易用的,开源下载管理器/加速器,是Firefox的一个组件。它可以让用户下载一个页面上所有链接和图片以及更多功能。它可以让用户完全控制下载任务,随时分配下载速度以及同时下载的任务数量。通过使用Metalinks或者手动添加镜像的方式,可以同时从不同的服务器下载同一个文件。
+
+DownThemAll会根据你要下载的文件大小,切割成不同的部分,然后并行下载。
+
+#### 功能点: ####
+
+- 和Firefox的完全集成
+- 分块下载,允许用户下载不同的文件块,完成之后再拼接成完整的文件;这样的话当连接到一个缓慢的服务器的时候可以加快下载速度。
+- 支持Metalink,允许发送下载文件的多个URL以及它的校验值和其他信息到DTA
+- 支持爬虫方式通过一个单独的链接遍历整个网页
+- 下载过滤
+- 高级重命名选项
+- 暂停和继续下载任务
+
+
+- 网站:[addons.mozilla.org/en-US/firefox/addon/downthemall][2]
+- 开发人员:Federico Parodi, Stefano Verna, Nils Maier
+- 许可:GNU GPL v2
+- 版本:2.0.17
+
+----------
+
+![](http://www.linuxlinks.com/portal/content2/png/JDownloader.png)
+
+![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-JDownloader.png)
+
+JDownloader是一个免费,开源的下载管理工具,拥有一个大型社区的开发者支持,让下载更简单和快捷。用户可以开始,停止或暂停下载,设置带宽限制,自动解压缩包,以及更多功能。它提供了一个容易扩展的框架。
+
+JDownloader简化了从一键下载网站下载文件。它还支持从不同并行资源下载,手势识别,自动文件解压缩以及更多功能。另外,还支持许多“加密链接”网站-所以你只需要复制粘贴“加密的”链接,然后JDownloader会处理剩下的事情。JDownloader还能导入CCF,RSDF和DLC文件。
+
+#### 功能点: ####
+
+- 一次下载多个文件
+- 从多个连接同时下载
+- JD有一个自己实现的强大的OCR模块
+- 自动解压(包括密码搜索)(RAR压缩包)
+- 支持主题
+- 支持多国语言
+- 大约110个站点以及超过300个解密插件
+- 通过JDLiveHeaderScripts重连:(支持1400路由)
+- 网页更新
+- 集成包管理器支持额外模块(例如,Webinterface,Shutdown)
+
+
+- 网站:[jdownloader.org][3]
+- 开发人员:AppWork UG
+- 许可:GNU GPL v3
+- 版本:0.9.581
+
+----------
+
+![](http://www.linuxlinks.com/portal/content2/png/FreeRapidDownloader.png)
+
+![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-FreeRapidDownloader.png)
+
+FreeRapid Downloader是一个易用的开源下载程序,支持从Rapidshare,Youtube,Facebook,Picasa和其他文件分享网站下载。他的下载引擎基于一些插件,所以可以从特殊站点下载。
+
+对于需要针对特定文件分享网站的下载管理器用户来说,FreeRapid Downloader是理想的选择。
+
+FreeRapid Downloader使用Java语言编写。需要至少Sun Java 7.0版本才可以运行。
+
+#### 功能点: ####
+
+- 容易使用
+- 支持从不同服务站点并行下载
+- 支持断点续传
+- 支持通过代理列表下载
+- 支持流视频或图片
+- 下载历史
+- 聪明的剪贴板监控
+- 自动检查服务器文件后缀
+- 自动关机选项
+- 插件自动更新
+- 简单验证码识别
+- 支持跨平台
+- 支持多国语言:英语,保加利亚语,捷克语,芬兰语,葡萄牙语,斯洛伐克语,匈牙利语,简体中文,以及其他
+- 支持超过700个站点
+
+
+- 网站:[wordrider.net/freerapid/][4]
+- 开发人员:Vity and contributors
+- 许可:GNU GPL v2
+- 版本:0.9u4
+
+----------
+
+![](http://www.linuxlinks.com/portal/content2/png/FlashGot.png)
+
+![](http://www.linuxlinks.com/portal/content/reviews/Utilities/Screenshot-FlashGot.png)
+
+FlashGot是一个Firefox和Thunderbird的免费组件,旨在通过外置下载管理器来处理单个和大规模(“所有”和“已选”)下载。
+
+FlashGot把所支持的所有下载管理器统一成Firefox中的一个下载管理器。
+
+#### 功能点: ####
+
+- Linux下支持:Aria, Axel Download Accelerator, cURL, Downloader 4 X, FatRat, GNOME Gwget, FatRat, JDownloader, KDE KGet, pyLoad, SteadyFlow, uGet, wxDFast, 和wxDownload Fast
+- 支持图库功能,可以帮助把原来分散在不同页面的系列资源,整合到一个所有媒体库页面中,然后可以轻松迅速地“下载所有”
+- FlashGot Link会使用默认下载管理器下载当前鼠标选中的链接
+- FlashGot Selection
+- FlashGot All
+- FlashGot Tabs
+- FlashGot Media
+- 抓取页面里所有链接
+- 抓取所有标签栏的所有链接
+- 链接过滤(例如,只下载指定类型文件)
+- 在网页上抓取点击所产生的所有链接
+- 支持从大多数链接保护和文件托管服务器直接和批量下载
+- 隐私选项
+- 支持国际化
+
+
+- 网站:[flashgot.net][5]
+- 开发人员:Giorgio Maone
+- 许可:GNU GPL v2
+- 版本:1.5.6.5
+
+--------------------------------------------------------------------------------
+
+via: http://www.linuxlinks.com/article/20140913062041384/DownloadManagers.html
+
+作者:Frazer Kline
+译者:[zpl1025](https://github.com/zpl1025)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://ugetdm.com/
+[2]:https://addons.mozilla.org/en-US/firefox/addon/downthemall/
+[3]:http://jdownloader.org/
+[4]:http://wordrider.net/freerapid/
+[5]:http://flashgot.net/
diff --git a/translated/talk/20140924 7 killer open source monitoring tools.md b/translated/talk/20140924 7 killer open source monitoring tools.md
new file mode 100644
index 0000000000..125ddf62e8
--- /dev/null
+++ b/translated/talk/20140924 7 killer open source monitoring tools.md
@@ -0,0 +1,65 @@
+7个杀手级的开源监测工具
+================================================================================
+想要更清晰的了解你的网络吗?没有比这几个免费的工具更好用的了。
+
+网络和系统监控是一个很宽的范畴。有监控服务器正常工作,网络设备,应用的方案。也有跟踪这些系统和设备性能,提供趋势性能分析的解决方案。有些工具像个闹钟一样,当发现问题的时候就会报警,而另外的一些工具甚至可以在警报响起的时候触发一些动作。这里,收集了一些开源的工具,旨在解决上述的一些甚至大部分问题。
+
+### Cacti ###
+
+![](http://images.techhive.com/images/idge/imported/imageapi/2014/09/22/12/slide_02-netmon-cacti-100448914-orig.jpg)
+
+Cacti是一个性能广泛的图表和趋势分析工具,可以用来跟踪,并且几乎可以绘制出任何可监测指标,并描绘出图表。从硬盘的利用率到风扇的转速,在一个电脑管理系统中,只要是可以被监测的指标,Cacti都可以监测,并快速的转换成可视化的图表。
+
+### Nagios ###
+
+![](http://images.techhive.com/images/idge/imported/imageapi/2014/09/22/12/slide_03-netmon-nagios-100448915-orig.jpg)
+
+Nagios是一个经典的老牌系统和网络监测工具。运行速度快,可靠,需要针对应用定制。Nagios对于初学者是一个挑战。但是它的极其复杂的配置正好也反应出它的强大,因为它几乎可以适用于任何监控任务。要说缺点的话就是不怎么耐看,但是其强劲的动力和可靠性弥补了这个缺点。
+
+### Icinga ###
+
+![](http://images.techhive.com/images/idge/imported/imageapi/2014/09/22/12/slide_04-netmon-icinga-100448916-orig.jpg)
+
+Icinga 是一个正在重建的Nagios的分支,它提供了一个全面的监控和警报的框架,致力于设计一个像Nagios一样的开放的和可扩展性的平台。但是和Nagios拥有不一样的Web界面。Icinga 1 是Nagios非常的相近,不过Icinga 2就重写了。两个版本都能很好的兼容,而且,Nagios用户可以很轻松的转到Icinga 1平台。
+
+### NeDi ###
+
+![](http://images.techhive.com/images/idge/imported/imageapi/2014/09/22/12/slide_05-netmon-nedi-100448917-orig.jpg)
+
+NeDi可能不如其他的工具一样文明全世界,但它确是一个跟踪网络接入的一个强大的解决方案。它可以很流畅的运行网络基础设施和设备目录,保持对任何事件的跟踪。并且可以提供任意设备的当前位置,也包括历史位置。
+
+NeDi可以被用于定位被偷的,或者是丢失掉的设备,只要设备出现在网络上。它甚至可以在地图上显示所有已发现的节点。并且很清晰的告诉人们网络是怎么互联的到物理设备端口的。
+
+### Observium ###
+
+![](http://images.techhive.com/images/idge/imported/imageapi/2014/09/22/12/slide_06-netmon-observium-100448918-orig.jpg)
+
+Observium 综合系统网路在性能趋势监测上有很好的表现,它支持静态和动态发现来确认服务器和网络设备,利用多种监测方法,可以监测任何可用的指标。Web界面非常的整洁,易用。
+
+就如我们看到的,Observium也可以在地图上显示任何被监测节点的实际位置。需要注意的是面板上关于活跃设备和警报的计数。
+
+### Zabbix ###
+
+![](http://images.techhive.com/images/idge/imported/imageapi/2014/09/22/12/slide_07-netmon-zabbix-100448919-orig.jpg)
+
+Zabbix 利用广泛的矩阵工具监测服务器和网络。代理商的Zabbix针对大多数的操作系统,你可以被动的或者是使用外部检查,包括SNMP来监控主机和网络设备。你也会发现很多提醒和通知设施,和一个非常人性化的Web界面,适用于不同的面板,此外,Zabbix还拥有一些特殊的管理工具来监测Web应用和虚拟化的管理程序。
+
+Zabbix 还可以提供详细的互联图,以便于我们了解某些对象是怎么连接的。这些图是可以定制的,并且,图也可以以被监测的服务器和主机的分组形式被创建。
+
+### Ntop ###
+
+![](http://images.techhive.com/images/idge/imported/imageapi/2014/09/22/12/slide_08-netmon-ntop-100448920-orig.jpg)
+
+Ntop是一个数据包嗅探工具。有一个整洁的Web界面,用来显示被监测网络的实时数据。即时的网络数据通过一个高级的绘图工具可以可视化。主机信息流和主机通信信息对也可以被实时的进行可视化显示。
+
+--------------------------------------------------------------------------------
+
+via: http://www.networkworld.com/article/2686794/asset-management/164219-7-killer-open-source-monitoring-tools.html
+
+作者:[Paul Venezia][a]
+译者:[barney-ro](https://github.com/barney-ro)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.networkworld.com/author/Paul-Venezia/
diff --git a/translated/tech/20140818 How to Take 'Snapshot of Logical Volume and Restore' in LVM--Part III.md b/translated/tech/20140818 How to Take 'Snapshot of Logical Volume and Restore' in LVM--Part III.md
new file mode 100644
index 0000000000..6213ea22d4
--- /dev/null
+++ b/translated/tech/20140818 How to Take 'Snapshot of Logical Volume and Restore' in LVM--Part III.md
@@ -0,0 +1,200 @@
+在LVM中“录制逻辑卷快照并恢复”——第三部分
+================================================================================
+**LVM快照**是空间有效指向时间的lvm卷副本。它只在lvm中工作,并只在源逻辑卷发生改变时消耗快照卷的空间。如果源卷的变化达到1GB这么大,快照卷同样也会产生这样大的改变。因而,对于空间有效利用的最佳途径,就是总是进行小的修改。如果快照将存储空间消耗殆尽,我们可以使用lvextend来扩容。而如果我们需要缩减快照,可以使用lvreduce。
+
+![Take Snapshot in LVM](http://www.tecmint.com/wp-content/uploads/2014/08/Take-Snapshot-in-LVM.jpg)
+在LVM中录制快照
+
+如果我们在创建快照后意外地删除了无论什么文件,我们没有必要担心,因为快照里包含了我们所删除的文件的原始文件。创建快照时,很有可能文件每次都在那。不要改变快照卷,保持创建时的样子,因为它用于快速恢复。
+
+快照不可以用于备份选项。备份是某些数据的基础副本,因此我们不能使用快照作为备份的一个选择。
+
+#### 需求 ####
+
+注:此两篇文章如果发布后可换成发布后链接,原文在前几天更新中
+
+- [在Linux中使用LVM创建磁盘存储 — 第一部分][1]
+- [在Linux中扩展/缩减LVM — 第二部分][2]
+
+### 我的服务器设置 ###
+
+- 操作系统 — 安装有LVM的CentOS 6.5
+- 服务器IP — 192.168.0.200
+
+#### 步骤1: 创建LVM快照 ####
+
+首先,使用‘**vgs**’命令检查卷组中的空闲空间以创建新的快照。
+
+ # vgs
+ # lvs
+
+![Check LVM Disk Space](http://www.tecmint.com/wp-content/uploads/2014/08/Check-LVM-Disk-Space.jpg)
+检查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** – 为快照命名
+
+![Create LVM Snapshot](http://www.tecmint.com/wp-content/uploads/2014/08/Create-LVM-Snapshot.jpg)
+创建LVM快照
+
+此处,是对上面高亮要点的说明。
+
+- 我在此创建的快照的大小。
+- 创建快照。
+- 创建快照名。
+- 新的快照名。
+- 要创建快照的卷。
+
+如果你想要移除快照,可以使用‘**lvremove**’命令。
+
+# lvremove /dev/vg_tecmint_extra/tecmint_datas_snap
+
+![Remove LVM Snapshot](http://www.tecmint.com/wp-content/uploads/2014/08/Remove-LVM-Snapshot.jpg)
+移除LVM快照
+
+现在,使用以下命令列出新创建的快照。
+
+ # lvs
+
+![Verify LVM Snapshot](http://www.tecmint.com/wp-content/uploads/2014/08/Verify-LVM-Snapshot.jpg)
+验证LVM快照
+
+上面的你看到了吧,成功创建了一个快照。上面我用箭头标出了快照创建的源,它就是**tecmint_datas**。是的,因为我已经为**tecmint_datas l-volume**创建了一个快照。
+
+![Check LVM Snapshot Space](http://www.tecmint.com/wp-content/uploads/2014/08/Check-LVM-Snapshot-Space.jpg)
+检查LVM快照空间
+
+让我们添加一些新文件到**tecmint_datas**里头。现在卷里大概有650MB左右的数据,而我我们的快照有1GB大。因此,有足够的空间在快照卷里备份我们的修改。这里我们可以使用下面的命令来查看到,我们的快照当前的状态。
+
+ # lvs
+
+![Check Snapshot Status](http://www.tecmint.com/wp-content/uploads/2014/08/Check-Snapshot-Status.jpg)
+检查快照状态
+
+你看到了,现在已经用掉了**51%**的快照卷,你要对你的文件作更多的修改都没有问题。使用下面的命令来查看更多详细信息。
+
+ # lvdisplay vg_tecmint_extra/tecmint_data_snap
+
+![View Snapshot Information](http://www.tecmint.com/wp-content/uploads/2014/08/Snapshot-Information.jpg)
+查看快照信息
+
+再来对上面图片中高亮的要点作个清楚的说明。
+
+- 快照逻辑卷名称。
+- 当前使用的卷组名。
+- 读写模式下的快照卷,我们甚至可以挂载并使用该卷。
+- 快照创建时间。这个很重要,因为快照将跟踪此时间之后的每个改变。
+- 该快照属于tecmint_datas逻辑卷。
+- 逻辑卷在线并可用。
+- 我们录制快照的源卷大小。
+- 写时复制表大小,Cow = copy on Write,这是说对tecmint_data卷所作的任何改变都会写入此快照。
+- 当前使用的快照大小,我们的tecmint_data有10GB,而我们的快照大小是1GB,这就意味着我们的数据大概有650MB。所以,如果tecmint_datas中的文件增长到2GB,现在的51%中的内容将增加到超过所分配的快照的大小,当然,我们在创建快照时会出现问题。这就意味着我们需要扩展逻辑卷大小(快照逻辑卷)
+- 给出快照组块的大小。
+
+现在,让我们复制超过1GB的文件到**tecmint_datas**。让我们看看会发生什么。如果你那么做了,你将会见到‘**Input/output error**’这样的错误信息,它告诉你快照超出空间大小了。
+
+![Add Files to Snapshot](http://www.tecmint.com/wp-content/uploads/2014/08/Add-Files-to-Snapshot.jpg)
+添加文件到快照
+
+如果逻辑卷满了,它就会自动下线,我们就不能再使用了,就算我们去扩展快照卷的大小也不行。最好的方法就是在创建快照时,创建一个和源一样大小的快照卷。**tecmint_datas**的大小是10GB,如果我们创建一个10GB大小的快照,它就永远都不会像上面那样超载,因为它有足够的空间来录制你的逻辑卷的快照。
+
+#### 步骤2: 在LVM中扩展快照 ####
+
+如果我们需要在超载前扩展快照大小,我们可以使用以下命令来完成此项任务。
+
+ # lvextend -L +1G /dev/vg_tecmint_extra/tecmint_data_snap
+
+现在,那里有总计2GB大小的快照空间。
+
+![Extend LVM Snapshot](http://www.tecmint.com/wp-content/uploads/2014/08/Extend-LVM-Snapshot.jpg)
+扩展LVM快照
+
+接下来,使用以下命令来验证新的大小和写时复制表。
+
+ # lvdisplay /dev/vg_tecmint_extra/tecmint_data_snap
+
+要知道快照卷的大小使用**%**。
+
+ # lvs
+
+![Check Size of Snapshot](http://www.tecmint.com/wp-content/uploads/2014/08/Check-Size-of-Snapshot.jpg)
+检查快照大小
+
+然而,如果你的快照大小和源卷一样,我们就没有必要担心这些问题了。
+
+#### 步骤3: 恢复快照或合并 ####
+
+要恢复快照,我们首先需要卸载文件系统。
+
+ # unmount /mnt/tecmint_datas/
+
+![Un-mount File System](http://www.tecmint.com/wp-content/uploads/2014/08/Unmount-File-System.jpg)
+卸载文件系统
+
+只想检查挂载点是否卸载,可以使用下面的命令。
+
+ # df -h
+
+![Check File System Mount Points](http://www.tecmint.com/wp-content/uploads/2014/08/Check-Mount-Points.jpg)
+检查文件系统挂载点
+
+这里,我们的挂载已经被卸载,所以我们可以继续恢复快照。要恢复快照,可以使用**lvconvert**命令。
+
+ # lvconvert --merge /dev/vg_tecmint_extra/tecmint_data_snap
+
+![Restore LVM Snapshot](http://www.tecmint.com/wp-content/uploads/2014/08/Restore-Snapshot.jpg)
+恢复LVM快照
+
+在合并完成后,快照卷将被自动移除。现在我们可以使用**df**命令来查看分区大小。
+
+ # df -Th
+
+![Check Size of Snapshot](http://www.tecmint.com/wp-content/uploads/2014/08/Check-Snapshot-Space.jpg)
+
+在快照卷自动移除后,你可以用下面的命令查看逻辑卷大小。
+
+ # lvs
+
+![Check Size of Logical Volume](http://www.tecmint.com/wp-content/uploads/2014/08/Check-Size-of-LV.jpg)
+检查逻辑卷大小
+
+**重要**:要自动扩展快照,我们可以通过修改配置文件来进行。对于手动扩展,我们可以使用lvextend。
+
+使用你喜欢的编辑器打开lvm配置文件。
+
+ # vim /etc/lvm/lvm.conf
+
+搜索单词autoextend。默认情况下,该值和下图中的类似。
+
+![LVM Configuration](http://www.tecmint.com/wp-content/uploads/2014/08/LVM-Configuration.jpg)
+LVM配置
+
+修改此处的**100**为**75**,这样自动扩展的起始点就是**75**,而自动扩展百分比为20,它将自动扩容**百分之20**。
+
+如果快照卷达到**75%**,它会自动为快照卷扩容**20%**。这样,我们可以自动扩容了。使用**wq!**来保存并退出。
+
+这将把快照从超载下线中拯救出来,这也会帮助你节省更多时间。LVM是我们扩容以及获得其它众多特性如精简资源调配、拆卸、虚拟卷和使用精简池的唯一方法,让我们在下一个话题中来讨论吧。
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/take-snapshot-of-logical-volume-and-restore-in-lvm/
+
+作者:[Babin Lonston][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/babinlonston/
+[1]:http://www.tecmint.com/create-lvm-storage-in-linux/
+[2]:http://www.tecmint.com/extend-and-reduce-lvms-in-linux/
diff --git a/translated/tech/20140819 How to Encrypt Email in Linux.md b/translated/tech/20140819 How to Encrypt Email in Linux.md
new file mode 100644
index 0000000000..9dadd06e8f
--- /dev/null
+++ b/translated/tech/20140819 How to Encrypt Email in Linux.md
@@ -0,0 +1,105 @@
+在Linux中加密邮件
+================================================================================
+![Kgpg provides a nice GUI for creating and managing your encryption keys.](http://www.linux.com/images/stories/41373/fig-1-kgpg.png)
+Kgpg为了创建了管理加密秘钥提供了一个很好的GUI界面.
+
+如果你一直在考虑如何加密电子邮件,那么在众多的邮件服务和邮件客户端中挑来挑去一定是件头痛的事情.可以考虑两种加密方法:SSL或TLS加密会保护发送到邮件服务器的登录名和密码.[Gunpg][1]是一款标准有用的Linux加密工具,可以加密和认证消息.如果你可以管理自己的GPG加密,并不考虑第三方工具,那它就够了,其它的我们将在稍后讨论.
+
+即便加密了消息,你仍然会暴露在流量分析中,因为消息头部必须是明文形式.所以需要另一款比如[Tor network][2]来隐藏你在互联网上的足迹.我们会看看各种邮件服务和客户端,以及其中的利弊.
+
+### 忘掉Web邮件 ###
+
+如果你使用过GMail, Yahoo,Hotmail或者其它Web邮件提供商的邮件服务,那就忘掉它们吧.你在Web浏览器里输入的任何信息都会暴露在JavaScript攻击中,而且无论服务提供商提供什么保障都是过眼云烟(译者注:此说法靠谱否?).GMail,Yahoo和Hotmail均提供SSL/TLS加密来防止消息被窃听.但是它们不会提供任何保护来阻碍它们自己的数据挖掘,因此并不会提供端到端的加密.Yahoo和Google都声称将在明年推出端到端的加密.对此我持怀疑态度,因为如果一旦它们的核心业务数据挖掘受到干预,它们就什么都干不了了.
+
+市面上也有各式各样的声称可以为所有类型的电子邮件都能提供安全加密的第三方邮件加密服务,比如[Virtru][3]和[SafeMess][4].对此我依旧表示怀疑,因为无论是谁,只要持有加密秘钥就可以访问你的消息,所以你还是要依赖于可信而不是技术.
+
+对等消息可以避免许多使用集中化服务中的缺陷.[RetroShare][5]和[Bitmessage][6]是两种流行的范例.我不知道它们是否如实所述,但这么说肯定由可取之处.
+
+那Anddroid和iOS又如何呢?假设大部分的Android和iOS应用都没有权限获取你的消息的话,那就是最安全的.不要照搬我说的 -- 在应用将要安装到你的设备上时麻烦读读相关的服务条款并检查所要求的权限.即便在初次安装时它们的条款是可接受的,也记得单方面的条款改变是行业的标准,所以做最坏的打算是最安全的.
+
+### 零基础知识 ###
+
+[Proton Mail][7]是一款全新的邮件服务,声称无需任何基础就可以实现消息加密.认证和消息加密分为两个单独的步骤,Proton受到Swiss隐私条款的保护,它们不会通过日志记录用户的活动.零基础知识加密提供真正的安全.这代表只有你拥有你的加密秘钥,如果你丢了它们,你的消息就无法恢复了.
+
+也有许多加密电子邮件服务声称可以保护你的隐私.认真阅读细则,查看红色标注的地方,比如受限的用户数据采集,与好友分享,与执法部门的合作等.这些条款暗示它们会收集和共享用户数据,拥有权限获取你的加密秘钥,并读取你的消息.
+
+### Linux邮件客户端 ###
+
+一款独立的开源邮件客户端,比如, Mutt, Claws, Evolution, Sylpheed和Alpine,可建立你自己控制的GnuPG秘钥,给你大部分的保护.(建立更安全的电子邮件和Web浏览的最容易的方式是运行TAILS live的Linux发行版.详情查看[Protect Yourself Online With Tor, TAILS, and Debian][8].)
+
+无论你使用的是TAILS还是一款标准Linux发行版,管理GnuPG的方法是相同的,所以下面来学习如何使用GnuPG加密消息.
+
+### 使用GnuPG ###
+
+首先,熟悉一下相关术语。OpenPGP是一种开放的电子邮件加密和认证协议,基于菲利普·齐默曼的Pretty Good Privacy (PGP)。GNU Privacy Guard (GnuPG or GPG)是OpenPGP的GPL实现。GnuPG使用对称公钥加密算法,也就是说会生成一堆密钥:一个任何人都可以用来加密发送给你的消息的公钥和一个只有你自己拥有用来解密消息的的私钥。GnuPG执行两个分开的函数:数字化签名消息以证明消息来自你和加密消息。任何人都可以读到你的数字签名消息,但只有那些与你交换密钥的人才可以读取加密消息。切记千万不要与他人分享你的密钥!只能分享公钥。
+
+Seahorse是GnuPG对应的GNOME图形化前端,KGpg是KDE图形化的GnuPG工具。
+
+现在我们执行生成和管理GunPG密钥的基本步骤。这个命令生成一个新的密钥:
+
+ $ gpg --gen-key
+
+这个过程有许多步骤;对于大部分人来说,只需要回答所有的问题,遵循默认设置就好。当你生成你的密钥时,记下来并将其保存在一个安全的地方,因为如果你丢掉了它,你就不能解密任何消息了。任何关于不要写下密码的建议都是错误的。我们中的大部分人要记住许多登录名和密码,包括那些我们几乎从来不会用到的,所以全部记住它们是不现实的。你知道当人们不写下他们的密码时会发生什么吗?他们会选择生成简单的密码并不断重复使用。你存储在电脑里的任何东西都潜在地会被攻击窃取;一个保存在上锁的柜子里的小本是无法通过渗透获取的,除了物理的入侵,当然入侵者要知道如何去寻找它。
+
+我必须叮嘱你们去弄清楚如何使用新密钥去配置邮件客户端,因为每一个都不同。你可以按照如下操作列出你的密钥:
+
+ $ gpg --list-keys
+ /home/carla/.gnupg/pubring.gpg
+ ------------------------------
+ pub 2048R/587DD0F5 2014-08-13
+ uid Carla Schroder (my gpg key)
+ sub 2048R/AE05E1E4 2014-08-13
+
+这能快速地获知像密钥的位置、名称(也就是UID)等必要信息。假设你想要把公钥上传到密钥服务器,可以参考实例操作:
+
+ $ gpg --send-keys 'Carla Schroder' --keyserver http://example.com
+
+当你为上传到公钥服务器生成了一个新的密钥,你也应该生成一个撤销证书。不要推迟到以后做———当你生成新密钥时就生成它。你可以给它取任意的名称,比如使用一个像mycodeproject.asc的描述性名称来代替revoke.asc:
+
+ $ gpg --output revoke.asc --gen-revoke 'Carla Schroder'
+
+如果你的密钥缺乏抵抗力,你可以通过向keyring导入撤销证书来撤销它:
+
+ $ gpg --import ~/.gnupg/revoke.asc
+
+然后生成并上传一个新的密钥来取代它。当它们更新到密钥数据库时,所有使用旧密钥的用户都会被通知。
+
+你必须像保护私钥一样保护撤销证书。将它拷贝到CD或USB存储器中,并加锁,然后从电脑中删除。这是明文密钥,所以你甚至可以将它打印出来。
+
+如果你需要一份复制粘贴的密钥,比如在允许将密钥粘贴到网页表格中的公用keyring中,或者是想将公钥发布到个人站点上,那么你必须生成一份公钥的ASCII-armored版本:
+
+ $ gpg --output carla-pubkey.asc --export -a 'Carla Schroder'
+
+这会生成可见的明文公钥,就像下面这个小例子:
+
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
+ Version: GnuPG v1
+ mQENBFPrn4gBCADeEXKdrDOV3AFXL7QQQ+i61rMOZKwFTxlJlNbAVczpawkWRC3l
+ IrWeeJiy2VyoMQ2ZXpBLDwGEjVQ5H7/UyjUsP8h2ufIJt01NO1pQJMwaOMcS5yTS
+ [...]
+ I+LNrbP23HEvgAdNSBWqa8MaZGUWBietQP7JsKjmE+ukalm8jY8mdWDyS4nMhZY=
+ =QL65
+ -----END PGP PUBLIC KEY BLOCK-----
+
+相信上面的教程应该使你学会如何使用GnuPG。如果不够,[The GnuPG manuals][9]上有使用GnuPG和相关全部配置的详细信息。
+
+--------------------------------------------------------------------------------
+
+via: http://www.linux.com/learn/tutorials/784165-how-to-encrypt-email-in-linux
+
+作者:[Carla Schroder][a]
+译者:[KayGuoWhu](https://github.com/KayGuoWhu)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.linux.com/component/ninjaboard/person/3734
+[1]:http://www.openpgp.org/members/gnupg.shtml
+[2]:https://www.torproject.org/
+[3]:https://www.virtru.com/
+[4]:https://www.safemess.com/
+[5]:http://retroshare.sourceforge.net/
+[6]:http://retroshare.sourceforge.net/
+[7]:https://protonmail.ch/
+[8]:http://www.linux.com/learn/docs/718398-protect-yourself-online-with-tor-+tails-and-debian
+[9]:https://www.gnupg.org/documentation/manuals.html
diff --git a/translated/tech/20140822 15 Practical Examples of 'cd' Command in Linux.md b/translated/tech/20140822 15 Practical Examples of 'cd' Command in Linux.md
deleted file mode 100644
index 86e01c1809..0000000000
--- a/translated/tech/20140822 15 Practical Examples of 'cd' Command in Linux.md
+++ /dev/null
@@ -1,173 +0,0 @@
-15个关于Linux‘cd’命令的练习例子
-===
-
-在Linux中,**‘cd‘(改变目录)**命令,是对新手和系统管理员来说,最重要最常用的命令。对管理无屏幕服务器的管理员,‘**cd**‘是引导进入目录,检查日志,执行程序/应用软件/脚本和其余每个任务的唯一方法。对新手来说,是他们必须自己动手学习的最初始命令
-
-![15 cd command examples in linux](http://www.tecmint.com/wp-content/uploads/2014/08/cd-command-in-linux.png)
-Linux中15个cd命令举例
-
-所以,请用心,我们在这会带给你**15**个基础的‘**cd**‘命令,它们富有技巧和捷径,学会使用这些了解到的技巧,会大大减少你在终端上花费的努力和时间
-
-### 课程细节 ###
-
-- 命令名称:cd
-- 代表:切换目录
-- 使用平台:所有Linux发行版本
-- 执行方式:命令行
-- 权限:访问自己的目录或者其余指定目录
-- 级别:基础/初学者
-
-1. 从当前目录切换到/usr/local
-
- avi@tecmint:~$ cd /usr/local
-
- avi@tecmint:/usr/local$
-
-2. 使用绝对路径,从当前目录切换到/usr/local/lib
-
- avi@tecmint:/usr/local$ cd /usr/local/lib
-
- avi@tecmint:/usr/local/lib$
-
-3. 使用相对路径,从当前路径切换到/usr/local/lib
-
- avi@tecmint:/usr/local$ cd lib
-
- avi@tecmint:/usr/local/lib$
-
-4. **(a)**切换当前目录到上级目录
-
- avi@tecmint:/usr/local/lib$ cd -
-
- /usr/local
- avi@tecmint:/usr/local$
-
-4. **(b)**切换当前目录到上级目录
-
- avi@tecmint:/usr/local/lib$ cd ..
-
- avi@tecmint:/usr/local$
-
-5. 显示我们最后一个离开的工作目录(使用‘-’选项)
-
- avi@tecmint:/usr/local$ cd --
-
- /home/avi
-
-6. 从当前目录向上级返回两层
-
- avi@tecmint:/usr/local$ cd ../ ../
-
- avi@tecmint:/usr$
-
-7. 从任何目录返回到用户home目录
-
- avi@tecmint:/usr/local$ cd ~
-
- avi@tecmint:~$
-
- or
-
- avi@tecmint:/usr/local$ cd
-
- avi@tecmint:~$
-
-8. 切换工作目录到当前工作目录(通常情况下看上去没啥用)
-
- avi@tecmint:~/Downloads$ cd .
-
- avi@tecmint:~/Downloads$
-
- or
-
- avi@tecmint:~/Downloads$ cd ./
-
- avi@tecmint:~/Downloads$
-
-9. 你当前目录是“/usr/local/lib/python3.4/dist-packages”,现在要切换到“home/avi/Desktop/”,要求:一行命令,通过向上一直切换直到‘/’,然后使用绝对路径
-
- avi@tecmint:/usr/local/lib/python3.4/dist-packages$ cd ../../../../../home/avi/Desktop/
-
- avi@tecmint:~/Desktop$
-
-10. 从当前工作目录切换到/var/www/html,要求:不要将命令打完整,使用TAB
-
- avi@tecmint:/var/www$ cd /v/w/h
-
- avi@tecmint:/var/www/html$
-
-11. 从当前目录切换到/etc/v__ _,啊呀,你竟然忘了目录的名字,但是你又不想用TAB
-
- avi@tecmint:~$ cd /etc/v*
-
- avi@tecmint:/etc/vbox$
-
-**请注意:**如果只有一个目录以‘**v**‘开头,这将会移动到‘**vbox**‘。如果有很多目录以‘**v**‘开头,而且命令行中没有提供更多的标准,这将会移动到第一个以‘**v**‘开头的目录(按照他们在标准字典里字母存在的顺序)
-
-12. 你想切换到用户‘**av**‘(不确定是avi还是avt)目录,不用**TAB**
-
- avi@tecmint:/etc$ cd /home/av?
-
- avi@tecmint:~$
-
-13. Linux下的pushed和poped
-
-Pushed和poped是Linux bash命令,也是其他几个能够保存当前工作目录位置至内存,并且从内存读取目录作为当前目录的脚本,这些脚本也可以切换目录
-
- avi@tecmint:~$ pushd /var/www/html
-
- /var/www/html ~
-
- avi@tecmint:/var/www/html$
-
-上面的命令保存当前目录到内存,然后切换到要求的目录。一旦poped被执行,它会从内存取出保存的目录位置,作为当前目录
-
- avi@tecmint:/var/www/html$ popd
- ~
- avi@tecmint:~$
-
-14. 切换到带有空格的目录
-
- avi@tecmint:~$ cd test\ tecmint/
-
- avi@tecmint:~/test tecmint$
-
- or
-
- avi@tecmint:~$ cd 'test tecmint'
- avi@tecmint:~/test tecmint$
-
- or
-
- avi@tecmint:~$ cd "test tecmint"/
- avi@tecmint:~/test tecmint$
-
-15. 从当前目录切换到下载目录,然后列出它所包含的内容(使用一行命令)
-
- avi@tecmint:/usr$ cd ~/Downloads && ls
-
- …
- .
- service_locator_in.xls
- sources.list
- teamviewer_linux_x64.deb
- tor-browser-linux64-3.6.3_en-US.tar.xz
- .
- ...
-
-我们尝试使用最少的词句和一如既往的友好,来让你了解Linux的工作和执行
-
-这就是所有内容。我很快会带着另一个有趣的主题回来的。在此之前,保持和Tecmint的联系,别忘了在下面给我们提供你宝贵的反馈和评论
-
----
-
-via: http://www.tecmint.com/cd-command-in-linux/
-
-作者:[Avishek Kumar][a]
-译者:[译者ID](https://github.com/译者ID)
-校对:[su-kaiyao](https://github.com/su-kaiyao)
-
-本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
-
-[a]:http://www.tecmint.com/author/avishek/
-
diff --git a/translated/tech/20140826 Linux Tutorial--Install Ansible Configuration Management And IT Automation Tool.md b/translated/tech/20140826 Linux Tutorial--Install Ansible Configuration Management And IT Automation Tool.md
new file mode 100644
index 0000000000..748ec68ee5
--- /dev/null
+++ b/translated/tech/20140826 Linux Tutorial--Install Ansible Configuration Management And IT Automation Tool.md
@@ -0,0 +1,466 @@
+Linux 教程:安装 Ansible 配置管理和 IT 自动化工具
+================================================================================
+![](http://s0.cyberciti.org/uploads/cms/2014/08/ansible_core_circle.png)
+
+今天我来谈谈 ansible,一个由 Python 编写的强大的配置管理解决方案。尽管市面上已经有很多可供选择的配置管理解决方案,但他们各有优劣,而 ansible 的特点就在于它的简洁。让 ansible 在主流的配置管理系统中与众不同的一点便是,它并不需要你在想要配置的每个节点上安装自己的组件。同时提供的一个优点在于,如果需要的话,你可以在不止一个地方控制你的整个基础结构。最后一点是它的正确性,或许这里有些争议,但是我认为在大多数时候这仍然可以作为它的一个优点。说得足够多了,让我们来着手在 RHEL/CentOS 和基于 Debian/Ubuntu 的系统中安装和配置 Ansible.
+
+### 准备工作 ####
+
+1. 发行版:RHEL/CentOS/Debian/Ubuntu Linux
+1. Jinja2:Python 的一个对设计师友好的现代模板语言
+1. PyYAML:Python 的一个 YAML 编码/反编码函数库
+1. paramiko:纯 Python 编写的 SSHv2 协议函数库 (译者注:原文对函数库名有拼写错误,校对时请去掉此条注解)
+1. httplib2:一个功能全面的 HTTP 客户端函数库
+1. 本文中列出的绝大部分操作已经假设你将在 bash 或者其他任何现代的 shell 中以 root 用户执行。
+
+Ansible 如何工作
+
+Ansible 工具并不使用守护进程,它也不需要任何额外的自定义安全架构,因此它的部署可以说是十分容易。你需要的全部东西便是 SSH 客户端和服务器了。
+
+ +-----------------+ +---------------+
+ |安装了 Ansible 的| SSH | 文件服务器1 |
+ |Linux/Unix 工作站|<------------------>| 数据库服务器2 | 在本地或远程
+ +-----------------+ 模块 | 代理服务器3 | 数据中心的
+ 192.168.1.100 +---------------+ Unix/Linux 服务器
+
+其中:
+
+1. 192.168.1.100 - 在你本地的工作站或服务器上安装 Ansible。
+1. 文件服务器1到代理服务器3 - 使用 192.168.1.100 和 Ansible 来自动管理所有的服务器。
+1. SSH - 在 192.168.1.100 和本地/远程的服务器之间设置 SSH 密钥。
+
+### Ansible 安装教程 ###
+
+ansible 的安装轻而易举,许多发行版的第三方软件仓库中都有现成的软件包,可以直接安装。其他简单的安装方法包括使用 pip 安装它,或者从 github 里获取最新的版本。若想使用你的软件包管理器安装,在[基于 RHEL/CentOS Linux 的系统里你很可能需要 EPEL 仓库][1]。
+
+#### 在基于 RHEL/CentOS Linux 的系统中安装 ansible ####
+
+输入如下 [yum 命令][2]:
+
+ $ sudo yum install ansible
+
+#### 在基于 Debian/Ubuntu Linux 的系统中安装 ansible ####
+
+输入如下 [apt-get 命令][3]:
+
+ $ sudo apt-get install software-properties-common
+ $ sudo apt-add-repository ppa:ansible/ansible
+ $ sudo apt-get update
+ $ sudo apt-get install ansible
+
+#### 使用 pip 安装 ansible ####
+
+[pip 命令是一个安装和管理 Python 软件包的工具][4],比如它能管理 Python Package Index 中的那些软件包。如下方式在 Linux 和类 Unix 系统中通用:
+
+ $ sudo pip install ansible
+
+#### 从源代码安装最新版本的 ansible ####
+
+你可以通过如下命令从 github 中安装最新版本:
+
+ $ cd ~
+ $ git clone git://github.com/ansible/ansible.git
+ $ cd ./ansible
+ $ source ./hacking/env-setup
+
+当你从一个 git checkout 中运行 ansible 的时候,请记住你每次用它之前都需要设置你的环境,或者你可以把这个设置过程加入你的 bash rc 文件中:
+
+ # 加入 BASH RC
+ $ echo "export ANSIBLE_HOSTS=~/ansible_hosts" >> ~/.bashrc
+ $ echo "source ~/ansible/hacking/env-setup" >> ~/.bashrc
+
+ansible 的 hosts 文件包括了一系列它能操作的主机。默认情况下 ansible 通过路径 /etc/ansible/hosts 查找 hosts 文件,不过这个行为也是可以更改的,这样当你想操作不止一个 ansible 或者针对不同的数据中心的不同客户操作的时候也是很方便的。你可以通过命令行参数 -i 指定 hosts 文件:
+
+ $ ansible all -m shell -a "hostname" --ask-pass -i /etc/some/other/dir/ansible_hosts
+
+不过我更倾向于使用一个环境变量,这可以在你想要通过 source 一个不同的文件来切换工作目标的时候起到作用。这里的环境变量是 $ANSIBLE_HOSTS,可以这样设置:
+
+ $ export ANSIBLE_HOSTS=~/ansible_hosts
+
+一旦所有需要的组件都已经安装完毕,而且你也准备好了你的 hosts 文件,你就可以来试一试它了。为了快速测试,这里我把 127.0.0.1 写到了 ansible 的 hosts 文件里:
+
+ $ echo "127.0.0.1" > ~/ansible_hosts
+
+现在来测试一个简单的 ping:
+
+ $ ansible all -m ping
+
+或者提示 ssh 密码:
+
+ $ ansible all -m ping --ask-pass
+
+我在刚开始的设置中遇到过几次问题,因此这里强烈推荐为 ansible 设置 SSH 公钥认证。不过在刚刚的测试中我们使用了 --ask-pass,在一些机器上你会需要[安装 sshpass][5] 或者像这样指定 -c paramiko:
+
+ $ ansible all -m ping --ask-pass -c paramiko
+
+当然你也可以[安装 sshpass][6],然而 sshpass 并不总是在标准的仓库中提供,因此 paramiko 可能更为简单。
+
+### 设置 SSH 公钥认证 ###
+
+于是我们有了一份配置,以及一些基础的其他东西。现在让我们来做一些实用的事情。ansible 的强大很大程度上体现在 playbooks 上,后者基本上就是一些写好的 ansible 脚本(大部分来说),不过在制作一个 playbook 之前,我们将先从一些一句话脚本开始。现在让我们创建和配置 SSH 公钥认证,以便省去 -c 和 --ask-pass 选项:
+
+ $ ssh-keygen -t rsa
+
+样例输出:
+
+ Generating public/private rsa key pair.
+ Enter file in which to save the key (/home/mike/.ssh/id_rsa):
+ Enter passphrase (empty for no passphrase):
+ Enter same passphrase again:
+ Your identification has been saved in /home/mike/.ssh/id_rsa.
+ Your public key has been saved in /home/mike/.ssh/id_rsa.pub.
+ The key fingerprint is:
+ 94:a0:19:02:ba:25:23:7f:ee:6c:fb:e8:38:b4:f2:42 mike@ultrabook.linuxdork.com
+ The key's randomart image is:
+ +--[ RSA 2048]----+
+ |... . . |
+ |. . + . . |
+ |= . o o |
+ |.* . |
+ |. . . S |
+ | E.o |
+ |.. .. |
+ |o o+.. |
+ | +o+*o. |
+ +-----------------+
+
+现在显然有很多种方式来把它放到远程主机上应该的位置。不过既然我们正在使用 ansible,就用它来完成这个操作吧:
+
+ $ ansible all -m copy -a "src=/home/mike/.ssh/id_rsa.pub dest=/tmp/id_rsa.pub" --ask-pass -c paramiko
+
+样例输出:
+
+ SSH password:
+ 127.0.0.1 | success >> {
+ "changed": true,
+ "dest": "/tmp/id_rsa.pub",
+ "gid": 100,
+ "group": "users",
+ "md5sum": "bafd3fce6b8a33cf1de415af432774b4",
+ "mode": "0644",
+ "owner": "mike",
+ "size": 410,
+ "src": "/home/mike/.ansible/tmp/ansible-tmp-1407008170.46-208759459189201/source",
+ "state": "file",
+ "uid": 1000
+ }
+
+下一步,把公钥文件添加到远程服务器里。输入:
+
+ $ ansible all -m shell -a "cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys" --ask-pass -c paramiko
+
+样例输出:
+
+ SSH password:
+ 127.0.0.1 | FAILED | rc=1 >>
+ /bin/sh: /root/.ssh/authorized_keys: Permission denied
+
+矮油,我们需要用 root 来执行这个命令,所以还是加上一个 -u 参数吧:
+
+ $ ansible all -m shell -a "cat /tmp/id_rsa.pub >> /root/.ssh/authorized_keys" --ask-pass -c paramiko -u root
+
+样例输出:
+
+ SSH password:
+ 127.0.0.1 | success | rc=0 >>
+
+请注意,我刚才这是想要演示通过 ansible 来传输文件的操作。事实上 ansible 有一个更加方便的内置 SSH 密钥管理支持:
+
+ $ ansible all -m authorized_key -a "user=mike key='{{ lookup('file', '/home/mike/.ssh/id_rsa.pub') }}' path=/home/mike/.ssh/authorized_keys manage_dir=no" --ask-pass -c paramiko
+
+样例输出:
+
+ SSH password:
+ 127.0.0.1 | success >> {
+ "changed": true,
+ "gid": 100,
+ "group": "users",
+ "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCq+Z8/usprXk0aCAPyP0TGylm2MKbmEsHePUOd7p5DO1QQTHak+9gwdoJJavy0yoUdi+C+autKjvuuS+vGb8+I+8mFNu5CvKiZzIpMjZvrZMhHRdNud7GuEanusTEJfi1pUd3NA2iXhl4a6S9a/4G2mKyf7QQSzI4Z5ddudUXd9yHmo9Yt48/ASOJLHIcYfSsswOm8ux1UnyeHqgpdIVONVFsKKuSNSvZBVl3bXzhkhjxz8RMiBGIubJDBuKwZqNSJkOlPWYN76btxMCDVm07O7vNChpf0cmWEfM3pXKPBq/UBxyG2MgoCGkIRGOtJ8UjC/daadBUuxg92/u01VNEB mike@ultrabook.linuxdork.com",
+ "key_options": null,
+ "keyfile": "/home/mike/.ssh/authorized_keys",
+ "manage_dir": false,
+ "mode": "0600",
+ "owner": "mike",
+ "path": "/home/mike/.ssh/authorized_keys",
+ "size": 410,
+ "state": "file",
+ "uid": 1000,
+ "unique": false,
+ "user": "mike"
+ }
+
+现在这些密钥已经设置好了。我们来试着随便跑一个命令,比如 hostname,希望我们不会被提示要输入密码
+
+ $ ansible all -m shell -a "hostname" -u root
+
+样例输出:
+
+ 127.0.0.1 | success | rc=0 >>
+
+成功!!!现在我们可以用 root 来执行命令,并且不会被输入密码的提示干扰了。我们现在可以轻易地配置任何在 ansible hosts 文件中的主机了。让我们把 /tmp 中的公钥文件删除:
+
+ $ ansible all -m file -a "dest=/tmp/id_rsa.pub state=absent" -u root
+
+样例输出:
+
+ 127.0.0.1 | success >> {
+ "changed": true,
+ "path": "/tmp/id_rsa.pub",
+ "state": "absent"
+ }
+
+下面我们来做一些更复杂的事情,我要确定一些软件包已经安装了,并且已经是最新的版本:
+
+ $ ansible all -m zypper -a "name=apache2 state=latest" -u root
+
+样例输出:
+
+ 127.0.0.1 | success >> {
+ "changed": false,
+ "name": "apache2",
+ "state": "latest"
+ }
+
+很好,我们刚才放在 /tmp 中的公钥文件已经消失了,而且我们已经安装好了最新版的 apache。下面我们来看看前面命令中的 -m zypper,一个让 ansible 非常灵活,并且给了 playbooks 更多能力的功能。如果你不使用 openSuse 或者 Suse enterprise 你可能还不熟悉 zypper, 它基本上就是 suse 世界中相当于 yum 的存在。在上面所有的例子中,我的 hosts 文件中都只有一台机器。除了最后一个命令外,其他所有命令都应该在任何标准的 *nix 系统和标准的 ssh 配置中使用,这造成了一个问题。如果我们想要同时管理多种不同的机器呢?这便是 playbooks 和 ansible 的可配置性闪闪发光的地方了。首先我们来少许修改一下我们的 hosts 文件:
+
+ $ cat ~/ansible_hosts
+
+样例输出:
+
+ [RHELBased]
+ 10.50.1.33
+ 10.50.1.47
+
+ [SUSEBased]
+ 127.0.0.1
+
+首先,我们创建了一些分组的服务器,并且给了他们一些有意义的标签。然后我们来创建一个为不同类型的服务器执行不同操作的 playbook。你可能已经发现这个 yaml 的数据结构和我们之前运行的命令行语句中的相似性了。简单来说,-m 是一个模块,而 -a 用来提供模块参数。在 YAML 表示中你可以先指定模块,然后插入一个冒号 :,最后指定参数。
+
+ ---
+ - hosts: SUSEBased
+ remote_user: root
+ tasks:
+ - zypper: name=apache2 state=latest
+ - hosts: RHELBased
+ remote_user: root
+ tasks:
+ - yum: name=httpd state=latest
+
+现在我们有一个简单的 playbook 了,我们可以这样运行它:
+
+ $ ansible-playbook testPlaybook.yaml -f 10
+
+样例输出:
+
+ PLAY [SUSEBased] **************************************************************
+
+ GATHERING FACTS ***************************************************************
+ ok: [127.0.0.1]
+
+ TASK: [zypper name=apache2 state=latest] **************************************
+ ok: [127.0.0.1]
+
+ PLAY [RHELBased] **************************************************************
+
+ GATHERING FACTS ***************************************************************
+ ok: [10.50.1.33]
+ ok: [10.50.1.47]
+
+ TASK: [yum name=httpd state=latest] *******************************************
+ changed: [10.50.1.33]
+ changed: [10.50.1.47]
+
+ PLAY RECAP ********************************************************************
+ 10.50.1.33 : ok=2 changed=1 unreachable=0 failed=0
+ 10.50.1.47 : ok=2 changed=1 unreachable=0 failed=0
+ 127.0.0.1 : ok=2 changed=0 unreachable=0 failed=0
+
+注意,你会看到 ansible 联系到的每一台机器的输出。-f 参数让 ansible 在多台主机上同时运行指令。除了指定全部主机,或者一个主机分组的名字以外,你还可以把导入 ssh 公钥的操作从命令行里转移到 playbook 中,这将在设置新主机的时候提供很大的方便,甚至让新主机直接可以运行一个 playbook。为了演示,我们把我们之前的公钥例子放进一个 playbook 里:
+
+ ---
+ - hosts: SUSEBased
+ remote_user: mike
+ sudo: yes
+ tasks:
+ - authorized_key: user=root key="{{ lookup('file', '/home/mike/.ssh/id_rsa.pub') }}" path=/root/.ssh/authorized_keys manage_dir=no
+ - hosts: RHELBased
+ remote_user: mdonlon
+ sudo: yes
+ tasks:
+ - authorized_key: user=root key="{{ lookup('file', '/home/mike/.ssh/id_rsa.pub') }}" path=/root/.ssh/authorized_keys manage_dir=no
+
+除此之外还有很多可以做的事情,比如在启动的时候把公钥配置好,或者引入其他的流程来让你按需配置一些机器。不过只要 SSH 被配置成接受密码登陆,这些几乎可以用在所有的流程中。在你准备开始写太多 playbook 之前,另一个值得考虑的事情是,代码管理可以有效节省你的时间。机器需要不断变化,然而你并不需要在每次机器发生变化时都重新写一个 playbook,只需要更新相关的部分并提交这些修改。与此相关的另一个好处是,如同我之前所述,你可以从不同的地方管理你的整个基础结构。你只需要将你的 playbook 仓库 git clone 到新的机器上,就完成了管理所有东西的全部设置流程。
+
+#### 现实中的 ansible 例子 ####
+
+我知道很多用户经常使用 pastebin 这样的服务,以及很多公司基于显而易见的理由配置了他们内部使用的类似东西。最近,我遇到了一个叫做 showterm 的程序,巧合之下我被一个客户要求配置它用于内部使用。这里我不打算赘述这个应用程序的细节,不过如果你感兴趣的话,你可以使用 Google 搜索 showterm。作为一个合理的现实中的例子,我将会试图配置一个 showterm 服务器,并且配置使用它所需要的客户端应用程序。在这个过程中我们还需要一个数据库服务器。现在我们从配置客户端开始:
+
+ ---
+ - hosts: showtermClients
+ remote_user: root
+ tasks:
+ - yum: name=rubygems state=latest
+ - yum: name=ruby-devel state=latest
+ - yum: name=gcc state=latest
+ - gem: name=showterm state=latest user_install=no
+
+这部分很简单。下面是主服务器:
+
+ ---
+ - hosts: showtermServers
+ remote_user: root
+ tasks:
+ - name: ensure packages are installed
+ yum: name={{item}} state=latest
+ with_items:
+ - postgresql
+ - postgresql-server
+ - postgresql-devel
+ - python-psycopg2
+ - git
+ - ruby21
+ - ruby21-passenger
+ - name: showterm server from github
+ git: repo=https://github.com/ConradIrwin/showterm.io dest=/root/showterm
+ - name: Initdb
+ command: service postgresql initdb
+ creates=/var/lib/pgsql/data/postgresql.conf
+
+ - name: Start PostgreSQL and enable at boot
+ service: name=postgresql
+ enabled=yes
+ state=started
+ - gem: name=pg state=latest user_install=no
+ handlers:
+ - name: restart postgresql
+ service: name=postgresql state=restarted
+
+ - hosts: showtermServers
+ remote_user: root
+ sudo: yes
+ sudo_user: postgres
+ vars:
+ dbname: showterm
+ dbuser: showterm
+ dbpassword: showtermpassword
+ tasks:
+ - name: create db
+ postgresql_db: name={{dbname}}
+
+ - name: create user with ALL priv
+ postgresql_user: db={{dbname}} name={{dbuser}} password={{dbpassword}} priv=ALL
+ - hosts: showtermServers
+ remote_user: root
+ tasks:
+ - name: database.yml
+ template: src=database.yml dest=/root/showterm/config/database.yml
+ - hosts: showtermServers
+ remote_user: root
+ tasks:
+ - name: run bundle install
+ shell: bundle install
+ args:
+ chdir: /root/showterm
+ - hosts: showtermServers
+ remote_user: root
+ tasks:
+ - name: run rake db tasks
+ shell: 'bundle exec rake db:create db:migrate db:seed'
+ args:
+ chdir: /root/showterm
+ - hosts: showtermServers
+ remote_user: root
+ tasks:
+ - name: apache config
+ template: src=showterm.conf dest=/etc/httpd/conf.d/showterm.conf
+
+还凑合。请注意,从某种意义上来说这是一个任意选择的程序,然而我们现在已经可以持续地在任意数量的机器上部署它了,这便是配置管理的好处。此外,在大多数情况下这里的定义语法几乎是不言而喻的,wiki 页面也就不需要加入太多细节了。当然在我的观点里,一个有太多细节的 wiki 页面绝不会是一件坏事。
+
+### 扩展配置 ###
+
+我们并没有涉及到这里所有的细节。Ansible 有许多选项可以用来配置你的系统。你可以在你的 hosts 文件中内嵌变量,而 ansible 将会把它们应用到远程节点。如:
+
+ [RHELBased]
+ 10.50.1.33 http_port=443
+ 10.50.1.47 http_port=80 ansible_ssh_user=mdonlon
+
+ [SUSEBased]
+ 127.0.0.1 http_port=443
+
+尽管这对于快速配置来说已经非常方便,你还可以将变量分成存放在 yaml 格式的多个文件中。在你的 hosts 文件路径里,你可以创建两个子目录 group_vars 和 host_vars。在这些路径里放置的任何文件,只要能对得上一个主机分组的名字,或者你的 hosts 文件中的一个主机名,它们都会在运行时被插入进来。所以前面的一个例子将会变成这样:
+
+ ultrabook:/etc/ansible # pwd
+ /etc/ansible
+ ultrabook:/etc/ansible # tree
+ .
+ ├── group_vars
+ │ ├── RHELBased
+ │ └── SUSEBased
+ ├── hosts
+ └── host_vars
+ ├── 10.50.1.33
+ └── 10.50.1.47
+
+----------
+
+ 2 directories, 5 files
+ ultrabook:/etc/ansible # cat hosts
+ [RHELBased]
+ 10.50.1.33
+ 10.50.1.47
+
+----------
+
+ [SUSEBased]
+ 127.0.0.1
+ ultrabook:/etc/ansible # cat group_vars/RHELBased
+ ultrabook:/etc/ansible # cat group_vars/SUSEBased
+ ---
+ http_port: 443
+ ultrabook:/etc/ansible # cat host_vars/10.50.1.33
+ ---
+ http_port: 443
+ ultrabook:/etc/ansible # cat host_vars/10.50.1.47
+ ---
+ http_port:80
+ ansible_ssh_user: mdonlon
+
+### 改善 Playbooks ###
+
+组织 playbooks 也已经有很多种现成的方式。在前面的例子中我们用了一个单独的文件,因此这方面被大幅地简化了。组织这些文件的一个常用方式是创建角色。简单来说,你将一个主文件加载为你的 playbook,而它将会从其它文件中导入所有的数据,这些其他的文件便是角色。举例来说,如果你有了一个 wordpress 网站,你需要一个 web 前端,和一个数据库。web 前端将包括一个 web 服务器,应用程序代码,以及任何需要的模块。数据库有时候运行在同一台主机上,有时候运行在远程的主机上,这时候角色就可以派上用场了。你创建一个目录,并对每个角色创建对应的小 playbook。在这个例子中我们需要一个 apache 角色,mysql 角色,wordpress 角色,mod_php,以及 php 角色。最大的好处是,并不是每个角色都必须被应用到同一台机器上。在这个例子中,mysql 可以被应用到一台单独的机器。这同样为代码重用提供了可能,比如你的 apache 角色还可以被用在 python 和其他相似的 php 应用程序中。展示这些已经有些超出了本文的范畴,而且做一件事总是有很多不同的方式,我建议搜索一些 ansible 的 playbook 例子。有很多人在 github 上贡献代码,当然还有其他一些网站。
+
+### 模块 ###
+
+在 ansible 中,对于所有完成的工作,幕后的工作都是由模块主导的。Ansible 有一个非常丰富的内置模块仓库,其中包括软件包安装,文件传输,以及我们在本文中做的所有事情。但是对一部分人来说,这些并不能满足他们的配置需求,ansible 也提供了方法让你添加自己的模块。Ansible 的 API 有一个非常棒的事情是,它并没有限制模块也必须用编写它的语言 Python 来编写,也就是说,你可以用任何语言来编写模块。Ansible 模块通过传递 JSON 数据来工作,因此你只需要用想用的语言生成一段 JSON 数据。我很确定任何脚本语言都可以做到这一点,因此你现在就可以开始写点什么了。在 Ansible 的网站上有很多的文档,包括模块的接口是如何工作的,以及 Github 上也有很多模块的例子。注意一些小众的语言可能没有很好的支持,不过那只可能是因为没有多少人在用这种语言贡献代码。试着写点什么,然后把你的结果发布出来吧!
+
+### 总结 ###
+
+总的来说,虽然在配置管理方面已经有很多解决方案,我希望本文能显示出 ansible 简单的设置过程,在我看来这是它最重要的一个要点。请注意,因为我试图展示做一件事的不同方式,所以并不是前文中所有的例子都是适用于你的个别环境或者对于普遍情况的最佳实践。这里有一些链接能让你对 ansible 的了解进入下一个层次:
+
+- [Ansible 项目][7]主页.
+- [Ansible 项目文档][8].
+- [多级环境与 Ansible][9].
+
+
+
+
+--------------------------------------------------------------------------------
+
+via: http://www.cyberciti.biz/python-tutorials/linux-tutorial-install-ansible-configuration-management-and-it-automation-tool/
+
+作者:[Nix Craft][a]
+译者:[felixonmars](https://github.com/felixonmars)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.cyberciti.biz/tips/about-us
+[1]:http://www.cyberciti.biz/faq/fedora-sl-centos-redhat6-enable-epel-repo/
+[2]:http://www.cyberciti.biz/faq/rhel-centos-fedora-linux-yum-command-howto/
+[3]:http://www.cyberciti.biz/tips/linux-debian-package-management-cheat-sheet.html
+[4]:http://www.cyberciti.biz/faq/debian-ubuntu-centos-rhel-linux-install-pipclient/
+[5]:http://www.cyberciti.biz/faq/noninteractive-shell-script-ssh-password-provider/
+[6]:http://www.cyberciti.biz/faq/noninteractive-shell-script-ssh-password-provider/
+[7]:http://www.ansible.com/
+[8]:http://docs.ansible.com/
+[9]:http://rosstuck.com/multistage-environments-with-ansible/
diff --git a/translated/tech/20140829 6 Interesting Funny Commands of Linux (Fun in Terminal) – Part II.md b/translated/tech/20140829 6 Interesting Funny Commands of Linux (Fun in Terminal) – Part II.md
new file mode 100644
index 0000000000..b42da05894
--- /dev/null
+++ b/translated/tech/20140829 6 Interesting Funny Commands of Linux (Fun in Terminal) – Part II.md
@@ -0,0 +1,108 @@
+6个有趣的命令行工具(终端中的乐趣) - 第二部分
+================================================================================
+在之前, 我们给出类一些有关有趣的 Linux 命令行命令的文章, 这些文章告诉我们, Linux 并不像看起来那样复杂, 如果我们知道如何使用的话, 反而会非常有趣. Linux 命令行可以简洁而完美地执行一些复杂的任务, 并且十分有趣.
+
+- [Linux命令及Linux终端的20个趣事][3]
+- [Fun in Linux Terminal – Play with Word and Character Counts][2]
+
+![Funny Linux Commands](http://www.tecmint.com/wp-content/uploads/2014/08/Funny-Linux-Commands.png)
+有趣的 Linux 命令
+
+之前的一篇文章包含了 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 command in action](http://www.tecmint.com/wp-content/uploads/2014/08/pv-command.gif)
+正在运行的 pv 命令
+
+**注意**: '**q**' 选项表示'安静'(没有其他输出信息), '**L**' 选项表示每秒转化的字节数上限. 数字变量(必须是整数)用来调整预设的文本模拟.(To be fixed: 这里翻译有问题)
+
+### 2. toilet 命令 ###
+
+用单行命令 '**toilet**' 在终端里显示有边框的文字值一个不错的主意. 同样, 你必须保证 '**toilet**' 已经安装在你的电脑上. 如果没有的话, 请使用 apt 或 yum 安装. (译者注: 'toilet' 并不在 Fedora 的官方仓库里, 你可以从 github 上下载源代码来安装)
+
+ $ while true; do echo “$(date | toilet -f term -F border –Tecmint)”; sleep 1; done
+
+![toilet command in action](http://www.tecmint.com/wp-content/uploads/2014/08/toilet-command.gif)
+正在运行的 toilet 命令
+
+**注意**: 上面的脚本需要使用 **ctrl+z** 键来暂停.
+
+### 3. rig 命令 ###
+
+这个命令每次生成一个随机的身份信息和地址. 要运行这个命令, 你需要用 apt 或 yum 安装 '**rig**'. (译者注: 'rig' 不在 Fedora 的官方仓库中, 我只在 rpmseek 上找到了 Ubuntu 的 deb 包, 可以使用它来安装.)
+
+ # rig
+
+![rig command in action](http://www.tecmint.com/wp-content/uploads/2014/08/rig-command.gif)
+正在运行的 rig 命令
+
+### 4. aview 命令 ###
+
+你认为在终端用 ASCII 格式显示图片怎么样? 我们必须用 apt 或 yum 安装软件包 '**aview**'. (译者注: 'avieww' 不在 Fedora 的官方仓库中, 可以从 aview 的[项目主页][4]上下载源代码来安装. ) 在当前文件夹下有一个名为 '**elephant.jpg**' 的图片, 我想用 ASCII 模式在终端查看.
+
+ $ asciiview elephant.jpg -driver curses
+
+![aview command in action](http://www.tecmint.com/wp-content/uploads/2014/08/elephant.gif)
+正在运行的 aview 命令
+
+### 5. xeyes 命令 ###
+
+在上一篇文章中, 我们介绍了 '**oneko**' 命令, 它可以显示一个追随鼠标指针运动的小老鼠. '**xeyes**' 是一个类似的程序, 当你运行程序时, 你可以看见两个怪物的眼球追随鼠标的运动.
+
+ $ xeyes
+
+![xeyes command in action](http://www.tecmint.com/wp-content/uploads/2014/08/xeyes.gif)
+正在运行的 xeyes 命令
+
+### 6. cowsay 命令 ###
+
+你是否还记得上一次我们介绍的这个命令? 它可以显示一段预先确定的文本和一个字符构成的奶牛. 如果你想使用其它动物来代替奶牛怎么办? 查看可用的动物列表:
+
+ $ cowsay -l
+
+蟒蛇吃大象怎么样?
+
+ $ cowsay -f elephant-in-snake Tecmint is Best
+
+![cowsay command in action](http://www.tecmint.com/wp-content/uploads/2014/08/cowsay.gif)
+正在运行的 cowsay 命令
+
+山羊怎么样?
+
+ $ cowsay -f gnu Tecmint is Best
+
+![cowsay goat in action](http://www.tecmint.com/wp-content/uploads/2014/08/cowsay-goat.gif)
+正在运行的 山羊cowsay 命令
+
+今天就到这里吧. 我将带着另一篇有趣的文章回来. 跟踪 Tecmint 来获得最新消息. 不要忘记在下面的评论里留下你的有价值的回复.
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/linux-funny-commands/
+
+作者:[Avishek Kumar][a]
+译者:[wangjiezhe](https://github.com/wangjiezhe)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/avishek/
+[1]:http://www.tecmint.com/20-funny-commands-of-linux-or-linux-is-fun-in-terminal/
+[2]:http://www.tecmint.com/play-with-word-and-character-counts-in-linux/
+[3]:http://linux.cn/article-2831-1.html
+[4]:http://aa-project.sourceforge.net/aview/
diff --git a/translated/tech/20140904 Use LaTeX In Ubuntu 14.04 and Linux Mint 17 With Texmaker.md b/translated/tech/20140904 Use LaTeX In Ubuntu 14.04 and Linux Mint 17 With Texmaker.md
new file mode 100644
index 0000000000..af974647be
--- /dev/null
+++ b/translated/tech/20140904 Use LaTeX In Ubuntu 14.04 and Linux Mint 17 With Texmaker.md
@@ -0,0 +1,47 @@
+在Ubuntu 14.04和拥有Texmaker的Linux Mint 17(基于ubuntu和debian的Linux发行版)中使用LaTeX
+================================================================================
+![](http://itsfoss.itsfoss.netdna-cdn.com/wp-content/uploads/2014/09/texmaker_Ubuntu.jpeg)
+
+[LaTeX][1]是一种文本标记语言,也可以说是一种文档制作系统。经常在很多大学或者机构中作为一种标准来书写专业的科学文献,毕业论文或其他类似的文档。在这篇文章中,我们会看到如何在Ubuntu 14.04中使用LaTeX。
+
+### 在Ubuntu 14.04或Linux Mint 17中安装Texmaker
+
+[Texmaker][2]是一款免费开源的LaTeX编辑器,它支持一些主流的桌面操作系统,比如Window,Linux和OS X。下面是Texmaker的主要特点:
+
+- 支持Unicode编码的编辑器
+- 拼写检查
+- 代码折叠
+- 自动补全
+- 快速导航
+- PDF查看器
+- 编译简单
+- 支持370个数学符号
+- LaTeX格式文本
+- 通过TeX4ht导出到html和odt文件
+- 支持正则表达式
+
+在Ubuntu 14.04下,你可以通过下面的链接下载Texmaker的二进制包
+
+- [下载Texmaker编辑器][3]
+
+你通过链接下载到的是一个.deb包,因此你在一些像Linux Mint,Elementary OS,Pinguy OS等等类Debain的发行版中可以使用相同的安装方式。
+
+如果你想使用像Github类型的markdown编辑器,你可以试试[Remarkable编辑器][4]。
+
+希望Texmaker能够在Ubuntu和Linux Mint中帮到你
+
+--------------------------------------------------------------------------------
+
+via: http://itsfoss.com/install-latex-ubuntu-1404/
+
+作者:[Abhishek][a]
+译者:[john](https://github.com/johnhoow)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/Abhishek/
+[1]:http://www.latex-project.org/
+[2]:http://www.xm1math.net/texmaker/index.html
+[3]:http://www.xm1math.net/texmaker/download.html#linux
+[4]:http://itsfoss.com/remarkable-markdown-editor-linux/
diff --git a/translated/tech/20140915 Linux FAQs with Answers--How to change hostname on CentOS or RHEL 7.md b/translated/tech/20140915 Linux FAQs with Answers--How to change hostname on CentOS or RHEL 7.md
index 4514b99547..5c02aebbfe 100644
--- a/translated/tech/20140915 Linux FAQs with Answers--How to change hostname on CentOS or RHEL 7.md
+++ b/translated/tech/20140915 Linux FAQs with Answers--How to change hostname on CentOS or RHEL 7.md
@@ -2,7 +2,7 @@ Linux有问必答——如何在CentOS或RHEL 7上修改主机名
================================================================================
> 问题:在CentOS/RHEL 7上修改主机名的正确方法是什么(永久或临时)?
-在CentOS或RHEL中,有三种定义的主机名:(1)静态的,(2)瞬态的,以及(3)优雅的。“静态”主机名也成为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名。“瞬态”主机名是在系统运行时临时分配的主机名,例如,通过DHCP或mDNS服务器分配。静态主机名和瞬态主机名都遵从作为互联网域名同样的字符限制规则。而另一方面,“优雅”主机名则被允许使用自由形式(包括特殊/空白字符)的主机名,以展示给终端用户(如Dan's Computer)。
+在CentOS或RHEL中,有三种定义的主机名:(1)静态的(2)瞬态的,以及(3)灵活的。“静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名。“瞬态”主机名是在系统运行时临时分配的主机名,例如,通过DHCP或mDNS服务器分配。静态主机名和瞬态主机名都遵从作为互联网域名同样的字符限制规则。而另一方面,“灵活”主机名则允许使用自由形式(包括特殊/空白字符)的主机名,以展示给终端用户(如Dan's Computer)。
在CentOS/RHEL 7中,有个叫hostnamectl的命令行工具,它允许你查看或修改与主机名相关的配置。
@@ -12,31 +12,31 @@ Linux有问必答——如何在CentOS或RHEL 7上修改主机名
![](https://farm4.staticflickr.com/3844/15113861225_e0e19783a7.jpg)
-只查看静态、瞬态或优雅主机名,分别使用“--static”,“--transient”或“--pretty”选项。
+只查看静态、瞬态或灵活主机名,分别使用“--static”,“--transient”或“--pretty”选项。
$ hostnamectl status [--static|--transient|--pretty]
-要同时修改所有三个主机名:静态、瞬态和优雅主机名:
+要同时修改所有三个主机名:静态、瞬态和灵活主机名:
$ sudo hostnamectl set-hostname
![](https://farm4.staticflickr.com/3855/15113489172_4e25ac87fa_z.jpg)
-就像上面展示的那样,在修改静态/瞬态主机名时,任何特殊字符或空白字符会被移除,而提供的参数中的任何大写字母会自动转化为小写。一旦修改了静态主机名,/etc/hostname将被自动更新。然而,/etc/hosts不会更新以对修改作出回应,所以你需要手动更新/etc/hosts。
+就像上面展示的那样,在修改静态/瞬态主机名时,任何特殊字符或空白字符会被移除,而提供的参数中的任何大写字母会自动转化为小写。一旦修改了静态主机名,/etc/hostname将被自动更新。然而,/etc/hosts不会更新来回应所做的修改,所以你需要手动更新/etc/hosts。
-如果你只想修改特定的主机名(静态,瞬态或优雅),你可以使用“--static”,“--transient”或“--pretty”选项。
+如果你只想修改特定的主机名(静态,瞬态或灵活),你可以使用“--static”,“--transient”或“--pretty”选项。
例如,要永久修改主机名,你可以修改静态主机名:
$ sudo hostnamectl --static set-hostname
-注意,你不必重启机器以激活永久主机名修改。上面的命令会立即修改内核主机名。注销并重新登入后在命令行提示观察新的静态主机名。
+注意,你不必重启机器以激活永久主机名修改。上面的命令会立即修改内核主机名。注销并重新登入后在命令行提示来观察新的静态主机名。
--------------------------------------------------------------------------------
via: http://ask.xmodulo.com/change-hostname-centos-rhel-7.html
-译者:[GOLinux](https://github.com/GOLinux)
-校对:[校对者ID](https://github.com/校对者ID)
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[Caroline](https://github.com/carolinewuyan)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/translated/tech/20140919 How to install Arch Linux the easy way with Evo or Lution.md b/translated/tech/20140919 How to install Arch Linux the easy way with Evo or Lution.md
new file mode 100644
index 0000000000..b217691ce0
--- /dev/null
+++ b/translated/tech/20140919 How to install Arch Linux the easy way with Evo or Lution.md
@@ -0,0 +1,73 @@
+Arch Linux安装捷径:Evo/Lution
+================================================================================
+有些人只体验过Ubuntu或Mint的安装,却鼓起勇气想要安装Arch Linux,他们的学习道路是那样的陡峭和严峻,安装过程中半途而废的人数可能要比顺利过关的人多。如果你成功以有用的方式跑起并配置了Arch Linux,那么它已经把你培养成了一个饱经风霜的Linux用户。
+
+即使有[有帮助的维基][1]可以为新手提供指南,对于那些想要征服Arch的人而言要求仍然太高。你需要至少熟悉诸如fdisk或mkfs之类的终端命令,并且听过mc、nano或chroot这些,并努力掌握它们。这让我回想起了10年前的Debian安装。
+
+对于那些满怀抱负而又缺乏知识的生灵,有一个叫[Evo/Lution Live ISO][2]的ISO镜像格式安装器可以拯救他们。即便它貌似和自有发行版一样启动,但它也什么都没干,除了辅助安装Arch Linux准系统。Evo/Lution是一个项目,它旨在通过提供Arch的简单安装方式让Arch的用户基础多样化,就像为那些用户提供全面帮助和文档的社区一样。在这样一个组合中,Evo是Live CD(不可安装),而Lution是个安装器。项目创立者看到了Arch开发者和用户之间的巨大鸿沟及其衍生发行版,而想要在所有参与者之间构筑一个平等身份的社区。
+
+![](https://farm6.staticflickr.com/5559/15067088008_ecb221408c_z.jpg)
+
+项目的软件部分是命令行安装器Lution-AIS,它解释了一个普通的纯净的Arch安装过程中的每一步。安装完毕后,你将获得Arch提供的没有从AUR添加任何东西的最新软件或其它任何自定义的包。
+
+启动这个422MB大小的ISO镜像后,一个由显示在右边的带有选项快捷方式的Conky和一个左边等待运行安装器的LX-Terminal组成的工作区便呈现在我们眼前。
+
+![](https://farm6.staticflickr.com/5560/15067056888_6345c259db_z.jpg)
+
+在通过右击桌面或使用ALT-i启动实际的安装器后,一个写满了16个等待运行的任务的列表就出现在你面前了。除非你有一个更好的了解,否则将这些命令全部运行一遍。你可以一次运行,也可以进行选择,如1 3 6,或者1-4,也可以一次将它们全部运行,输入1-16。大多数步骤需要‘y’,即yes,来确认,而下一个任务则等着你敲击回车来执行。在此期间,你有足够的时间来阅读安装指南,它可以通过ALT-g来打开。当然,你也可以出去溜达一圈再回来。
+
+![](https://farm4.staticflickr.com/3868/15253227082_5e7219f72d_z.jpg)
+
+这16个步骤分成“基础安装”和“桌面安装”两组。第一个组安装主要关注本地化、分区,以及安装启动器。
+
+安装器带领你穿越分区世界,你可以选择使用gparted、gdisk,以及cfdisk。
+
+![](https://farm4.staticflickr.com/3873/15230603226_56bba60d28_z.jpg)
+
+![](https://farm4.staticflickr.com/3860/15253610055_e6a2a7a1cb_z.jpg)
+
+创建完分区后(如,像截图中所示,用gparted划分/dev/sda1用于root,/dev/sda2用于swap),你可以在10个文件系统中选择其中之一。在下一步中,你可以选择内核(最新或长期支持LTS)和基础系统。
+
+![](https://farm6.staticflickr.com/5560/15253610085_aa5a9557fb_z.jpg)
+
+安装完你喜爱的启动加载器后,第一部分安装就完成了,这大约需要花费12分钟。这是在普通的Arch Linux中你第一次重启进入系统所处之处。
+
+在Lution的帮助下,继续进入第二部分,在这一部分中将安装Xorg、声音和图形驱动,然后进入桌面环境。
+
+![](https://farm4.staticflickr.com/3918/15066917430_c21e0f0a9e_z.jpg)
+
+安装器会检测是否在VirtualBox中安装,并且会自动为VM安装并加载正确的通用驱动,然后相应地设置**systemd**。
+
+在下一步中,你可以选择KDE、Gnome、Cinnamon、LXDE、Englightenment、Mate或XFCE作为你的桌面环境。如果你不喜欢臃肿的桌面,你也可以试试这些窗口管理器:Awesome、Fluxbox、i3、IceWM、Openbox或PekWM。
+
+![](https://farm4.staticflickr.com/3874/15253610125_26f913be20_z.jpg)
+
+在使用Cinnamon作为桌面环境的情况下,第二部分安装将花费不到10分钟的时间;而选择KDE的话,因为要下载的东西多得多,所以花费的时间也会更长。
+
+Lution-AIS在Cinnamon和Awesome上像个妩媚的小妖精。在安装完成并提示重启后,它就带我进入了我所渴望的环境。
+
+![](https://farm4.staticflickr.com/3885/15270946371_c2def59f37_z.jpg)
+
+我要提出两点非议:一是在安装器要我选择一个镜像列表时,另外一个是在创建fstab文件时。在这两种情况下,它都另外开了一个终端,给出了一些文本信息提示。这让我花了点时间才搞清楚,原来我得把它关了,安装器才会继续。在创建fstab后,它又会提示你,而你需要关闭终端,并在问你是否想要保存文件时回答‘是’。
+
+![](https://farm4.staticflickr.com/3874/15067056958_3bba63da60_z.jpg)
+
+我碰到的第二个问题,可能与VirtualBox有关了。在启动的时候,你可以看到没有网络被检测到的提示信息。点击顶部左边的图标,将会打开wicd,这里所使用的网络管理器。点击“断开”,然后再点击“连接”并重启安装器,就可以让它自动检测到了。
+
+Evo/Lution我以为是个有价值的项目,在这里Lution工作一切顺利,目前还没有什么可告诉社区的。他们开启了一个全新的网站、论坛和维基,需要填充内容进去啊。所以,如果你喜欢这主意,加入[他们的论坛][3]并告诉他们吧。本文中的ISO镜像可以从[此网站][4]下载。
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/09/install-arch-linux-easy-way-evolution.html
+
+作者:[Ferdinand Thommes][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/ferdinand
+[1]:https://wiki.archlinux.org/
+[2]:http://www.evolutionlinux.com/
+[3]:http://www.evolutionlinux.com/forums/
+[4]:http://www.evolutionlinux.com/downloads.html
diff --git a/translated/tech/20140919 Linux FAQs with Answers--How to create a MySQL database from the command line.md b/translated/tech/20140919 Linux FAQs with Answers--How to create a MySQL database from the command line.md
new file mode 100644
index 0000000000..f2c7e3186a
--- /dev/null
+++ b/translated/tech/20140919 Linux FAQs with Answers--How to create a MySQL database from the command line.md
@@ -0,0 +1,116 @@
+数据库常见问题答案--如何使用命令行创建一个MySQL数据库
+===
+
+> **问题**:在一个某处运行的MySQL服务器上,我该怎样通过命令行创建和安装一个MySQL数据库呢?
+
+
+为了能通过命令行创建一个MySQL数据库,你可以使用mysql命令行客户端。下面是通过mysql命令行客户端创建和安装MySQL的步骤。
+
+### 第一步:安装MySQL客户端 ###
+
+当然你得确保MySQL客户端已经安装完毕。如果没有的话,可以按照下面的方法。
+
+在Debian,Ubuntu 或者 Linux Mint上:
+
+ $ sudo apt-get install mysql-client
+
+在Fedora,CentOS 或者 RHEL上:
+
+ $ sudo apt-get install mysql
+
+### 第二步:登陆到MySQL服务器 ###
+
+首先,你需要使用root用户登陆进你的MySQL数据库,如下:
+
+ $ mysql -u root -h -p
+
+请注意:为了能登进远程的MySQL服务器,你需要[开启服务器上的远程访问][1],如果你想调用同一主机上的MySQL服务器,你可以省略 "-h " 参数
+
+ $ mysql -u root -p
+
+你将需要输入MySQL服务器的密码,如果认证成功,MySQL提示将会出现。
+
+![](https://www.flickr.com/photos/xmodulo/15272971112/)
+
+### 第三步:创建一个MySQL数据库 ###
+
+在MySQL提示中输入命令之前,请记住所有的命令都是以分号结束的(否则将不会执行)。另外,考虑输入命令的时候使用大些字母,输入数据库对象使用小写字母。但那不是必须的,只是方便你的阅读。
+
+现在,让我们创建一个叫做xmodulo_DB的数据库:
+
+ mysql> CREATE DATABASE IF NOT EXISTS xmodulo_DB;
+
+![](https://farm4.staticflickr.com/3864/15086792487_8e2eaedbcd.jpg)
+
+### 第四步:创建一个数据库表 ###
+
+为了达到演示的目的,我们将会创建一个叫做posts_tbl的表,表里会存储关于文章的如下信息:
+
+- 文章的标题
+- 作者的第一个名字
+- 作者的最后一个名字
+- 文章可用或者不可用
+- 文章创建的日期
+
+这个过程分两步执行:
+
+首先,选择我们需要使用的数据库:
+
+ mysql> USE xmodulo_DB;
+
+然后,在数据库中创建新表:
+
+ mysql> CREATE TABLE 'posts_tbl' (
+ 'post_id' INT UNSIGNED NOT NULL AUTO_INCREMENT,
+ 'content' TEXT,
+ 'author_FirstName' VARCHAR(100) NOT NULL,
+ 'author_LastName' VARCHAR(50) DEFAULT NULL ,
+ 'isEnabled' TINYINT(1) NOT NULL DEFAULT 1,
+ 'date' TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
+ PRIMARY KEY ( 'post_id' )
+ ) TYPE = MYISAM;
+
+![](https://farm4.staticflickr.com/3870/15086654980_39d2d54d72.jpg)
+
+### 第五步:创建一个用户,并授予权限 ###
+
+当涉及到访问我们新创的数据库和表的时候,创建一个新用户是一个很好的主意。这样做就可以让用户在没有整个MySQL服务器权限的情况下,去访问那个数据库(而且只能是那个数据库)
+
+你可以创建新用户,授予权限,并且使改变生效:
+
+ mysql> GRANT ALL PRIVILEGES ON xmodulo_DB.* TO 'new_user'@'%' IDENTIFIED BY 'new_password';
+ mysql> FLUSH PRIVILEGES;
+
+'new_user'和'new_password'分别指的是新的用户名和他的密码。这条信息将会被保存在mysql.user表中,而且密码会被加密。
+
+### 第六步:测试 ###
+
+让我们插入一个虚拟的记录到posts_tbl表:
+
+ mysql> USE xmodulo_DB;
+ mysql> INSERT INTO posts_tbl (content, author_FirstName, author_Las tName)
+ VALUES ('Hi! This is some dummy text.', 'Gabriel', 'Canepa');
+
+然后查看posts_tbl表中的所有记录:
+
+ mysql> SELECT * FROM posts_tbl;
+
+![](https://farm4.staticflickr.com/3896/15086792527_39a987d8bd_z.jpg)
+
+注意:MySQL会在我们先前定义的地方自动插入适当的默认值(比如,'isEnabled'和'date')。
+
+---
+
+via: http://ask.xmodulo.com/create-mysql-database-command-line.html
+
+译者:[su-kaiyao](https://github.com/su-kaiyao)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linu
+x中国](http://linux.cn/) 荣誉推出
+
+[1]:http://xmodulo.com/2012/06/how-to-allow-remote-access-to-mysql.html
+
+
+
+
diff --git a/translated/tech/20140919 Network Installation of Debian 7 (Whezzy) on Client Machines using DNSMASQ Network Boot Server.md b/translated/tech/20140919 Network Installation of Debian 7 (Whezzy) on Client Machines using DNSMASQ Network Boot Server.md
new file mode 100644
index 0000000000..1d7ac429a0
--- /dev/null
+++ b/translated/tech/20140919 Network Installation of Debian 7 (Whezzy) on Client Machines using DNSMASQ Network Boot Server.md
@@ -0,0 +1,182 @@
+客户机通过DNSMASQ网络启动服务器网络安装“Debian 7(Wheezy)”
+================================================================================
+本教程将指引你直接通过使用**DNSMASQ**作为**PXE服务器(预启动执行环境)**的网络位置安装**Debian 7(Wheezy)**,此种情况是假定你的服务器不提供任何CD/DVD/USB介质驱动器,或者它只能通过相连的监视器、键盘和鼠标操作。
+
+![Debian 7 Network Installation on Client Machines](http://www.tecmint.com/wp-content/uploads/2014/09/Network-Debian-Instalaltion.png)
+
+客户机上的Debian 7网络安装
+
+**DNSMASQ**是一个轻量级网络基础架构服务器,它可以通过内建的DNS、DHCP和TFTP服务器提供如DNS、DHCP和网络启动等关键服务。
+
+一旦PXE服务器启动并运行,你可以指示你所有的客户机直接从网络启动,前提是你的客户机必须拥有一张支持网络启动的网卡,网络启动可以从BIOS的网络启动或启动服务选项中启用。
+
+### 需求 ###
+
+- [Debian 7 (Wheezy)安装指南][1]
+
+### 步骤1: 安装及配置DNSMASQ服务器 ###
+
+**1.** 首先,在安装Debian服务器后,要确保你的系统使用的是**静态IP地址**。因为除了网络启动之外,也要为你的整个网段提供DHCP服务。设置好静态IP地址后,以root帐号或具有root权力的用户来运行以下命令,进行DNSMASQ服务器的安装。
+
+ # apt-get install dnsmasq
+
+![Install Dnsmasq Package](http://www.tecmint.com/wp-content/uploads/2014/09/Install-Dnsmasq-in-Debian.png)
+
+安装Dnsmasq包
+
+**2.** 安装好DNSMASQ包后,你可以开始编辑配置文件。首先创建一个主配置文件的备份,然后使用下面的命令对**dnsmasq.conf**文件进行编辑。
+
+ # mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
+ # nano /etc/dnsmasq.conf
+
+![Backup Dnsmasq Configuration](http://www.tecmint.com/wp-content/uploads/2014/09/Backup-dnsmasq-Configuration-file.png)
+
+备份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
+
+![Configuration of Dnsmasq](http://www.tecmint.com/wp-content/uploads/2014/09/Configure-dnsmasq.png)
+
+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网络安装][2] – [网络启动部分][3]的官方页面镜像,抓取以下文件,要抓取的文件取决于你想要安装到客户端的系统架构。
+
+下载好**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/
+
+![Download Debian NetBoot Files](http://www.tecmint.com/wp-content/uploads/2014/09/Download-Debian-NetBoot-Files.png)
+
+下载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
+
+![Start Dnsmasq Service](http://www.tecmint.com/wp-content/uploads/2014/09/Start-Dnsmasq-Service.png)
+
+启动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
+
+![Open Dnsmasq Ports](http://www.tecmint.com/wp-content/uploads/2014/09/Open-Dnsmasq-Ports-620x303.png)
+
+开启Dnsmasq端口
+
+Now, the PXE loader located on your client network interface will load **pxelinux** configuration files from **/srv/tftp/pxelinux.cfg** directory using this order.
+现在,位于你的客户机网络接口上的PXE加载器将使用按以下顺序从**/srv/tftp/pxelinux.cfg**目录加载**pxelinux**配置文件。
+
+- GUID文件
+- MAC文件
+- 默认文件
+
+### 步骤3: 配置客户端从网络启动 ###
+
+**7.** 要为你的客户端计算机启用网络启动,请进入系统**BIOS配置**(如何进入BIOS设置,请查阅硬件主板提供商的文档)。
+
+转到**启动菜单**,然后选择**网络启动**作为**首要启动设备**(在某些系统上,你可以不用进入BIOS配置就能选择启动设备,只要在**BIOS自检**时按一个键就可以进行选择了)。
+
+![Select BIOS Settings](http://www.tecmint.com/wp-content/uploads/2014/09/Select-BIOS-Settings.png)
+
+选择BIOS设置
+
+**8。** 在编辑启动顺序后,通常按**F10**来保存BIOS设置。重启后,你的客户端计算机应该可以直接从网络启动了,应该会出第一个**PXE**提示,要求你按**F8**键进入菜单。
+
+接下来,敲击**F8**键来进入,会出现一个新的提示。敲击**回车**键,屏幕上会出现**Debian安装器**主界面提示,如下图所示。
+
+![Boot Menu Selection](http://www.tecmint.com/wp-content/uploads/2014/09/Boot-Menu-Selection.png)
+
+启动菜单选择
+
+![Select Debian Installer Boot](http://www.tecmint.com/wp-content/uploads/2014/09/Select-Debian-Installer-Boot.png)
+
+选择Debian安装器启动
+
+![Select Debian Install](http://www.tecmint.com/wp-content/uploads/2014/09/Select-Debian-Install.png)
+
+选择Debian安装
+
+从这里开始,你可以使用Debian 7 Wheezy安装进程将Debian安装到你的机器上了(安装链接见上面)。然而,为了能够完成安装进程,你也需要确保你的机器上互联网连接已经激活。
+
+### 步骤4: DNSMASQ服务器排障并在系统范围内启用 ###
+
+**9.** 要诊断服务器以查询最终是否发生问题或要查询其它提供给客户端的信息,运行以下命令来打开日志文件。
+
+ # tailf /var/log/daemon.log
+
+![Debug DNSMASQ Server](http://www.tecmint.com/wp-content/uploads/2014/09/Debbug-DNSMASQ-Server.png)
+
+DNSMASQ服务器排障
+
+**10.** 如果服务器测试中已一切就绪,你现在可以在**sysv-rc-conf**包的帮助下,启用**DNSMASQ**守护进程自启动,以使该进程在系统重启后自动启动。
+
+ # apt-get install sysv-rc-conf
+ # sysv-rc-conf dnsmaq on
+
+![Enable DNSMASQ Daemon](http://www.tecmint.com/wp-content/uploads/2014/09/Enable-DNSMASQ-Daemon.png)
+
+启用DNSMASQ守护进程
+
+到此为止吧!现在你的**PXE**服务器已经整装待发,随时准备好分配IP地址了(**DHCP**),并为你所有网段中的客户端提供需要的启动信息,这些信息配置用来从网络启动并安装Debian Wheezy。
+
+使用PXE网络启动安装在服务器主机数量增长时很有优势,因为你可以在短时间内火同时设置整个网络基础架构,为版本升级提供了方便,也可以通过kickstart文件使整个安装的全自动化。
+
+--------------------------------------------------------------------------------
+
+via: http://www.tecmint.com/network-installation-of-debian-7-on-client-machines/
+
+作者:[Matei Cezar][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://www.tecmint.com/author/cezarmatei/
+[1]:http://www.tecmint.com/debian-gnulinux-7-0-code-name-wheezy-server-installation-guide/
+[2]:http://www.debian.org/distrib/netinst#netboot
+[3]:http://ftp.nl.debian.org/debian/dists/wheezy/main/
diff --git a/translated/tech/20140922 How to Run Android Apps on Ubuntu using ARChon.md b/translated/tech/20140922 How to Run Android Apps on Ubuntu using ARChon.md
new file mode 100644
index 0000000000..56d0e74b8d
--- /dev/null
+++ b/translated/tech/20140922 How to Run Android Apps on Ubuntu using ARChon.md
@@ -0,0 +1,101 @@
+安卓应用乾坤大挪移,Ubuntu上的搬运工:ARChon
+================================================================================
+![Android, Chrome, Ubuntu](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/android-ubuntu.jpg)
+
+Android, Chrome, Ubuntu
+
+**Google最近发布了首批[能在Chrome OS本地运行的安卓应用集][1],通过‘安卓运行时’扩展完成了该壮举。**
+
+现在,一位开发者已经[指明了将安卓应用带入桌面版Chrome的路][2]。
+
+[弗拉德·菲利波夫][3]的[chromeos-apk脚本][4]和[ARChon安卓运行时扩展][5]手拉手一起开展工作,将安卓应用带进了Windows,Mac和Linux桌面上的Chrome中。
+
+![IMDB, Flipboard and Twitter Android Apps running on Ubuntu 14.04 LTS](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/android-apps-on-linux.jpg)
+
+运行在Ubuntu 14.04 LTS上的安卓应用:IMDB,Flipboard和Twitter
+
+通过运行时运行的应用的性能不是很令人惊异,任何想要运行Dead Trigger 2或者其它图形密集型游戏的雄心壮志可以放到一边了。
+
+同样地,作为官方运行时的非官方重构包并在Chrome OS之外运行,系统整合(如网络摄像头,扬声器等)可能不完整或者根本不可能。
+
+下面的指南只是提供原样,并不保证一定成功。它只能作为高度实验性进行,里面遍布漏洞,很不稳定——甚至平出恶魔。只能出于好奇而尝试,不去高度寄予厚望,那么你就不会深受其困扰。
+
+### 安卓应用转战Linux大法 ###
+
+要通过Chrome在Linux上运行安卓应用,很明显,你需要安装Chrome,要求的版本是37,或者更高。坦率地讲,如果你打算玩玩潜在不稳定的版本,那么你也可以下载并[为Linux安装不稳定的Google Chrome版本][6]。
+
+已经安装了Chrome的某个版本?你可以通过命令行来安装开发版,命令如下:
+
+ sudo apt-get install google-chrome-unstable
+
+接下来,你需要下载官方定制版,而不是Google或Chronium捐赠的版本——由弗拉德·菲利波夫创建的安卓运行时。这个版本和官方的有着诸多的不同,最突出的就是它可以运行在桌面版的浏览器上。
+
+- [从BitBucket下载ARChon v1.0][7]
+
+下载好运行时后,你需要从.zip解压内容,并移动解压后的文件夹到你的Home文件夹。
+
+要安装,打开Google Chrome,点击汉堡式菜单按钮,然后导航到扩展页。检查‘启用开发者模式’并点击‘加载解包的扩展’按钮。
+
+![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/chromeos-apk-extensions.jpg)
+
+运行时本身不会做太多事情,所以你需要从安卓应用创建兼容包。要完成这项工作,你需要‘[chromeos-apk][8]’[命令行Javascript工具][9],它可以从节点封装模块管理器安装。
+
+首先运行:
+
+ sudo apt-get install npm nodejs nodejs-legacy
+
+Ubuntu 64位用户?你也需要攫取以下库:
+
+ sudo apt-get install lib32stdc++6
+
+现在,运行命令来暗转脚本吧:
+
+ npm install -g chromeos-apk
+
+根据你的配置,你可能需要过会儿使用sudo来运行。如果你不喜欢[通过sudo安装npm模块,你可以][10]玩玩鬼把戏。
+
+![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/chromeos-apk-npm.jpg)
+
+现在,你直接回家了。去Google找找你想要试试的应用的APK吧,请牢记**不是所有的安卓应用都会工作**,而**那些可以工作的也未必工作得很好**,或者缺少功能。
+
+把你想要的安卓APK放到~/Home,然后回到终端中使用以下命令来转换,你可以将APK命名成任何你想要的名字:
+
+ chromeos-apk replaceme.apk --archon
+
+该命令将花一点时间来完成这项工作,也许也就是一眨眼的时间。[实际上,不需要眨眼的时间][11]
+
+![](http://www.omgubuntu.co.uk/wp-content/uploads/2014/09/chromeos-apk-archon-750x184.jpg)
+
+现在,在你的Home文件夹内有个ARChon生成的Chrome APK extension-y folder-y这样的东西。所有剩下来要做的事,就是安装并查看它是否正常工作!
+
+回到chrome://extensions页面,再次轻敲‘加载解封装扩展’按钮,但这次选择上面脚本创建的文件夹。
+
+应用应该会继续安装,不会有任何问题,但是它确实会没有问题吗?打开Chrome应用启动器或应用页面并启动它来看看是否有问题。
+
+#### 深度探索 ####
+
+由于ARChon运行时支持不限数量的chrome化的APK,你可以反复进行该操作,你想做多少次都行。Chrome APK [subreddit][12]用于跟踪成功/失败情况,所以如果你感到很有用,一定要贴出你的结果。
+
+--------------------------------------------------------------------------------
+
+via: http://www.omgubuntu.co.uk/2014/09/install-android-apps-ubuntu-archon
+
+作者:[Joey-Elijah Sneddon][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:https://plus.google.com/117485690627814051450/?rel=author
+[1]:http://www.omgchrome.com/first-4-chrome-android-apps-released/
+[2]:http://www.omgchrome.com/run-android-apps-on-windows-mac-linux-archon/
+[3]:https://github.com/vladikoff/
+[4]:https://github.com/vladikoff/chromeos-apk
+[5]:https://github.com/vladikoff/chromeos-apk/blob/master/archon.md
+[6]:http://www.chromium.org/getting-involved/dev-channel
+[7]:https://bitbucket.org/vladikoff/archon/get/v1.0.zip
+[8]:https://github.com/vladikoff/chromeos-apk/blob/master/README.md
+[9]:https://github.com/vladikoff/chromeos-apk/blob/master/README.md
+[10]:http://stackoverflow.com/questions/19352976/npm-modules-wont-install-globally-without-sudo/21712034#21712034
+[11]:https://www.youtube.com/watch?v=jKXLkWrBo7o
+[12]:http://www.reddit.com/r/chromeapks
diff --git a/translated/tech/20140922 How to use logrotate to manage log files in Linux.md b/translated/tech/20140922 How to use logrotate to manage log files in Linux.md
new file mode 100644
index 0000000000..c4f03e9dcc
--- /dev/null
+++ b/translated/tech/20140922 How to use logrotate to manage log files in Linux.md
@@ -0,0 +1,199 @@
+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
+
+![](https://farm6.staticflickr.com/5561/15096836737_33d3cd1ccb_z.jpg)
+
+正如我们从上面的输出结果可以看到的,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][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/sarmed
diff --git a/translated/tech/20140922 Reset Unity and Compiz Settings in Ubuntu 14.04.md b/translated/tech/20140922 Reset Unity and Compiz Settings in Ubuntu 14.04.md
new file mode 100644
index 0000000000..e51f3f79fc
--- /dev/null
+++ b/translated/tech/20140922 Reset Unity and Compiz Settings in Ubuntu 14.04.md
@@ -0,0 +1,41 @@
+在Ubuntu 14.04中重置Unity和Compiz设置【小贴士】
+================================================================================
+如果你一直在试验你的Ubuntu系统,你可能最终以Unity和Compiz的一片混乱收场。在此贴士中,我们将看看怎样来重置Ubuntu 14.04中的Unity和Compiz。事实上,全部要做的事,仅仅是运行几个命令而已。
+
+### 重置Ubuntu 14.04中的Unity和Compiz ###
+
+打开终端(Ctrl+Alt+T),并使用以下命令来重置compiz:
+
+ dconf reset -f /org/compiz/
+
+重置compiz后,重启Unity:
+
+ setsid unity
+
+此外,如果你想将Unity图标也进行重置,试试以下的命令吧:
+
+ unity --reset-icons
+
+### 可能的疑难解决方案: ###
+
+如果你在重置compiz时遇到如下错误:
+
+> error: GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dfile_2derror_2dquark.Code17: Cannot open dconf database: invalid gvdb header
+
+可能的原因是用户文件被搞乱了。备份dconf配置,并移除配置文件:
+
+ mv ~/.config/dconf/ ~/.config/dconf.bak
+
+希望本贴士对你重置Ubuntu 14.04中Unity和compiz有所帮助,欢迎您随时提出问题和建议。
+
+--------------------------------------------------------------------------------
+
+via: http://itsfoss.com/reset-unity-compiz-settings-ubuntu-1404/
+
+作者:[Abhishek][a]
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://itsfoss.com/author/Abhishek/
diff --git a/translated/tech/20140924 How To Install Vmware 10 On CentOS 7.md b/translated/tech/20140924 How To Install Vmware 10 On CentOS 7.md
new file mode 100644
index 0000000000..bb1a63a96b
--- /dev/null
+++ b/translated/tech/20140924 How To Install Vmware 10 On CentOS 7.md
@@ -0,0 +1,59 @@
+在CentOS 7上安装Vmware 10
+================================================================================
+在CentOS 7上安装Vmware 10.0.3,我将给你们我的经验。通常,这个版本上不能在CentOS 7工作的,因为它只能运行在比较低的内核版本3.10上。
+
+1 - 以正常方式下载并安装(没有问题)。唯一的问题是在后来体验vmware程序的时候。
+
+### 如何修复? ###
+
+**1 – 进入/usr/lib/vmware/modules/source。**
+
+ cd /usr/lib/vmware/modules/source
+
+**2 – 解压vmnet.tar.**
+
+ tar -xvf vmnet.tar
+
+**3 – 进入vmnet-only目录。**
+
+ cd vmnet-only
+
+**4 – 编辑filter.c文件。**
+
+ vi filter.c
+
+在206和259行,替换以下字符串:
+
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
+
+为:
+
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0)
+
+保存并退出。
+
+**5 – 回到先前文件夹。**
+
+ cd ../
+
+**6 – 再次压缩文件夹。**
+
+ tar -uvf vmnet.tar vmnet-only
+
+**7 – 移除旧目录。**
+
+ rm -fr vmnet-only
+
+**8 – 启动vmware并体验。**
+
+![](http://180016988.r.cdn77.net/wp-content/uploads/2014/09/Selection_008.png)
+
+--------------------------------------------------------------------------------
+
+via: http://www.unixmen.com/install-vmware-10-centos-7/
+
+作者: M.el Khamlichi
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/translated/tech/20140924 How to delete recently opened files history in ubuntu 14.04.md b/translated/tech/20140924 How to delete recently opened files history in ubuntu 14.04.md
new file mode 100644
index 0000000000..af595dedd3
--- /dev/null
+++ b/translated/tech/20140924 How to delete recently opened files history in ubuntu 14.04.md
@@ -0,0 +1,26 @@
+Ubuntu 14.04历史文件清理
+================================================================================
+这个简明教程对Ubuntu 14.04历史文件清理进行了说明,它用于初学者。
+
+要从dash搜索删除历史记录,请遵循以下程序。
+
+转到系统设置(System Settings)并打开安全与隐私(Security & Privacy)。
+
+![](http://www.ubuntugeek.com/wp-content/uploads/2014/09/14.png)
+
+在文件与应用(Files and Applications)标签下,点击清除用户数据(Clear Usage Data)。
+
+![](http://www.ubuntugeek.com/wp-content/uploads/2014/09/26.png)
+
+你也可以关闭“记录文件与应用使用(Record file and Application usage)以阻止系统记录你当前使用的文件和应用。
+
+![](http://www.ubuntugeek.com/wp-content/uploads/2014/09/36.png)
+
+--------------------------------------------------------------------------------
+
+via: http://www.ubuntugeek.com/how-to-delete-recently-opened-files-history-in-ubuntu-14-04.html
+
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/translated/tech/20140924 How to use CloudFlare as a ddclient provider under Ubuntu.md b/translated/tech/20140924 How to use CloudFlare as a ddclient provider under Ubuntu.md
new file mode 100644
index 0000000000..bd5f5a49ea
--- /dev/null
+++ b/translated/tech/20140924 How to use CloudFlare as a ddclient provider under Ubuntu.md
@@ -0,0 +1,72 @@
+Ubuntu下使用CloudFlare作为ddclient提供商
+================================================================================
+DDclient是一个Perl客户端,用于更新动态DNS网络服务提供商帐号下的动态DNS条目。它最初是由保罗·巴利编写的,现在大多数是由维姆潘科在做。它能做的不仅仅是动态DNS,也可以通过几种不同的方式获取你的WAN口IP地址。
+
+CloudFlare有一点已知的功能,它允许你通过API或叫做ddclient的命令行脚本更新你的DNS记录。不管哪一个,结果都一样,而且它是个免费软件。
+
+不幸的是,ddclient并不能在CloudFlare中即开即用。它需要打补丁,这里就是要介绍怎样在Debian或Ubuntu上破解它,它也能在带有Raspberry Pi的Raspbian上工作。
+
+### 需求 ###
+
+首先保证你有一个自有域名,然后登录到CloudFlare,添加你的域名。遵循指令操作,使用它给出的默认值就行了。你将让CloudFlare来托管你的域,所以你需要调整你的注册机构的设置。如果你想要使用子域名,请为它添加一条‘A’记录。目前,任何IP地址都可以。
+
+### 在Ubuntu上安装ddclient ###
+
+打开终端,并运行以下命令
+
+ sudo apt-get install ddclient
+
+现在,你需要使用以下命令来安装补丁
+
+ sudo apt-get install curl sendmail libjson-any-perl libio-socket-ssl-perl
+
+ curl -O http://blog.peter-r.co.uk/uploads/ddclient-3.8.0-cloudflare-22-6-2014.patch
+
+ sudo patch /usr/sbin/ddclient < ddclient-3.8.0-cloudflare-22-6-2014.patch
+
+以上命令用来完成ddclient的安装和打补丁
+
+### 配置ddclient ###
+
+你需要使用以下命令来编辑ddclient.conf文件
+
+ sudo vi /etc/ddclient.conf
+
+添加以下信息
+
+ ##
+ ### CloudFlare (cloudflare.com)
+ ###
+ ssl=yes
+ use=web, web=dyndns
+ protocol=cloudflare, \
+ server=www.cloudflare.com, \
+ zone=domain.com, \
+ login=you@email.com, \
+ password=api-key \
+ host.domain.com
+
+ Comment out:
+
+ #daemon=300
+
+来自CloudFlare帐号页面的api密钥
+
+ssl=yes might already be in that file
+
+use=web, web=dyndns will use dyndns to check IP (useful for NAT)
+
+你已经搞定了。登录到https://www.cloudflare.com并检查列出的与你域名对应的IP地址是否匹配到了http://checkip.dyndns.com。
+
+使用以下命令来验证你的设置
+
+ sudo ddclient -daemon=0 -debug -verbose -noquiet
+
+--------------------------------------------------------------------------------
+
+via: http://www.ubuntugeek.com/how-to-use-cloudflare-as-a-ddclient-provider-under-ubuntu.html
+
+译者:[GOLinux](https://github.com/GOLinux)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
diff --git a/translated/tech/20140925 Linux FAQs with Answers--How to catch and handle a signal in Perl.md b/translated/tech/20140925 Linux FAQs with Answers--How to catch and handle a signal in Perl.md
new file mode 100644
index 0000000000..4e6f628416
--- /dev/null
+++ b/translated/tech/20140925 Linux FAQs with Answers--How to catch and handle a signal in Perl.md
@@ -0,0 +1,30 @@
+Linux 有问必答-- 如何在Perl中捕捉并处理信号
+================================================================================
+> **提问**: 我需要通过使用Perl的自定义信号处理程序来处理一个中断信号。在一般情况下,我怎么在Perl程序中捕获并处理各种信号(如INT,TERM)?
+
+作为POSIX标准的异步通知机制,信号由操作系统发送给进程某个事件来通知它。当产生信号时,目标程序的执行是通过操作系统中断,并且该信号被发送到处理该信号的处理程序。任何人可以定义和注册自定义信号处理程序或依赖于默认的信号处理程序。
+
+在Perl中,信号可以被捕获并被一个全局的%SIG哈希变量处理。这个%SIG哈希变量被信号号锁定并包含对相应的信号处理程序。因此,如果你想为特定的信号定义自定义信号处理程序,你可以直接更新%SIG的信号的哈希值。
+
+下面是一个代码段来处理使用自定义信号处理程序中断(INT)和终止(TERM)的信号。
+
+ $SIG{INT} = \&signal_handler;
+ $SIG{TERM} = \&signal_handler;
+
+ sub signal_handler {
+ print "This is a custom signal handler\n";
+ die "Caught a signal $!";
+ }
+
+![](https://farm4.staticflickr.com/3910/15141131060_f7958f20fb.jpg)
+
+%SIG其他有效的哈希值有'IGNORE'和'DEFAULT'。当所分配的哈希值是'IGNORE'(例如,$SIG{CHLD}='IGNORE')时,相应的信号将被忽略。分配'DEFAULT'的哈希值(例如,$SIG{HUP}='DEFAULT'),意味着我们将使用一个默认的信号处理程序。
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/catch-handle-interrupt-signal-perl.html
+
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
\ No newline at end of file
diff --git a/translated/tech/20140925 Linux FAQs with Answers--How to change a network interface name on CentOS 7.md b/translated/tech/20140925 Linux FAQs with Answers--How to change a network interface name on CentOS 7.md
new file mode 100644
index 0000000000..10ba084f55
--- /dev/null
+++ b/translated/tech/20140925 Linux FAQs with Answers--How to change a network interface name on CentOS 7.md
@@ -0,0 +1,69 @@
+Linux有问必答 -- 如何在CentOS7上改变网络接口名
+================================================================================
+> **提问**: 在CentOS7,我想将分配的网络接口名更改为别的名字。有什么合适的方法来来重命名CentOS或RHEL7的网络接口?
+
+传统上,Linux的网络接口被枚举为eth[0123...],但这些名称并不一定符合实际的硬件插槽,PCI位置,USB接口数量等,这引入了一个不可预知的命名问题(例如,由于不确定的设备探测行为),这可能会导致不同的网络配置错误(例如,由无意的接口改名引起的禁止接口或者防火墙旁路)。基于MAC地址的udev规则在虚拟化的环境中并不有用,这里的MAC地址如端口数量一样无常。
+
+CentOS/RHEL6还推出了[一致和可预测的网络设备命名][1]网络接口的方法。这些特性可以唯一地确定网络接口的名称以使定位和区分设备更容易,并且在这样一种方式下,它随着启动,时间和硬件改变的情况下是持久的。然而,这种命名规则并不是默认在CentOS/RHEL6上开启。
+
+从CentOS/RHEL7起,可预见的命名规则变成了默认。根据这一规则,接口名称被自动基于固件,拓扑结构和位置信息来确定。现在,即使添加或移除网络设备,接口名称仍然保持固定,而无需重新枚举,和坏掉的硬件可以无缝替换。
+
+ * 基于接口类型的两个字母前缀:
+ * en -- 以太网
+ * sl -- 串行线路IP (slip)
+ * wl -- wlan
+ * ww -- wwan
+ *
+ * Type of names:
+ * b -- BCMA总线和新书
+ * ccw -- CCW总线组名
+ * o -- 车载设备的索引号
+ * s[f][d] -- 热插拔插槽索引号
+ * x -- MAC 地址
+ * [P]ps[f][d]
+ * -- PCI 位置
+ * [P]ps[f][u][..]1[i]
+ * -- USB端口号链
+
+新的命名方案的一个小的缺点是接口名称相比传统名称有点难以阅读。例如,你可能会发现像enp0s3名字。再者,你再也无法来控制接口名了。
+
+![](https://farm4.staticflickr.com/3854/15294996451_fa731ce12c_z.jpg)
+
+如果由于某种原因,你喜欢旧的方式,并希望能够选择任意名称分配给CentOS/ RHEL7的设备,你需要重写默认的可预测的命名规则,定义基于MAC地址udev规则。
+
+**下面是如何在CentOS或RHEL7命名网络接口。**
+
+首先,让我们来禁用该可预测命名规则。对于这一点,你可以在启动时传递“net.ifnames=0”的内核参数。这是通过编辑/etc/default/grub并加入“net.ifnames=0”到GRUB_CMDLINE_LINUX变量来实现的。
+
+![](https://farm4.staticflickr.com/3898/15315687725_c82fbef5bc_z.jpg)
+
+然后运行这条命令来重新生成GRUB配置并更新内核参数。
+
+ $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
+
+![](https://farm4.staticflickr.com/3909/15128981250_72f45633c1_z.jpg)
+
+接下来,编辑(或创建)一个udev的网络命名规则文件(/etc/udev/rules.d/70-persistent-net.rules),并添加下面一行。更换成你自己的MAC地址和接口。
+
+ $ sudo vi /etc/udev/rules.d/70-persistent-net.rules
+
+----------
+
+ SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:a9:7a:e1", ATTR{type}=="1", KERNEL=="eth*", NAME="sushi"
+
+最后,重启电脑并验证新的接口名。
+
+![](https://farm4.staticflickr.com/3861/15111594847_14e0c5a00d_z.jpg)
+
+请注意,配置重命名后的接口仍然是你的责任。如果网络配置(例如,IPv4设置,防火墙规则)是基于旧名称(变更前)的,则需要更新的网络配置以反映更改的名称。
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/change-network-interface-name-centos7.html
+
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/appe-Consistent_Network_Device_Naming.html
\ No newline at end of file
diff --git a/translated/tech/20140925 Linux FAQs with Answers--How to detect a Linux distribution in Perl.md b/translated/tech/20140925 Linux FAQs with Answers--How to detect a Linux distribution in Perl.md
new file mode 100644
index 0000000000..322d8e6163
--- /dev/null
+++ b/translated/tech/20140925 Linux FAQs with Answers--How to detect a Linux distribution in Perl.md
@@ -0,0 +1,53 @@
+Linux有问必答-- 如何用Perl检测Linux的发行版本
+================================================================================
+> **提问**:我需要写一个Perl程序,它会包含Linux发行版相关的代码。为此,Perl程序需要能够自动检测运行中的Linux的发行版(如Ubuntu、CentOS、Debian、Fedora等等),以及它是什么版本号。如何用Perl检测Linux的发行版本?
+
+如果要用Perl脚本检测Linux的发行版,你可以使用一个名为[Linux::Distribution][1]的Perl模块。该模块通过检查/etc/lsb-release以及其他特定的/etc下的发行版特定的目录来猜测底层Linux操作系统。它支持检测所有主要的Linux发行版,包括Fedora、CentOS、Arch Linux、Debian、Ubuntu、SUSE、Red Hat、Gentoo、Slackware、Knoppix和Mandrake。
+
+要在Perl中使用这个模块,你首先需要安装它。
+
+### 在Debian或者Ubuntu上安装 Linux::Distribution ###
+
+基于Debian的系统直接用apt-get安装
+
+ $ sudo apt-get install liblinux-distribution-packages-perl
+
+### 在Fedora、CentOS 或者RHEL上安装 Linux::Distribution ###
+
+如果你的Linux没有Linux::Distribution模块的安装包(如基于红帽的系统),你可以使用CPAN来构建。
+
+首先确保你的Linux系统安装了CPAN
+
+ $ sudo yum -y install perl-CPAN
+
+使用这条命令来构建并安装模块:
+
+ $ sudo perl -MCPAN -e 'install Linux::Distribution'
+
+### 用Perl确定Linux发行版 ###
+
+Linux::Distribution模块安装完成之后,你可以使用下面的代码片段来确定你运行的Linux发行版本。
+
+ use Linux::Distribution qw(distribution_name distribution_version);
+
+ my $linux = Linux::Distribution->new;
+
+ if ($linux) {
+ my $distro = $linux->distribution_name();
+ my $version = $linux->distribution_version();
+ print "Distro: $distro $version\n";
+ }
+ else {
+ print "Distro: unknown\n";
+ }
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/detect-linux-distribution-in-perl.html
+
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:https://metacpan.org/pod/Linux::Distribution
\ No newline at end of file
diff --git a/translated/tech/20140925 Linux FAQs with Answers--How to embed all fonts in a PDF document generated with LaTex.md b/translated/tech/20140925 Linux FAQs with Answers--How to embed all fonts in a PDF document generated with LaTex.md
new file mode 100644
index 0000000000..29b98ab3d4
--- /dev/null
+++ b/translated/tech/20140925 Linux FAQs with Answers--How to embed all fonts in a PDF document generated with LaTex.md
@@ -0,0 +1,39 @@
+Linux有问必答-- 如何在PDF中嵌入LaTex中的所有字体
+================================================================================
+> **提问**: 我通过编译LaTex源文件生成了一份PDF文档。然而,我注意到,并不是所有字体都嵌入到了PDF文档中。我怎样才能确保所有的字体嵌入在由LaTex生成的PDF文档中?
+
+当你创建一个PDF文件时,在PDF文件中嵌入字体是一个好主意。如果你不嵌入字体,PDF浏览器可以在计算机上没有字体的情况下使用其他东西代替。这将导致文件被在不同的PDF浏览器或操作系统平台上呈现不同的样式。当你打印出来的文档时,缺少的字体是一个问题。
+
+当你从LaTex中生成PDF文档时(例如用pdflatex或dvipdfm),可能并不是所有的字体都嵌入在PDF文档中。例如,[pdffonts][1]下面的输出中提示PDF文档中有缺少的字体(如Helvetica)。
+
+![](https://farm3.staticflickr.com/2944/15344704481_d691f66e75_z.jpg)
+
+为了避免这样的问题,下面是如何在LaTex编译时嵌入所有的字体。
+
+ $ latex document.tex
+ $ dvips -Ppdf -G0 -t letter -o document.ps document.dvi
+ $ ps2pdf -dPDFSETTINGS=/prepress \
+ -dCompatibilityLevel=1.4 \
+ -dAutoFilterColorImages=false \
+ -dAutoFilterGrayImages=false \
+ -dColorImageFilter=/FlateEncode \
+ -dGrayImageFilter=/FlateEncode \
+ -dMonoImageFilter=/FlateEncode \
+ -dDownsampleColorImages=false \
+ -dDownsampleGrayImages=false \
+ document.ps document.pdf
+
+现在你可以看到所有的字体都被嵌入到PDF中了。
+
+![](https://farm4.staticflickr.com/3890/15161184500_15ec673dca_z.jpg)
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/embed-all-fonts-pdf-document-latex.html
+
+译者:[geekpi](https://github.com/geekpi)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://ask.xmodulo.com/check-which-fonts-are-used-pdf-document.html
\ No newline at end of file
diff --git a/translated/tech/How to create a site-to-site IPsec VPN tunnel using Openswan in Linux.md b/translated/tech/How to create a site-to-site IPsec VPN tunnel using Openswan in Linux.md
new file mode 100644
index 0000000000..2a340add61
--- /dev/null
+++ b/translated/tech/How to create a site-to-site IPsec VPN tunnel using Openswan in Linux.md
@@ -0,0 +1,215 @@
+在Linux中使用Openswan搭建站点到站点IPsec VPN 隧道
+================================================================================
+虚拟私有网络(VPN)隧道通过Internet隧道技术将两个不同地理位置的网络安全的连接起来。当这两个网络是使用私有IP地址的私有局域网络时,那么两个网络之间是不能相互访问的,这时使用隧道技术就可以使得子网间的主机进行通讯。例如,VPN隧道技术经常被用于大型机构中不同办公区域子网的连接。
+
+有时,使用VPN隧道仅仅是因为它很安全。服务提供商与公司会使用这样一种方式设网络,他们将重要的服务器(如,数据库,VoIP,银行服务器)放置到一个子网内,仅仅让有权限的用户通过VPN隧道进行访问。如果需要搭建一个安的VPN隧道,通常会选用[IPsec][1],因为IPsec VPN隧道被多重安全层所保护。
+
+这篇指导文章将会告诉你如何构建站点到站点的 VPN隧道。
+
+### 拓扑结构 ###
+
+这边指导文章将按照以下的拓扑结构来构建一个IPsec 隧道。
+
+![](https://farm4.staticflickr.com/3838/15004668831_fd260b7f1e_z.jpg)
+
+![](https://farm6.staticflickr.com/5559/15004668821_36e02ab8b0_z.jpg)
+
+![](https://farm6.staticflickr.com/5571/14821245117_3f677e4d58_z.jpg)
+
+### 安装软件包以及准备VPN服务器 ###
+
+一般情况下,你仅能管理A点,但是根据需求,你可能需要同时管理A点与B点。我们从安装Openswan软件开始。
+
+基于Red Hat的系统(CentOS,Fedora,或RHEL):
+
+ # yum install openswan lsof
+
+在基于Debian的系统(Debian,Ubuntu或Linux Mint):
+
+ # apt-get install openswan
+
+现在禁用VPN的重定向功能,如果有服务器,可以执行下列命令:
+
+ # for vpn in /proc/sys/net/ipv4/conf/*;
+ # do echo 0 > $vpn/accept_redirects;
+ # echo 0 > $vpn/send_redirects;
+ # done
+
+接下来,允许IP转发并且禁重定向功能。
+
+ # vim /etc/sysctl.conf
+
+----------
+
+ net.ipv4.ip_forward = 1
+ net.ipv4.conf.all.accept_redirects = 0
+ net.ipv4.conf.all.send_redirects = 0
+
+重加载 /etc/sysctl.conf文件:
+
+ # sysctl -p
+
+在防火墙中启用所需的端口,并保证不与系统当前的规则冲突。
+
+ # iptables -A INPUT -p udp --dport 500 -j ACCEPT
+ # iptables -A INPUT -p tcp --dport 4500 -j ACCEPT
+ # iptables -A INPUT -p udp --dport 4500 -j ACCEPT
+
+最后,我们为NAT创建防火墙规则。
+
+ # iptables -t nat -A POSTROUTING -s site-A-private-subnet -d site-B-private-subnet -j SNAT --to site-A-Public-IP
+确保防火墙规则的健壮性。
+
+#### 注意: ####
+
+- 你可以使用MASQUERAD替代SNAT(iptables).理论上说它也能正常工作,但是有可能会与VPS发生冲突,所以我任然建议使用SNAT.
+- 如果你同时在管理B点,那么在B点也设置同样的规则。
+- 直连路由则不需要SNAT。
+
+### 准配置文件 ###
+
+我们将要用配置的第一个文件是ipsec.conf。不论你将要配置哪一台服务器,总是将你这端的服务器看成是左边的,而将远端的看作是右边的。以下配置是在站点A的VPN服务器做的。
+
+ # vim /etc/ipsec.conf
+
+----------
+
+ ## general configuration parameters ##
+
+ config setup
+ plutodebug=all
+ plutostderrlog=/var/log/pluto.log
+ protostack=netkey
+ nat_traversal=yes
+ virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/16
+ ## disable opportunistic encryption in Red Hat ##
+ oe=off
+
+ ## disable opportunistic encryption in Debian ##
+ ## Note: this is a separate declaration statement ##
+ include /etc/ipsec.d/examples/no_oe.conf
+
+ ## connection definition in Red Hat ##
+ conn demo-connection-redhat
+ authby=secret
+ auto=start
+ ike=3des-md5
+ ## phase 1 ##
+ keyexchange=ike
+ ## phase 2 ##
+ phase2=esp
+ phase2alg=3des-md5
+ compress=no
+ pfs=yes
+ type=tunnel
+ left=
+ leftsourceip=
+ leftsubnet=/netmask
+ ## for direct routing ##
+ leftsubnet=/32
+ leftnexthop=%defaultroute
+ right=
+ rightsubnet=/netmask
+
+ ## connection definition in Debian ##
+ conn demo-connection-debian
+ authby=secret
+ auto=start
+ ## phase 1 ##
+ keyexchange=ike
+ ## phase 2 ##
+ esp=3des-md5
+ pfs=yes
+ type=tunnel
+ left=
+ leftsourceip=
+ leftsubnet=/netmask
+ ## for direct routing ##
+ leftsubnet=/32
+ leftnexthop=%defaultroute
+ right=
+ rightsubnet=/netmask
+
+有许多方式实现身份验证。这里使用预共享密钥,并将它添加到文件 file /etc/ipsec.secrets。
+
+ # vim /etc/ipsec.secrets
+
+----------
+
+ siteA-public-IP siteB-public-IP: PSK "pre-shared-key"
+ ## in case of multiple sites ##
+ siteA-public-IP siteC-public-IP: PSK "corresponding-pre-shared-key"
+
+### 启动服务并排除故障 ###
+
+目前,服务器已经可以创建站点到站点的VPN隧道了。如果你可以管理B站点,请确认已经为B服务器配置了所需的参数。对于基于Red Hat的系统,使用chkconfig命令以确定这项服务以设置为开机自启动。
+
+ # /etc/init.d/ipsec restart
+
+如果所有服务器没有问题的话,那么可以打通隧道了。注意以下内容后,你可以使用ping命令来测试隧道。
+
+1.A点不可达B点的子网,当隧道没有启动时ping无效。
+1.隧道启动后,在A点直接ping B点的子网IP。是可以ping通的。
+
+并且,到达目的子网的路由也会出现在服务器的路由表中。(译者:子网指的是site-B,服务器指的是site-A)
+
+ # ip route
+
+----------
+
+ [siteB-private-subnet] via [siteA-gateway] dev eth0 src [siteA-public-IP]
+ default via [siteA-gateway] dev eth0
+
+另外,我们可以使用命令来检测隧道的状态。
+
+ # service ipsec status
+
+----------
+
+ IPsec running - pluto pid: 20754
+ pluto pid 20754
+ 1 tunnels up
+ some eroutes exist
+
+----------
+
+ # ipsec auto --status
+
+----------
+
+ ## output truncated ##
+ 000 "demo-connection-debian": myip=; hisip=unset;
+ 000 "demo-connection-debian": ike_life: 3600s; ipsec_life: 28800s; rekey_margin: 540s; rekey_fuzz: 100%; keyingtries: 0; nat_keepalive: yes
+ 000 "demo-connection-debian": policy: PSK+ENCRYPT+TUNNEL+PFS+UP+IKEv2ALLOW+SAREFTRACK+lKOD+rKOD; prio: 32,28; interface: eth0;
+
+ ## output truncated ##
+ 000 #184: "demo-connection-debian":500 STATE_QUICK_R2 (IPsec SA established); EVENT_SA_REPLACE in 1653s; newest IPSEC; eroute owner; isakmp#183; idle; import:not set
+
+ ## output truncated ##
+ 000 #183: "demo-connection-debian":500 STATE_MAIN_I4 (ISAKMP SA established); EVENT_SA_REPLACE in 1093s; newest ISAKMP; lastdpd=-1s(seq in:0 out:0); idle; import:not set
+
+日志文件/var/log/pluto.log记录了关于身份验证,密钥交换以及隧道处于不同时期的一些信息。如果你的隧道无法启动了,可以查看这个文档。
+
+如果你确信所有配置都是正确的,但是你的隧道任然无法启动,那么你需要检查以下的事件。
+
+1.很多ISP会过滤IPsec端口。确认你的网络ISP允许使用UDP 500, TCP/UDP 4500端口。你可以试着在远端通过talnet连接服务器的IPsec端口。
+1.确认所用的端口在服务器防火墙规则中是允许的。
+1.确认两端服务器的预共享密钥是一致的。
+1.左边和右边的参数应该正确配置在两端的服务器上
+1.如果你遇到的是NAT问题,试着使用SNAT替换MASQUERADING。
+
+总结,这篇指导重点在于使用Openswa搭建站点到站点IPsec VPN的流程。管理员可以使用VPN使得一些重要的资源仅能通过隧道来获取,这对于加强安全性很有效果。同时VPN确保数据不被监听以及截。
+
+希望对你有帮助。让我知道你的意。
+
+via: http://xmodulo.com/2014/08/create-site-to-site-ipsec-vpn-tunnel-openswan-linux.html
+
+作者:[Sarmed Rahman][a]
+译者:[SPccman](https://github.com/SPccman)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/sarmed
+[1]:http://en.wikipedia.org/wiki/IPsec
+[2]:https://www.openswan.org/
diff --git a/translated/tech/How to sniff HTTP traffic from the command line on Linux.md b/translated/tech/How to sniff HTTP traffic from the command line on Linux.md
new file mode 100644
index 0000000000..c45d3e3215
--- /dev/null
+++ b/translated/tech/How to sniff HTTP traffic from the command line on Linux.md
@@ -0,0 +1,103 @@
+使用Linux命令行嗅探HTTP流量
+================================================================================
+假设由于某种原因,你需要嗅探HTTP站点的流量(如HTTP请求与响应)。举个例子,你可能在测试一个web服务器的实验性功能,或者 你在为某个web应用或RESTful服务排错,又或者你正在为PAC排错或寻找某个站点下载的恶意软件。不论什么原因,在这些情况下,进行HTTP流量嗅探对于系统管理、开发者、甚至最终用户来说都是很有帮助的。
+
+数据包嗅工具tcpdump被广泛用于实时数据包的导出,但是你需要设置过滤规则来捕获HTTP流量,甚至它的原始输出通常不能方便的停 在HTTP协议层。实时web服务器日志解析器如[ngxtop][3]提供可读的实时web流量跟踪痕迹,但这仅适用于可完全访问live web服务器日志的情况。
+
+要是有一个仅用于抓取HTTP流量的类tcpdump的数据包嗅探工具就非常好了。事实上,[httpry][4]就是:**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][5]。
+
+ $ sudo yum install httpry
+
+如果逆向通过源码来构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
+
+httpry就会监听指定的网络接口,并且实时的显示捕获到的HTTP 请求/响。
+
+![](https://farm4.staticflickr.com/3883/14985851635_7b94787c6d_z.jpg)
+
+在大多数情况下,由于发送与接到的数据包过多导致刷屏很快,难以分析。这时候你肯定想将捕获到的数据包保存下来以离线分析。可以使用'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
+
+![](https://farm6.staticflickr.com/5551/14799184220_3b449d422c_z.jpg)
+
+如果你下载了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
+
+你可能在使用插件的时候遇到警告。比如,如果你没有安装带有DBI接口的MySQL数据库那么使用db_dump插件时可能会失败。如果一个 插件初始化失败的话,那么这个插件不能使用。所以你可以忽略那些警告。
+
+当parse_log.pl完成后,你将在httpry/scripts 目录下看到数个分析结果。例如,log_summary.txt 与如下内容类似。
+
+![](https://farm4.staticflickr.com/3845/14799162189_b85abdf21d_z.jpg)
+
+总结,当你要分析HTTP数据包的时候,httpry非常有用。它可能并不被大多Linux使用着所熟知,但会用总是有好处的。你对这个工具有什么看法呢?
+
+--------------------------------------------------------------------------------
+
+via: http://xmodulo.com/2014/08/sniff-http-traffic-command-line-linux.html
+
+作者:[Dan Nanni][a]
+译者:[DoubleC](https://github.com/DoubleC)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[a]:http://xmodulo.com/author/nanni
+[1]:http://xmodulo.com/2012/12/how-to-set-up-proxy-auto-config-on-ubuntu-desktop.html
+[2]:http://xmodulo.com/2012/11/what-are-popular-packet-sniffers-on-linux.html
+[3]:http://xmodulo.com/2014/06/monitor-nginx-web-server-command-line-real-time.html
+[4]:http://dumpsterventures.com/jason/httpry/
+[5]:http://xmodulo.com/2013/03/how-to-set-up-epel-repository-on-centos.html
diff --git a/translated/tech/Linux FAQs with Answers--How to build a RPM or DEB package from the source with CheckInstall.md b/translated/tech/Linux FAQs with Answers--How to build a RPM or DEB package from the source with CheckInstall.md
new file mode 100644
index 0000000000..372030e6d0
--- /dev/null
+++ b/translated/tech/Linux FAQs with Answers--How to build a RPM or DEB package from the source with CheckInstall.md
@@ -0,0 +1,86 @@
+Linux 常见问题解答 --怎么用checkinstall从源码创建一个RPM或DEB包
+================================================================================
+> **问题**:我想要从源码创建安装的软件程序。有没有一种方式来创建并且从源码安装包,而不是运行“make install”?那样,以后如果我想,我可以容易的卸载程序。
+
+如果你已经从从它的源码运行“make install”安装了linux程序。想完整移除它将变得真的很麻烦,除非程序的创造者在Makefile里提供卸载的目标。你会有在你系统里文件的完整列表来和从源码安装之后比较,然后手工移除所有在制作安装过程中加入的文件
+
+
+这时候Checkinstall就可以派上使用。Checkinstall保留命令行创建或修改的所有文件的路径(例如:“make install”“make install_modules”等)并建立一个标准的二进制包,让你能用你发行版的标准包管理系统安装或卸载它,(例子:Red Hat的yum或者Debian的apt-get命令) It has been also known to work with Slackware, SuSe, Mandrake and Gentoo as well, as per the official documentation. [official documentation][1].
+
+在这篇文章中,我们只集中在红帽子和Debian为基础的发行版,并展示怎样从源码使用Checkinstall创建一个RPM和DEB软件包
+
+### 在linux上安装Checkinstall ###
+
+在Debian衍生上安装Checkinstall:
+
+ # aptitude install checkinstall
+
+在红帽子的发行版上安装Checkinstall,你需要下载一个预先建立的Checkinstall rpm(例如:从 [http://rpm.pbone.net][2]),他已经从Repoforge库里删除。对于Cent OS6这个rpm包也可在Cent OS7里工作。
+
+ # wget ftp://ftp.pbone.net/mirror/ftp5.gwdg.de/pub/opensuse/repositories/home:/ikoinoba/CentOS_CentOS-6/x86_64/checkinstall-1.6.2-3.el6.1.x86_64.rpm
+ # yum install checkinstall-1.6.2-3.el6.1.x86_64.rpm
+
+一旦checkinstall安装,你可以用下列格式创建一个特定的软件包
+
+ # checkinstall
+
+如果没有参数,默认安装命令“make install”将被使用
+
+### 用Checkinstall创建一个RPM或DEB包 ###
+
+在这个例子里,我们将创建一个htop包,对于linux交互式文本模式进程查看器(就像上面的 steroids)
+
+
+首先,让我们从项目的官方网站下载源代码,一个最佳的练习,我们存储源码到/usr/local/src,并解压它
+
+ # cd /usr/local/src
+ # wget http://hisham.hm/htop/releases/1.0.3/htop-1.0.3.tar.gz
+ # tar xzf htop-1.0.3.tar.gz
+ # cd htop-1.0.3
+
+让我们找出htop安装命令,那样我们就能调用Checkinstall命令,下面展示了,htop用“make install”命令安装
+
+ # ./configure
+ # make install
+
+因此,创建一个htop包,我们可以调用checkinstall不带任何参数安装,这将使用“make install”命令创建一个包。随着这个过程 checkinstall命令会问你一个连串的问题。
+
+总之,这个命令会创建一个htop包: **htop**:
+
+ # ./configure
+ # checkinstall
+
+回答“Y”“我会创建一个默认设置的包文件?”
+
+![](https://farm6.staticflickr.com/5577/15118597217_1fdd0e0346_z.jpg)
+
+你可以输入一个包的简短描述,然后按两次ENTER
+
+![](https://farm4.staticflickr.com/3898/15118442190_604b71d9af.jpg)
+
+输入一个数值修改下面的任何值或ENTER前进
+
+![](https://farm4.staticflickr.com/3898/15118442180_428de59d68_z.jpg)
+
+然后checkinstall将自动地创建一个.rpm或者.deb包,根据你的linux系统是什么:
+
+在CentOS7:
+
+![](https://farm4.staticflickr.com/3921/15282103066_5d688b2217_z.jpg)
+
+在Debian 7:
+
+![](https://farm4.staticflickr.com/3905/15118383009_4909a7c17b_z.jpg)
+
+--------------------------------------------------------------------------------
+
+via: http://ask.xmodulo.com/build-rpm-deb-package-source-checkinstall.html
+
+译者:[luoyutiantang](https://github.com/译者ID)
+校对:[校对者ID](https://github.com/校对者ID)
+
+本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
+
+[1]:http://checkinstall.izto.org/docs/README
+[2]:http://rpm.pbone.net/
+[3]:http://ask.xmodulo.com/install-htop-centos-rhel.html
diff --git a/sources/tech/20140911 20 Useful Commands of 'Sysstat' Utilities (mpstat, pidstat, iostat and sar) for Linux Performance Monitoring.md b/translated/tech/[翻译完成]20 Useful Commands of ‘Sysstat’ Utilities (mpstat, pidstat, iostat and sar) for Linux Performance Monitoring.md
similarity index 71%
rename from sources/tech/20140911 20 Useful Commands of 'Sysstat' Utilities (mpstat, pidstat, iostat and sar) for Linux Performance Monitoring.md
rename to translated/tech/[翻译完成]20 Useful Commands of ‘Sysstat’ Utilities (mpstat, pidstat, iostat and sar) for Linux Performance Monitoring.md
index 244ab29ddf..2b4ec54a39 100644
--- a/sources/tech/20140911 20 Useful Commands of 'Sysstat' Utilities (mpstat, pidstat, iostat and sar) for Linux Performance Monitoring.md
+++ b/translated/tech/[翻译完成]20 Useful Commands of ‘Sysstat’ Utilities (mpstat, pidstat, iostat and sar) for Linux Performance Monitoring.md
@@ -1,19 +1,18 @@
-20 Useful Commands of ‘Sysstat’ Utilities (mpstat, pidstat, iostat and sar) for Linux Performance Monitoring
-================================================================================
-In our last article, we have learned about installing and upgrading the **sysstat** package and understanding briefly about the utilities which comes with the package.
+‘Sysstat’工具包中20个实用的Linux性能监控工具(包括mpstat, pidstat, iostat 和sar)
+===============================================================
+在我们上一篇文章中,我们已经学习了如何去安装和更新**sysstat**,并且了解了包中的一些实用工具。
-注:此文一并附上,在同一个原文更新中
+注:此文一并附上,在同一个原文中更新
- [Sysstat – Performance and Usage Activity Monitoring Tool For Linux][1]
![20 Sysstat Commands for Linux Monitoring](http://www.tecmint.com/wp-content/uploads/2014/09/sysstat-commands.png)
-20 Sysstat Commands for Linux Monitoring
+Linux系统监控的20个Sysstat命令
+今天,我们将会通过一些有趣的实例来学习**mpstat**, **pidstat**, **iostat**和**sar**等工具,这些工具可以帮组我们找出系统中的问题。这些工具都包含了不同的选项,这意味着你可以根据不同的工作使用不同的选项,或者根据你的需求来自定义脚本。我们都知道,系统管理员都会有点懒,他们经常去寻找一些更简单的方法来完成他们的工作。
-Today, we are going to work with some interesting practical examples of **mpstat, pidstat, iostat** and **sar** utilities, which can help us to identify the issues. We have different options to use these utilities, I mean you can fire the commands manually with different options for different kind of work or you can create your customized scripts according to your requirements. You know Sysadmins are always bit Lazy, and always tried to find out the easy way to do the things with minimum efforts.
+### mpstat - 处理器统计信息 ###
-### mpstat – Processors Statistics ###
-
-1.Using mpstat command without any option, will display the Global Average Activities by All CPUs.
+1.不带任何参数的使用mpstat命令将会输出所有CPU的平均统计信息
tecmint@tecmint ~ $ mpstat
@@ -22,7 +21,7 @@ Today, we are going to work with some interesting practical examples of **mpstat
12:23:57 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
12:23:57 IST all 37.35 0.01 4.72 2.96 0.00 0.07 0.00 0.00 0.00 54.88
-2.Using mpstat with option ‘**-P**‘ (Indicate Processor Number) and ‘ALL’, will display statistics about all CPUs one by one starting from 0. 0 will the first one.
+2.使用‘**-p**’(处理器编码)和‘ALL’参数将会从0开始独立的输出每个CPU的统计信息,0表示第一个cpu。
tecmint@tecmint ~ $ mpstat -P ALL
@@ -33,7 +32,7 @@ Today, we are going to work with some interesting practical examples of **mpstat
12:29:26 IST 0 37.90 0.01 4.96 2.62 0.00 0.03 0.00 0.00 0.00 54.48
12:29:26 IST 1 36.75 0.01 4.19 2.54 0.00 0.11 0.00 0.00 0.00 56.40
-3.To display the statistics for **N** number of iterations after n seconds interval with average of each cpu use the following command.
+3.要进行‘**N**’次,平均每次间隔n秒的输出CPU统计信息,如下所示。
tecmint@tecmint ~ $ mpstat -P ALL 2 5
@@ -54,11 +53,13 @@ Today, we are going to work with some interesting practical examples of **mpstat
12:36:27 IST 0 34.34 0.00 4.04 0.00 0.00 0.00 0.00 0.00 0.00 61.62
12:36:27 IST 1 32.82 0.00 6.15 0.51 0.00 0.00 0.00 0.00 0.00 60.51
-4.The option ‘**I**‘ will print total number of interrupt statistics about per processor.
+(LCTT译注: 上面命令中‘2’ 表示每2秒执行一次‘mpstat -P ALL’命令, ‘5’表示共执行5次)
+
+4.使用‘**I**’参数将会输出每个处理器的中断统计信息
tecmint@tecmint ~ $ mpstat -I
- Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
12:39:56 IST CPU intr/s
12:39:56 IST all 651.04
@@ -71,11 +72,11 @@ Today, we are going to work with some interesting practical examples of **mpstat
12:39:56 IST 0 0.00 116.49 0.05 0.27 7.33 0.00 1.22 10.44 0.13 37.47
12:39:56 IST 1 0.00 111.65 0.05 0.41 7.07 0.00 56.36 9.97 0.13 41.38
-5.Get all the above information in one command i.e. equivalent to “**-u -I ALL -p ALL**“.
+5.使用‘**A**’参数将会输出上面提到的所有信息,等同于‘**-u -I All -p ALL**’。
tecmint@tecmint ~ $ mpstat -A
- Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
12:41:39 IST CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
12:41:39 IST all 38.70 0.01 4.47 2.01 0.00 0.06 0.00 0.00 0.00 54.76
@@ -95,19 +96,19 @@ Today, we are going to work with some interesting practical examples of **mpstat
12:41:39 IST 0 0.00 116.96 0.05 0.26 7.12 0.00 1.24 10.42 0.12 36.99
12:41:39 IST 1 0.00 112.25 0.05 0.40 6.88 0.00 55.05 9.93 0.13 41.20
-### pidstat – Process and Kernel Threads Statistics ###
+###pidstat - 进程和内核线程的统计信息###
-This is used for process monitoring and current threads, which are being managed by kernel. pidstat can also check the status about child processes and threads.
+该命令是用于监控进程和当前受内核管理的线程。pidstat还可以检查子进程和线程的状态。
-#### Syntax ####
+#### 语法 ####
# pidstat [INTERVAL] [COUNT]
-6.Using pidstat command without any argument, will display all active tasks.
+6.不带任何参数使用pidstat将会输出所有活跃的任务。
- tecmint@tecmint ~ $ pidstat
+ tecmint@tecmint ~ $ pidstat
- Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
12:47:24 IST UID PID %usr %system %guest %CPU CPU Command
12:47:24 IST 0 1 0.01 0.12 0.00 0.13 1 init
@@ -125,11 +126,11 @@ This is used for process monitoring and current threads, which are being managed
12:47:24 IST 0 365 0.01 0.00 0.00 0.01 0 systemd-udevd
12:47:24 IST 0 476 0.00 0.00 0.00 0.00 0 kworker/u9:1
-7.To print all active and non-active tasks use the option ‘**-p**‘ (processes).
+7.使用‘**-p**’(进程)参数输出所有活跃和非活跃的任务。
tecmint@tecmint ~ $ pidstat -p ALL
- Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
12:51:55 IST UID PID %usr %system %guest %CPU CPU Command
12:51:55 IST 0 1 0.01 0.11 0.00 0.12 1 init
@@ -150,11 +151,11 @@ This is used for process monitoring and current threads, which are being managed
12:51:55 IST 0 19 0.00 0.00 0.00 0.00 0 writeback
12:51:55 IST 0 20 0.00 0.00 0.00 0.00 1 kintegrityd
-8.Using pidstat command with ‘**-d 2**‘ option, we can get I/O statistics and 2 is interval in seconds to get refreshed statistics. This option can be handy in situation, where your system is undergoing heavy I/O and you want to get clues about the processes consuming high resources.
+8.使用‘**-d 2**’参数,我们可以看到I/O统计信息,2表示以秒为单位对统计信息进行刷新。这个参数可以方便的知道当系统在进行繁重的I/O时,那些进行占用大量的资源。
tecmint@tecmint ~ $ pidstat -d 2
- Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
03:26:53 EDT PID kB_rd/s kB_wr/s kB_ccwr/s Command
@@ -168,11 +169,12 @@ This is used for process monitoring and current threads, which are being managed
03:27:03 EDT 25100 0.00 6.00 0.00 sendmail
03:27:03 EDT 30829 0.00 6.00 0.00 java
-9.To know the cpu statistics along with all threads about the process id **4164** at interval of **2** sec for **3** times use the following command with option ‘-t‘ (display statistics of selected process).
+9.想要每间隔**2**秒对进程**4164**的cpu统计信息输出**3**次,则使用如下带参数‘**-t**’(输出某个选定进程的统计信息)的命令。
+
tecmint@tecmint ~ $ pidstat -t -p 4164 2 3
- Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
01:09:06 IST UID TGID TID %usr %system %guest %CPU CPU Command
01:09:08 IST 1000 4164 - 22.00 1.00 0.00 23.00 1 firefox
@@ -185,11 +187,11 @@ This is used for process monitoring and current threads, which are being managed
01:09:08 IST 1000 - 4176 0.00 0.00 0.00 0.00 1 |__gdbus
01:09:08 IST 1000 - 4177 0.00 0.00 0.00 0.00 1 |__gmain
-10.Use the ‘**-rh**‘ option, to know the about memory utilization of processes which are frequently varying their utilization in **2** second interval.
+10.使用‘**-rh**’参数,将会输出进程的内存使用情况。如下命令每隔2秒刷新经常的内存使用情况。
tecmint@tecmint ~ $ pidstat -rh 2 3
- Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
# Time UID PID minflt/s majflt/s VSZ RSS %MEM Command
1409816695 1000 3958 3378.22 0.00 707420 215972 5.32 cinnamon
@@ -208,21 +210,21 @@ This is used for process monitoring and current threads, which are being managed
1409816699 1000 4164 599.00 0.00 1261944 476664 11.74 firefox
1409816699 1000 6676 168.00 0.00 4436 1020 0.03 pidstat
-11.To print all the process of containing string “**VB**“, use ‘**-t**‘ option to see threads as well.
+11.要使用‘**-G**’参数可以输出包含某个特定字符串的进程信息。如下命令输出所有包含‘**VB**’字符串的进程的统计信息,使用‘**-t**’参数将线程的信息也进行输出。
tecmint@tecmint ~ $ pidstat -G VB
- Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
- 01:09:06 IST UID PID %usr %system %guest %CPU CPU Command
- 01:09:08 IST 1000 1492 22.00 1.00 0.00 23.00 1 VBoxService
- 01:09:08 IST 1000 1902 4164 20.00 0.50 0.00 20.50 VBoxClient
- 01:09:08 IST 1000 1922 4171 0.00 0.00 0.00 0.00 VBoxClient
+ 01:09:06 IST UID PID %usr %system %guest %CPU CPU Command
+ 01:09:08 IST 1000 1492 22.00 1.00 0.00 23.00 1 VBoxService
+ 01:09:08 IST 1000 1902 4164 20.00 0.50 0.00 20.50 VBoxClient
+ 01:09:08 IST 1000 1922 4171 0.00 0.00 0.00 0.00 VBoxClient
----------
tecmint@tecmint ~ $ pidstat -t -G VB
- Linux 2.6.32-431.el6.i686 (tecmint) 09/04/2014 _i686_ (2 CPU)
+ Linux 2.6.32-431.el6.i686 (tecmint) 09/04/2014 _i686_ (2 CPU)
03:19:52 PM UID TGID TID %usr %system %guest %CPU CPU Command
03:19:52 PM 0 1479 - 0.01 0.12 0.00 0.13 1 VBoxService
@@ -237,32 +239,32 @@ This is used for process monitoring and current threads, which are being managed
03:19:52 PM 0 1933 - 0.04 0.89 0.00 0.93 0 VBoxClient
03:19:52 PM 0 - 1936 0.04 0.89 0.00 0.93 1 |__X11-NOTIFY
-12.To get realtime priority and scheduling information use option ‘**-R**‘ .
+12.使用‘**-R**’参数输出实时的进程优先级和调度信息。
tecmint@tecmint ~ $ pidstat -R
- Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
- 01:09:06 IST UID PID prio policy Command
- 01:09:08 IST 1000 3 99 FIFO migration/0
- 01:09:08 IST 1000 5 99 FIFO migration/0
- 01:09:08 IST 1000 6 99 FIFO watchdog/0
+ 01:09:06 IST UID PID prio policy Command
+ 01:09:08 IST 1000 3 99 FIFO migration/0
+ 01:09:08 IST 1000 5 99 FIFO migration/0
+ 01:09:08 IST 1000 6 99 FIFO watchdog/0
-Here, I am not going to cover about Iostat utility, as we are already covered it. Please have a look on “[Linux Performance Monitoring with Vmstat and Iostat][2]注:此文也一并附上在同一个原文更新中” to get all details about iostat.
+因为我们已经学习过Iostat命令了,因此在本文中不在对其进行赘述。若想查看Iostat命令的详细信息,请参看“[使用Iostat和Vmstat进行Linux性能监控][2]注:此文也一并附上在同一个原文更新中”
-### sar – System Activity Reporter ###
+###sar - 系统活动报告###
-Using “**sar**” command, we can get the reports about whole system’s performance. This can help us to locate the system bottleneck and provide the help to find out the solutions to these annoying performance issues.
+我们可以使用‘**sar**’命令来获得整个系统性能的报告。这有助于我们定位系统性能的瓶颈,并且有助于我们找出这些烦人的性能问题的解决方法。
-The Linux Kernel maintains some counter internally, which keeps track of all requests, their completion time and I/O block counts etc. From all these information, sar calculates rates and ratio of these request to find out about bottleneck areas.
+Linux内核维护者一些内部计数器,这些计数器包含了所有的请求及其完成时间和I/O块数等信息,sar命令从所有的这些信息中计算出请求的利用率和比例,以便找出瓶颈所在。
-The main thing about the sar is that, it reports all activities over a period if time. So, make sure that sar collect data on appropriate time (not on Lunch time or on weekend.:)
+sar命令主要的用途是生成某段时间内所有活动的报告,因此,必需确保sar命令在适当的时间进行数据采集(而不是在午餐时间或者周末。)
-13.Following is a basic command to invoke sar. It will create one file named “**sarfile**” in your current directory. The options ‘**-u**‘ is for CPU details and will collect **5** reports at an interval of **2** seconds.
+13.下面是执行sar命令的基本用法。它将会在当前目录下创建一个名为‘**sarfile**’的文件。‘**-u**’参数表示CPU详细信息,**5**表示生产5次报告,**2**表示每次报告的时间间隔为2秒。
tecmint@tecmint ~ $ sar -u -o sarfile 2 5
- Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
01:42:28 IST CPU %user %nice %system %iowait %steal %idle
01:42:30 IST all 36.52 0.00 3.02 0.00 0.00 60.45
@@ -272,26 +274,26 @@ The main thing about the sar is that, it reports all activities over a period if
01:42:38 IST all 50.75 0.00 3.75 0.00 0.00 45.50
Average: all 46.30 0.00 3.93 0.00 0.00 49.77
-14.In the above example, we have invoked sar interactively. We also have an option to invoke it non-interactively via cron using scripts **/usr/local/lib/sa1** and **/usr/local/lib/sa2** (If you have used **/usr/local** as prefix during installation time).
+14.在上面的例子中,我们交互的执行sar命令。sar命令提供了使用cron进行非交互的执行sar命令的方法,使用**/usr/local/lib/sa1**和**/usr/local/lib/sa2**脚本(如果你在安装时使用了**/usr/local**作为前缀)
-- **/usr/local/lib/sa1** is a shell script that we can use for scheduling cron which will create daily binary log file.
-- **/usr/local/lib/sa2** is a shell script will change binary log file to human-readable form.
+- **/usr/local/lib/sa1**是一个可以使用cron进行调度生成二进制日志文件的shell脚本。
+- **/usr/local/lib/sa2**是一个可以将二进制日志文件转换为用户可读的编码方式。
-Use the following Cron entries for making this non-interactive:
+使用如下Cron项目来将sar命令非交互化。
- # Run sa1 shell script every 10 minutes for collecting data
+ # 每10分钟运行sa1脚本来采集数据
*/2 * * * * /usr/local/lib/sa/sa1 2 10
- # Generate a daily report in human readable format at 23:53
+ #在每天23:53时生成一个用户可读的日常报告
53 23 * * * /usr/local/lib/sa/sa2 -A
-At the back-end sa1 script will call **sadc** (System Activity Data Collector) utility for fetching the data at a particular interval. **sa2** will call sar for changing binary log file to human readable form.
+在sa1脚本执行后期,sa1脚本会调用**sabc**(系统活动数据收集器,System Activity Data Collector)工具采集特定时间间隔内的数据。**sa2**脚本会调用sar来将二进制日志文件转换为用户可读的形式。
-15.Check run queue length, total number of processes and load average using ‘**-q**‘ option.
+15.使用‘**-q**’参数来检查运行队列的长度,所有进程的数量和平均负载
tecmint@tecmint ~ $ sar -q 2 5
- Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
02:00:44 IST runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
02:00:46 IST 1 431 1.67 1.22 0.97 0
@@ -301,11 +303,11 @@ At the back-end sa1 script will call **sadc** (System Activity Data Collector) u
02:00:54 IST 0 431 1.64 1.23 0.97 0
Average: 2 431 1.68 1.23 0.97 0
-16.Check statistics about the mounted file systems using ‘**-F**‘.
-
+16.使用‘**-F**’参数查看当前挂载的文件系统统计信息
+
tecmint@tecmint ~ $ sar -F 2 4
- Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
02:02:31 IST MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
02:02:33 IST 1001 449 30.95 1213790475088.85 18919505 364463 1.89 /dev/sda1
@@ -322,11 +324,11 @@ At the back-end sa1 script will call **sadc** (System Activity Data Collector) u
Summary MBfsfree MBfsused %fsused %ufsused Ifree Iused %Iused FILESYSTEM
Summary 1001 449 30.95 1213790475088.86 18919505 364463 1.89 /dev/sda1
-17.View network statistics using ‘**-n DEV**‘.
+17.使用‘**-n DEV**’参数查看网络统计信息
tecmint@tecmint ~ $ sar -n DEV 1 3 | egrep -v lo
- Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
02:11:59 IST IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
02:12:00 IST wlan0 8.00 10.00 1.23 0.92 0.00 0.00 0.00
@@ -334,11 +336,11 @@ At the back-end sa1 script will call **sadc** (System Activity Data Collector) u
02:12:00 IST eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
02:12:00 IST vmnet1 0.00 0.00 0.00 0.00 0.00 0.00 0.00
-18.View block device statistics like iostat using ‘**-d**‘.
+18.使用‘**-d**’参数查看块设备统计信息(与iostat类似)。
tecmint@tecmint ~ $ sar -d 1 3
- Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
02:13:17 IST DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
02:13:18 IST dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
@@ -349,11 +351,11 @@ At the back-end sa1 script will call **sadc** (System Activity Data Collector) u
02:13:19 IST DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
02:13:20 IST dev8-0 7.00 32.00 80.00 16.00 0.11 15.43 15.43 10.80
-19.To print memory statistics use ‘**-r**‘ option.
+19.使用‘**-r**’参数输出内存统计信息。
tecmint@tecmint ~ $ sar -r 1 3
- Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
+ Linux 3.11.0-23-generic (tecmint.com) Thursday 04 September 2014 _i686_ (2 CPU)
02:14:29 IST kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
02:14:30 IST 1465660 2594840 63.90 133052 1549644 3710800 45.35 1133148 1359792 392
@@ -361,7 +363,7 @@ At the back-end sa1 script will call **sadc** (System Activity Data Collector) u
02:14:32 IST 1469112 2591388 63.82 133060 1550036 3705288 45.28 1130252 1360168 804
Average: 1469165 2591335 63.82 133057 1549824 3710531 45.34 1129739 1359987 677
-20.Using ‘**sadf -d**‘, we can extract data in format which can be processed using databases.
+20.使用‘**sadf -d**’参数可以将数据导出为数据库可以使用的格式。
tecmint@tecmint ~ $ safd -d /var/log/sa/sa20140903 -- -n DEV | grep -v lo
@@ -381,24 +383,24 @@ At the back-end sa1 script will call **sadc** (System Activity Data Collector) u
tecmint;2;2014-09-03 12:00:10 UTC;eth0;0.50;0.50;0.03;0.04;0.00;0.00;0.00;0.00
tecmint;2;2014-09-03 12:00:12 UTC;eth0;1.00;0.50;0.12;0.04;0.00;0.00;0.00;0.00
-You can also save this to a csv and then can draw chart for presentation kind of stuff as below.
+你也可以将这些数据存储在一个csv文档中,然后绘制成图表展示方式,如下所示
![Network Graph](http://www.tecmint.com/wp-content/uploads/2014/09/sar-graph.png)
-Network Graph
+网络信息图表
-That’s it for now, you can refer man pages for more information about each option and don’t forget to tell about article with your valuable comments.
+现在,你可以参考man手册来后去每个参数的更多详细信息,并且请在文章下留下你宝贵的评论。
--------------------------------------------------------------------------------
via: http://www.tecmint.com/sysstat-commands-to-monitor-linux/
作者:[Kuldeep Sharma][a]
-译者:[译者ID](https://github.com/译者ID)
+译者:[cvsher](https://github.com/cvsher)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
[a]:http://www.tecmint.com/author/kuldeepsharma47/
[1]:http://www.tecmint.com/install-sysstat-in-linux/
-[2]:http://www.tecmint.com/linux-performance-monitoring-with-vmstat-and-iostat-commands/
\ No newline at end of file
+[2]:http://www.tecmint.com/linux-performance-monitoring-with-vmstat-and-iostat-commands/