2014年6月

一般来说,服务器非常慢可能原因是多方面的,有可能是配置错误,脚本错误或者是一些奇诡的硬件。当然也有可能是有人对你的服务器进行 Dos (拒绝服务攻击)或者 DDOS (分布式拒绝服务攻击)。

Dos攻击或者DDos攻击目的是使服务器或者网络资源耗尽,使其他用户无法使用。一般来说,这种攻击主要针对重要的网站或服务,比如银行、信用卡支付网关甚至是根域名服务器。Dos攻击主要通过强制目标主机重启或大量消耗其主机资源,使得目标主机无法提供服务或者妨害主机和用户之间的通信的手段,使得主机无法提供正常的服务的。

在本文中你将知道如何在终端中使用netstat命令判断服务器是否遭受Dos攻击。

netstat命令的用户手册描述其作用是用来显示网络连接、路由表、接口统计、伪连接和组播成员的。

一些例子和解释

netstat -na

该命令将显示所有活动的网络连接。

netstat -an | grep :80 | sort

显示所有80端口的网络连接并排序。这里的80端口是http端口,所以可以用来监控web服务。如果看到同一个IP有大量连接的话就可以判定单点流量攻击了。

netstat -n -p|grep SYN_REC | wc -l

这个命令可以查找出当前服务器有多少个活动的 SYNC\_REC 连接。正常来说这个值很小,最好小于5。 当有Dos攻击或者邮件炸弹的时候,这个值相当的高。尽管如此,这个值和系统有很大关系,有的服务器值就很高,也是正常现象。

netstat -n -p | grep SYN_REC | sort -u

列出所有连接过的IP地址。

netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'

列出所有发送SYN\_REC连接节点的IP地址。

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

使用netstat命令计算每个主机连接到本机的连接数。

netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

列出所有连接到本机的UDP或者TCP连接的IP数量。

netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

检查 ESTABLISHED 连接并且列出每个IP地址的连接数量。

netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1

列出所有连接到本机80端口的IP地址和其连接数。80端口一般是用来处理HTTP网页请求。

如何减少DOS攻击

一旦你获得攻击服务器的IP地址你就可以使用以下命令拒绝此IP的所有连接。

iptables -A INPUT 1 -s $IPADRESS -j DROP/REJECT

注意,你需要将 $IPADRESS 替换成需要拒绝连接的IP地址。

执行完以上命令后,使用以下命令结束所有的httpd连接以清理系统。

killall -KILL httpd

然后执行以下命令重启httpd服务。

service httpd start           #RedHat 系统 
/etc/init/d/apache2 restart   #Debian 系统

via: http://linuxaria.com/howto/how-to-verify-ddos-attack-with-netstat-command-on-linux-terminal

译者:shipsw 校对:wxy

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

如果你的公司依赖像OpenSSL这样的开源软件,是时候主动点了。

心脏流血漏洞让开源社区如芒在背。

ComputerWorld的Richi Jennings 抨击说“又一个非常可怕的开源失败。”(他是要做标题党么?)ZDNet的Steven J. Vaughan-Nichols不像是作秀反开源,却仍旧将心脏流血漏洞渲染为“开源软件的最遭时刻”。而最后,ZDNet的Chris Duckett则务实地倡议:“商业公司(应该)筹集资金来避免心脏流血再次发生。”

而实际上,企业资金并不是解决心脏流血事件的最终答案 。你才是!

想要避免开源失败的公司应该不仅仅是开源软件的用户,还要是贡献者。

贡献者乘坐头等舱

贡献者能够引导特定的项目。他们占据主动,而不是被动接受。大多数企业缺乏资源参与他们所使用的所有开源项目,但每家公司都可以资助给那些真正关系到他们的项目。并且资助得越多,得到的好处越大。

开源就是一个不断给予的礼物,尤其是给予那些对开源反哺的人们。

我在MongoDB的同事Adam Comerford让这点更有说服力:如果你看看第一批得知Heartbleed漏洞的时间线,那些第一批得知的(如谷歌)有一个相当大的优势。如Comford所说的,这些公司有一个显著的优势就是他们可以在bug还未大规模传开的时候率先采取措施保护他们的系统。

鉴于早期了解像Heartbleed之类问题的优势,Comerford问:“我如何确保我在这类问题的早期通知列表里面?”

如果你依赖于专有软件,你有一个答案:向卖方支付大量的金钱,并希望他适时地响应。但是,如果你正在使用开源软件,有一个更多选择: “要么有大量的员工给[开源项目]做贡献 ,或者...有认识主要贡献者的员工(我们可以找找,他们大多也会贡献其他开源软件项目,像其他的极客和呆瓜一样。“

Comerford断言说,好处不止这样:

这有很多好处 - 除了让问题及早通知,让手头上的专家来应付这些棘手的更新,以评估你的风险,甚至可能在公众知道之前内部解决问题。在确定项目的方向上你还可以得到重视的回馈,可以影响到关键特性的优先级。最终,你会得到社区的善意,使产品变得更好,并有可能成为其它的聪明贡献者的工作目标。

换句话说,参与进来。成员有特权,主要的特权可能就是信息。

选择在哪贡献

同样,没有一家公司有足够的资源来有效地促进所有它所使用的项目,这就是为什么Comerford建议对关键项目上这么做的原因:

如果你要人们列出在企业中所有开源关键技术,你可能会得到一张很长的名单。然后,告诉他们,他们将必须清点人工和预算来支持清单上的每一种技术的话(并验证它) - 它可能会迅速缩水。

如果你是一个AMD那样的芯片公司,给Linux内核贡献基本驱动程序和其他代码很可能是强制性的。给LibreOffice贡献可能不是。或者,如果你判断你的未来在Hadoop上进行深层数据分析,你应该贡献Hadoop,即使你依旧免费使用OpenSSL社区的成果。比如Dish Networks公司,它的 CIO告诉上周在开放商业会上的人们,他们正在将重要的数据从关系型数据库转到Apache的Kafka,那他最好研究Kafka的代码,即使他不贡献给Apache HTTP服务器项目。

每家公司都有其优先级,以及这些优先级应该以严肃的承诺而确立。

这是确保这些项目安全的一部分办法。而另一部分,它是一种形成影响力指引的方式。但同时,红帽公司CEOJim Whitehurst早在2008年声明,它是显著减少IT花费的办法:

今天编写的绝大多数软件是企业编写的,不得转售。并且绝大多数是从来没有真正使用过。IT软件开发中的浪费是巨大的....最终,开源给全世界的客户提供价值,我们不仅需要让我们的客户作为开源产品的用户,而且真正加入开源和参与在开发社区。

Comerford坚持认为:“如果我在业务中使用开源软件,我应该雇开发人员来积极给软件做贡献,如果他们自己不是核心开发者,那就雇佣核心开发者。 ”这是充分利用开源软件的关键:给它做贡献,不只是使用它。


via: http://readwrite.com/2014/05/14/heartbleed-open-source-contribution-users

译者:geekpi 校对:wxy

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

在基于密码的认证在网络盛行的今天,你可能需要或者已经使用了某种密码管理工具来跟踪管理你正在使用的所有密码。有各种各样的在线或离线服务或者软件工具用于完成此类事情,而这些工具因复杂程度、用户界面或者目标环境(如企业或终端用户)的不同而各不相同。例如,有一些是为终端用户开发基于图形化的密码管理器,如KeePass(X)

对于那些不想要依赖图形化进行密码管理的用户,笔者将会讲述如何在命令行下使用 pass来管理密码,这是一个简单的用于命令行管理密码的工具

该密码工具实际上是一个shell脚本编写的前端,其中调用了几个其它工具(如gpg,pwgen,git,xsel)来使用OpenGPG管理用户的密码信息。各个密码使用gpg工具进行加密,并存储到本地密码仓库中。密码信息可以通过终端或者自清除的剪贴板工具使用。

该密码工具相当灵活,并且使用起来及其简单。你可以将每个密码信息存储到一个OpenGPG保护的普通文本文件,并且将不同的密码文件分组多个类目中。它支持bash自动补全特性,因此可以很方便地使用TAB键来补全命令或者很长的密码名称。

在Linux上安装pass

在Debian,Ubuntu或者Linux Mint上安装pass:

$ sudo apt-get install pass
$ echo "source /etc/bash_completion.d/password-store" >> ~/.bashrc

在Fedora上安装pass:

$ sudo yum install pass
$ echo "source /etc/bash_completion.d/password-store" >> ~/.bashrc

在CentOS上安装pass,首先启用EPEL仓库,然后执行以下命令:

$ sudo yum install pass
$ echo "source /etc/bash_completion.d/password-store" >> ~/.bashrc

在Archlinux上安装pass:

$ sudo pac -S pass
$ echo "source /etc/bash_completion.d/password-store" >> ~/.bashrc

初始化本地密码仓库

在使用密码工具之前,你需要执行一次初始化步骤,该步骤包括创建一个GPG密钥对(如果你还没有)以及一个本地密码仓库。

首先,通过以下步骤创建一个GPG密钥对(即:公钥/私钥)。如果已经创建了自己的GPG密钥对,可以跳过此步骤。

$ gpg --gen-key 

执行该步骤,会询问你如下问题。如果你不确定,可以选择接受默认回答。作为密钥生成部分,你将要为你的密钥创建一个加密口令,这个口令实际上是你访问存储在本地密码仓库中的任何密码信息时的主密码。成功创建密钥对后,创建的密钥对会存储在~/.gnupg目录中。

接下来,运行以下命令来初始化本地密码仓库。下面的,输入之前创建密钥对时的关联电子邮件地址。

$ pass init <gpg-id> 

该命令会在~/.password-store目录中创建一个密码仓库。

在终端使用pass管理密码

插入新密码信息

要将新的密码信息插入到本地密码仓库中,请遵循以下命令格式:

$ pass insert <password-name> 

是你定义的专有名称,并且可以分级(如 "finance/tdbank", "online/gmail.com")。在这种情况下,密码信息可以存储到~/.password-store目录下对应的子目录中。

如果你想要分多行插入密码信息,请像以下命令一样使用"-m"选项。以你自己喜欢的任何格式来输入密码信息,然后按Ctrl+D来结束。

$ pass insert <password-name> -m 

查看所有密码名称列表

要查看所有存储的密码名称列表,只需输入"pass"命令:

$ pass 

从密码仓库中取回密码信息

要访问特定密码列表中的内容,只需使用以下命令:

$ pass <password-name> 

例如:

$ pass email/gmail.com 

会要求你输入密码口令来解锁密钥。

如果你想要将密码复制到剪贴板,而不是显示到终端屏幕上,使用以下命令:

$ pass -c email/gmail.com 

当密码被复制到剪贴板,剪贴板在45秒后会被自动清空。

在密码仓库中生成并存储新密码

使用pass命令,你也可以生成一个新的随机密码,该密码可用于任何目的。pass工具将会使用pwgen工具来生成一个好的随机密码。你可以指定密码的长度,或者生成带或不带符号的密码。

例如,要生成一个具有10个字符不带符号的密码,并将它存储到 "email/new\_service.com"列表中:

$ pass generate email/new_service.com 10 -n 

移除密码信息

要移除现存的密码信息是很容易的:

$ pass rm email/gmail.com 

小结一下,pass是及其灵活,便于携带,并且更为重要的是,易于使用。对于正在寻找能简单而行之有效地、安全地、并且不依赖图形化管理任何私人信息的工具的人,笔者强烈推荐pass。


via: http://xmodulo.com/2014/05/manage-passwords-command-line-linux.html

译者:GOLinux 校对:wxy

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

对于一个 Linux 系统管理员来说确保自己管理的系统处于一个良好的状态是其首要责任。Linux 系统管理员可以找到有很多工具来帮助自己监控和显示系统中的进程,例如 top 和 htop ,但是这些工具都不能与 collectl 相媲美。

Collectl: Linux Performance Monitoring

collectl是一款非常优秀并且有着丰富的命令行功能的实用程序,你可以用它来采集描述当前系统状态的性能数据。不同于大多数其它的系统监控工具,collectl 并非仅局限于有限的系统度量,相反,它可以收集许多不同类型系统资源的相关信息,如 cpu 、disk、memory 、network 、sockets 、 tcp 、inodes 、infiniband 、 lustre 、memory、nfs、processes、quadrics、slabs和buddyinfo等。

使用 collectl 的另一个好处就是它可以替代那些特定用途的工具如: top、ps、iotop 等等其它工具。那么 collectl 有什么特性而使其成为一个有用的工具呢?

经过许多研究后,我总结了 collectl 的命令行功能的一些非常重要的特性。

Collectl 特性

  • 可以交互式地运行或作为一个守护进程,或同时二者兼备地运行。
  • 可以以多种格式显示输出。
  • 可以监控几乎所有的子系统。
  • 可以替代许多工具如 ps、top、iotop、vmstat。
  • 可以记录并回放捕获的数据。
  • 可以将数据导出成多种数据格式。(这在你想用外部工具分析数据时非常有用)
  • 可以作为一个服务来监控远程机或者整个服务器集群。
  • 可以在终端显示数据,写入数据到文件或者一个套接字。

如何在Linux上安装collectl

collectl可以在所有的 Linux 发行版上运行,唯一需要的就是 perl 语言,所以在安装 collectl 之前,一定要确保你的电脑上已经安装了Perl

对于Debian/Ubuntu/Linux Mint

下面的命令可以用来在以 Debian 为基础的设备如 Ubuntu 上安装 collectl。

$ sudo apt-get install collectl

对于RHEL/CentOS/Fedora

如果你正在使用基于红帽的发行版,你可以用 yum 命令轻松获取它。

# yum install collectl

一些关于collectl的实例

collectl 工具安装完成之后,你可以轻松地在终端运行它,你甚至不需要指定任何选项。下面的命令将会以简短易读的格式显示cpu、硬盘和网络信息。

# collectl

waiting for 1 second sample...
#
#cpu sys inter  ctxsw KBRead  Reads KBWrit Writes   KBIn  PktIn  KBOut  PktOut 
  13   5   790   1322      0      0     92      7      4     13      0       5 
  10   2   719   1186      0      0      0      0      3      9      0       4 
  12   0   753   1188      0      0     52      3      2      5      0       6 
  13   2   733   1063      0      0      0      0      1      1      0       1 
  25   2   834   1375      0      0      0      0      1      1      0       1 
  28   2   870   1424      0      0     36      7      1      1      0       1 
  19   3   949   2271      0      0     44      3      1      1      0       1 
  17   2   809   1384      0      0      0      0      1      6      0       6 
  16   2   732   1348      0      0      0      0      1      1      0       1 
  22   4   993   1615      0      0     56      3      1      2      0       3

正如上面终端上所显示的,我们很容易观察该命令输出的系统度量值,因为它每次以一行显示。

不加任何参数执行 collectl 会显示下面子系统的信息

  • cpu
  • 磁盘
  • 网络

提示:在这里,一个子系统就是每一种可以测量的系统资源。

你也可以显示除slabs以外各个子系统的统计数据,这要结合下面的 -all 选项来实现。

# collectl --all

waiting for 1 second sample...
#
#cpu sys inter  ctxsw Cpu0 Cpu1 Free Buff Cach Inac Slab  Map   Fragments KBRead  Reads KBWrit Writes   KBIn  PktIn  KBOut  PktOut   IP  Tcp  Udp Icmp  Tcp  Udp  Raw Frag Handle Inodes  Reads Writes Meta Comm 
  16   3   817   1542  430  390   1G 175M   1G 683M 193M   1G nsslkjjebbk      0      0     24      3      1      1      0       1    0    0    0    0  623    0    0    0   8160 240829      0      0    0    0 
  11   1   745   1324  316  426   1G 175M   1G 683M 193M   1G nsslkjjebbk      0      0      0      0      0      3      0       2    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0 
  15   2   793   1683  371  424   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0      0      0      1      1      0       1    0    0    0    0  622    0    0    0   8160 240829      0      0    0    0 
  16   2   872   1875  427  446   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0     24      3      1      1      0       1    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0 
  24   2   842   1383  473  368   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0    168      6      1      1      0       1    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0 
  27   3   844   1099  478  365   1G 175M   1G 683M 193M   1G nsslkjjebbk      0      0      0      0      1      6      1       9    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0 
  26   5   823   1238  396  428   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0      0      0      2     11      3       9    0    0    0    0  622    0    0    0   8160 240828      0      0    0    0 
  15   1   753   1276  361  391   1G 175M   1G 683M 193M   1G ssslkjjebbk      0      0     40      3      1      2      0       3    0    0    0    0  623    0    0    0   8160 240829      0      0    0    0

但是,你如何用它来监控 cpu 的使用情况呢? ‘-s’ 选项可以用来控制哪个子系统的数据需要收集和回放。

例如下面的命令可以用来对cpu使用情况进行一个总结。

# collectl -sc

waiting for 1 second sample...
#
#cpu sys inter  ctxsw 
  15   2   749   1155 
  16   3   772   1445 
  14   2   793   1247 
  27   4   887   1292 
  24   1   796   1258 
  16   1   743   1113 
  15   1   743   1179 
  14   1   706   1078 
  15   1   764   1268

当你将这个命令与“scdn”结合时会发生什么呢?学习命令行工具最好的方式就是多加练习,所以在终端运行下面的命令看看会发生什么吧。

# collectl -scdn

waiting for 1 second sample...
#
#cpu sys inter  ctxsw KBRead  Reads KBWrit Writes   KBIn  PktIn  KBOut  PktOut 
  25   4   943   3333      0      0      0      0      1      1      0       2 
  27   3   825   2910      0      0      0      0      1      1      0       1 
  27   5   886   2531      0      0      0      0      0      0      0       1 
  20   4   872   2406      0      0      0      0      1      1      0       1 
  26   1   854   2091      0      0     20      2      1      1      0       1 
  39   4  1004   3398      0      0      0      0      2      8      3       6 
  41   6   955   2464      0      0     40      3      1      2      0       3 
  25   7   890   1609      0      0      0      0      1      1      0       1 
  16   2   814   1165      0      0    796     43      2      2      0       2 
  14   1   779   1383      0      0     48      6      1      1      0       1 
  11   2   795   1285      0      0      0      0      2     14      1      14

你可以很容易就明白默认选项是“cdn”,它代表cpu、硬盘和网络数据。运行带这个选项的 collectl 命令的输出和“collectl -scn”的输出一样。

如果你想采集内存的数据,用下面的命令。

# collectl -sm

waiting for 1 second sample...
#
#Free Buff Cach Inac Slab  Map 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G 
   1G 177M   1G 684M 193M   1G

当你想要进一步了解内存使用信息、空闲的内存或者与你系统性能有关的重要资料时,上面的输出将是非常有用的。

如果想搜集一点儿 tcp 的数据呢?使用下面的命令来实现吧。

# collectl -st

waiting for 1 second sample...
#
#  IP  Tcp  Udp Icmp 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0 
    0    0    0    0

当你熟练到一定程度时,你就可以很轻松地得到你想要的结果了。例如你可以将关于 tcp 的“t”选项和关于 cpu 的“c”选项组合到一起。下面的命令就是如此。

# collectl -stc

waiting for 1 second sample...
#
#cpu sys inter  ctxsw   IP  Tcp  Udp Icmp 
  23   8   961   3136    0    0    0    0 
  24   5   916   3662    0    0    0    0 
  21   8   848   2408    0    0    0    0 
  30  10   916   2674    0    0    0    0 
  38   3   826   1752    0    0    0    0 
  31   3   820   1408    0    0    0    0 
  15   5   781   1335    0    0    0    0 
  17   3   802   1314    0    0    0    0 
  17   3   755   1218    0    0    0    0 
  14   2   788   1321    0    0    0    0

对于我们普通大众来说记住这些选项很困难,所以在这里,我整理出了一个列表来总结这个工具支持的选项。

  • b – buddy info (内存碎片)
  • c – CPU
  • d – Disk
  • f – NFS V3 Data
  • i – Inode and File System
  • j – Interrupts
  • l – Lustre
  • m – Memory
  • n – Networks
  • s – Sockets
  • t – TCP
  • x – Interconnect
  • y – Slabs (系统对象缓存)

对于一个系统管理员或者一个 Linux 用户来说很重要的一种数据就是硬盘的使用情况。下面的命令可以帮你监控硬盘使用情况。

# collectl -sd

waiting for 1 second sample...
#
#KBRead  Reads KBWrit Writes 
      0      0      0      0 
      0      0      0      0 
      0      0     92      7 
      0      0      0      0 
      0      0     36      3 
      0      0      0      0 
      0      0      0      0 
      0      0    100      7 
      0      0      0      0

你也可以使用“-sD”选项来采集单个硬盘的数据,不过你必须知道这就不会显示全部硬盘的信息。

# collectl -sD

waiting for 1 second sample...

# DISK STATISTICS (/sec)
#           Pct
#Name       KBytes Merged  IOs Size  KBytes Merged  IOs Size  RWSize  QLen  Wait SvcTim Util
sda              0      0    0    0      52     11    2   26      26     1     8      8    1
sda              0      0    0    0       0      0    0    0       0     0     0      0    0
sda              0      0    0    0      24      0    2   12      12     0     0      0    0
sda              0      0    0    0     152      0    4   38      38     0     0      0    0
sda              0      0    0    0     192     45    3   64      64     1    20     20    5
sda              0      0    0    0     204      0    2  102     102     0     0      0    0
sda              0      0    0    0       0      0    0    0       0     0     0      0    0
sda              0      0    0    0     116     26    3   39      38     1    16     16    4
sda              0      0    0    0       0      0    0    0       0     0     0      0    0
sda              0      0    0    0       0      0    0    0       0     0     0      0    0
sda              0      0    0    0      32      5    3   11      10     1    16     16    4
sda              0      0    0    0       0      0    0    0       0     0     0      0    0

你也可以使用其它详细的子系统来采集详细的数据。下面是详细子系统的一个列表。

  • C – CPU
  • D – Disk
  • E – Environmental data (fan, power, temp), via ipmitool
  • F – NFS Data
  • J – Interrupts
  • L – Lustre OST detail OR client Filesystem detail
  • N – Networks
  • T – 65 TCP counters only available in plot format
  • X – Interconnect
  • Y – Slabs (system object caches)
  • Z – Processes

collectl 工具中有许多选项,但是仅用一篇文章来介绍肯定是介绍不过来的。然而如果将它当作 topps 工具来使用还是值得一提的。

很容易将 collectl 当作 top 来使用,只要在 Linux 系统的终端运行下面的命令你就会看到和 top 工具类似的输出。

# collectl --top

# TOP PROCESSES sorted by time (counters are /sec) 13:11:02
# PID  User     PR  PPID THRD S   VSZ   RSS CP  SysT  UsrT Pct  AccuTime  RKB  WKB MajF MinF Command
^COuch!tecmint  20     1   40 R    1G  626M  0  0.01  0.14  15  28:48.24    0    0    0  109 /usr/lib/firefox/firefox 
 3403  tecmint  20     1   40 R    1G  626M  1  0.00  0.20  20  28:48.44    0    0    0  600 /usr/lib/firefox/firefox 
 5851  tecmint  20  4666    0 R   17M   13M  0  0.02  0.06   8  00:01.28    0    0    0    0 /usr/bin/perl 
 1682  root     20  1666    2 R  211M   55M  1  0.02  0.01   3  03:10.24    0    0    0   95 /usr/bin/X 
 3454  tecmint  20  3403    8 S  216M   45M  1  0.01  0.02   3  01:23.32    0    0    0    0 /usr/lib/firefox/plugin-container 
 4658  tecmint  20  4657    3 S  207M   17M  1  0.00  0.02   2  00:08.23    0    0    0  142 gnome-terminal 
 2890  tecmint  20  2571    3 S  340M   68M  0  0.00  0.01   1  01:19.95    0    0    0    0 compiz 
 3521  tecmint  20     1   24 S  710M  148M  1  0.01  0.00   1  01:47.84    0    0    0    0 skype 
    1  root     20     0    0 S    3M    2M  0  0.00  0.00   0  00:02.57    0    0    0    0 /sbin/init 
    2  root     20     0    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 kthreadd 
    3  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.60    0    0    0    0 ksoftirqd/0 
    5  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kworker/0:0H 
    7  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kworker/u:0H 
    8  root     RT     2    0 S     0     0  0  0.00  0.00   0  00:04.42    0    0    0    0 migration/0 
    9  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 rcu_bh 
   10  root     20     2    0 R     0     0  0  0.00  0.00   0  00:02.22    0    0    0    0 rcu_sched 
   11  root     RT     2    0 S     0     0  0  0.00  0.00   0  00:00.05    0    0    0    0 watchdog/0 
   12  root     RT     2    0 S     0     0  1  0.00  0.00   0  00:00.07    0    0    0    0 watchdog/1 
   13  root     20     2    0 S     0     0  1  0.00  0.00   0  00:00.73    0    0    0    0 ksoftirqd/1 
   14  root     RT     2    0 S     0     0  1  0.00  0.00   0  00:01.96    0    0    0    0 migration/1 
   16  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 kworker/1:0H 
   17  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 cpuset

最后,当然不是说这不重要,我们在终端运行下面的命令就可以将 collectl 用作 ps 工具了。 你可以得到关于你系统进程的信息,这和在终端运行“ps”命令是一样的。

# collectl -c1 -sZ -i:1

waiting for 1 second sample...

### RECORD    1 >>> tecmint-vgn-z13gn <<< (1397979716.001) (Sun Apr 20 13:11:56 2014) ###

# PROCESS SUMMARY (counters are /sec)
# PID  User     PR  PPID THRD S   VSZ   RSS CP  SysT  UsrT Pct  AccuTime  RKB  WKB MajF MinF Command
    1  root     20     0    0 S    3M    2M  0  0.00  0.00   0  00:02.57    0    0    0    0 /sbin/init 
    2  root     20     0    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 kthreadd 
    3  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.60    0    0    0    0 ksoftirqd/0 
    5  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kworker/0:0H 
    7  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kworker/u:0H 
    8  root     RT     2    0 S     0     0  0  0.00  0.00   0  00:04.42    0    0    0    0 migration/0 
    9  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 rcu_bh 
   10  root     20     2    0 S     0     0  0  0.00  0.00   0  00:02.24    0    0    0    0 rcu_sched 
   11  root     RT     2    0 S     0     0  0  0.00  0.00   0  00:00.05    0    0    0    0 watchdog/0 
   12  root     RT     2    0 S     0     0  1  0.00  0.00   0  00:00.07    0    0    0    0 watchdog/1 
   13  root     20     2    0 S     0     0  1  0.00  0.00   0  00:00.73    0    0    0    0 ksoftirqd/1 
   14  root     RT     2    0 S     0     0  1  0.00  0.00   0  00:01.96    0    0    0    0 migration/1 
   16  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 kworker/1:0H 
   17  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 cpuset 
   18  root      0     2    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 khelper 
   19  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kdevtmpfs 
   20  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 netns 
   21  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 bdi-default 
   22  root      0     2    0 S     0     0  0  0.00  0.00   0  00:00.00    0    0    0    0 kintegrityd

我确信许多系统管理员将会喜欢这个工具并且在充分使用它后会感受到它的强大。如果你想增进你对 collectl 的了解,从而达到新的层面,你可以去参阅 collectl 的 man 手册并勤加练习。

在你的终端键入下面的命令开始阅读吧。

# man collectl

参考链接


via: http://www.tecmint.com/linux-performance-monitoring-with-collectl-tool/

译者:Linchenguang 校对:Caroline

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

当非盈利软件服务商Yorba宣称它上个月开始开发名为‘California’的桌面日历应用程序时,我们很兴奋——我们在自己的头条里面说“正当其时!”

Yorba在背后支撑着注重用户体验的电子邮件客户端软件‘Geary’以及华丽的照片管理软件‘Shotwell’,因此,我们自然有理由非常期望他们能够进军linux系统上的生产力软件主流软件。

尽管 California 尚未稳定 到可以发布到正式的发行版本,但现在可以通过该公司的日常开发的PPA安装到ubuntu系统中。

迄今取得的进展

Neeeeeyaaaaaaaawwnnn!” — 那是飞机即将降落在旧金山国际机场的一段警告声音.

是的,California 正在积极的开发中,该软件尚未完成,也没有稳定到满足每个人每天使用,但是 如果你愿意搞定一些bug的话,你可以在ubuntu 14.04上安装这款应用程序。

是否这样做取决于你的想法。

当前的构建(如,在写本文时的)提供了本地管理以及Google 日历和web日历(.ICS)的基本支持。事件可以甚至在GNOME桌面的日期/时间小程序中显示.

自然语言输入

当你第一次打开California 软件时,呈现在你面前的是当月概要,目前还没有按星期,年,议程去查看的方法,起码我没找到。你可以使用导航按钮而切换月份.

可以通过点击工具栏中的日历图标创建新的日历(如 ‘工作‘, ‘宠物照料‘)及打开/关闭它。当所有的日历都展现在主窗口时,每个日历通过不同颜色来视觉区分。

要创建新的事件,点击‘+’图标, 然后在弹出的输入框中使用自然语言输入,输入你想要提交事件的描述(译注:显然你得用英语)。例如, 输入内容“Bake Sansa Stark A Lemon Cake on Wednesday 2.45 PM”将在周三的这个时间(14:45)加入该事件。

我希望这个功能变得更加完善些。现在,尽管它能够精准定位日期,但不支持重复性事件的创建 (e.g., via “Skype chat with Sam every Tuesday at 7 AM“)也不能识别地点或人物(e.g., “Coffee with Penelope on Monday 12 PM at Boston Tea Party“)。

要修改正确些,你可以在网格视图上双击它们来完善和编辑创建好条目。这将打开一个包含附加字段、时间选择、日期格式等的窗口。

不够完善

如果说有一些缺陷,那就是在外观上(这个阶段的bugs和欠缺的功能可以被忽略)。虽然在 Adwaita 主题下看来已经很棒了,不过在 Ubuntu 默认主题下它看起来糟透了。

这不是Yorba(或GNOME)的错误,而是Ubuntu开发团队仍然没有在Compiz里面增加对GNOME新的GTK标题栏的支持,现在还在使用 Unity 来渲染窗口。

California 在ubuntu系统上完全可用,这个问题只是在发行版升级之后。 这个问题没有影响到Ubuntu GNOME或Linux Mint。

在ubuntu14.04中安装California

如果你没注意先前的提醒,我们再次重申:California 尚未稳定,正处于积极的开发中。

这个Yorba Daily PPA 也包含了最新(未稳定)的Shotwell和Geary版本。将这个PPA安装到你的系统中将能够使这些软件也更新了。

sudo add-apt-repository ppa:yorba/daily-builds
sudo apt-get update && sudo apt-get install california

另一个安全试用这个软件的方法是,直接下载来自PPA的.deb安装包:


via: http://www.omgubuntu.co.uk/2014/05/california-calendar-app-hits-yorba-daily-ppa

译者:hunanchenxingyu 校对:wxy

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

Linux中开源软件Chromium浏览器对Adobe Flash的支持即将结束,这实际上对Linux世界是件好事。

Flash,这个无处不在的网络媒体框架,很快将不能在linux的Chromium浏览器中使用了。Chromium是开源版的Google Chrome浏览器。现在我们要为Linux世界恐慌了吗?答案是根本不用。

事情是这样的:Chromium对Flash支持的传统方法是通过使用最初设计用于Netscape浏览器的一个插件实现的,不过很快这个方法将不能使用了。取而代之的是,Flash支持将通过新的叫做Pepper的API而实现,这是Google为Chrome而制作的。

对于Linux用户,问题是Pepper只能用于Chrome,而不能用于其表兄弟Chromium。虽然在技术上可以使Pepper在Chromium上使用,但需要你比一般Linux用户拥有更多的知识才能搞定。

这对Linux世界来说是个坏消息,根据一个统计数据称,有近一半的Linux用户在使用Chromium。在Linux上的其他浏览器,对Flash的支持将在Flash 11.2版本结束,现在它仍然能够良好工作,但是将来可能就不能使用了。这就是说,不久,不论Chromium还是Firefox或者他们的分支或其他的开源软件,将不能可靠地显示基于Flash的内容。

但到目前为止,很少有人对此事感到恐慌,事实上他们确实不应该恐慌。从很多方面来说,Flash对Linux不再支持实际上是件好事,因为这将有助于加速Flash的完全消失。毕竟,就如Jim Lynch在IT World上写的,苹果iOS从没有过Flash支持,但这并没有阻碍iPads或iPhones变得的极为流行。尤其是一些技术如HTML5使得在提供网络内容时不必使用Flash。

这件事情里,拒绝支持一个特定的软件包,从长远来看对于Linux社区和更大范畴的IT世界更有好处。这种情况很少见,但当发生在Flash上时,Linux不支持的确是件好事。


via: http://thevarguy.com/open-source-application-software-companies/052814/why-no-flash-support-linux-good-open-source

译者:linuhap 校对:wxy

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