分类 技术 下的文章

今天接到PM的一个要求说要查看服务器上插了几个内存条,还有几个插槽是空着的,百度了半天没找到,最后还是靠google和man手册页才搞定。

其实就一个命令就搞定了:dmidecode。

最常用的选项就是用 -t 或者 --type 来限定关键字:

bios, system, baseboard, chassis, processor, memory, cache, connector, slot

关于这些关键字可以百度是什么意思, 或者去看man手册页,这里只介绍memory的检测。

直接上我自己ubuntu测试的结果:

第一部分输出是概要信息,主要说板支持的最大内存是16GB,共有两个内存插槽。

接下了就是两个插槽的信息,由于我只插了一条8G的条,所以第二个的信息是空的

再上一张服务器的运行结果做对比:

这个服务器最大支持8*16=128G的内存,却插了8条4G的(后边7条信息都差不多,没上图),现在想扩展只能换内存条了,当时我的心情就奔溃了。

假如你经常在 Linux 桌面上运行多个网络应用,或在家中让多台电脑共享带宽;那么你可能想更好地控制带宽的使用。否则,当你使用下载器下载一个大文件时,交互式 SSH 会话可能会变得缓慢以至不可用;或者当你通过 Dropbox 来同步一个大文件夹时,你的室友可能会抱怨在她的电脑上,视频流变得断断续续。

在本教程中,我将为你描述两种在 Linux 中限制网络流量速率的不同方法。

在 Linux 中限制一个应用的速率

限制网络流量速率的一种方法是通过一个名为trickle的命令行工具。通过在程序运行时,预先加载一个速率限制 socket 库 的方法,trickle 命令允许你改变任意一个特定程序的流量。 trickle 命令有一个很好的特性是它仅在用户空间中运行,这意味着,你不必需要 root 权限就可以限制一个程序的带宽使用。要能使用 trickle 程序控制程序的带宽,这个程序就必须使用非静态链接库的套接字接口。当你想对一个不具有内置带宽控制功能的程序进行速率限制时,trickle 可以帮得上忙。

在 Ubuntu,Debian 及其衍生发行版中安装 trickle :

$ sudo apt-get install trickle

在 Fdora 或 CentOS/RHEL (带有 EPEL 软件仓库):

$ sudo yum install trickle

trickle 的基本使用方法如下。仅需简单地把 trickle 命令(及速率参数)放在你想运行的命令之前。

$ trickle -d <download-rate> -u <upload-rate>  <command> 

这就可以将 <command> 的下载和上传速率限定为特定值(单位 KBytes/s)。

例如,将你的 scp 会话的最大上传带宽设定为 100 KB/s:

 $ trickle -u 100 scp backup.tgz alice@remote_host.com:

如若你想,你可以通过创建一个自定义启动器的方式,使用下面的命令为你的 Firefox 浏览器设定最大下载速率(例如, 300 KB/s)。

trickle -d 300 firefox %u

最后, trickle 也可以以守护进程模式运行,在该模式下,它将会限制所有通过 trickle 启动且正在运行的程序的总带宽之和。 启动 trickle 使其作为一个守护进程(例如, trickled):

$ sudo trickled -d 1000

一旦 trickled 守护进程在后台运行,你便可以通过 trickle 命令来启动其他程序。假如你通过 trickle 启动一个程序,那么这个程序的最大下载速率将是 1000 KB/s, 假如你再通过 trickle 启动了另一个程序,则每个程序的(下载)速率极限将会被限制为 500 KB/s,等等。

在 Linux 中限制一个网络接口的速率

另一种控制你的带宽资源的方式是在每一个接口上限制带宽。这在你与其他人分享你的网络连接的上行带宽时尤为实用。同其他一样,Linux 有一个工具来为你做这件事。wondershaper就是干这个的。

wondershaper 实际上是一个 shell 脚本,它使用 tc 来定义流量调整命令,使用 QoS 来处理特定的网络接口。外发流量通过放在不同优先级的队列中,达到限制传出流量速率的目的;而传入流量通过丢包的方式来达到速率限制的目的。

事实上, wondershaper 的既定目标不仅仅是对一个接口增加其带宽上限;当批量下载或上传正在进行时,wondershaper 还试图去保持互动性会话如 SSH 的低延迟。同样的,它还会控制批量上传(例如, Dropbox 的同步)不会使得下载“窒息”,反之亦然。

在 Ubuntu Debian 及其衍生发行版中安装 wondershaper:

$ sudo apt-get install wondershaper

在 Fdora 或 CentOS/RHEL (带有 EPEL 软件仓库) 中安装 wondershaper:

$ sudo yum install wondershaper 

wondershaper 的基本使用如下:

 $ sudo wondershaper <interface> <download-rate> <upload-rate> 

举个例子, 将 eth0 的最大下载/上传带宽分别设定为 1000Kbit/s 和 500Kbit/s:

$ sudo wondershaper eth0 1000 500 

你也可以通过运行下面的命令将速率限制进行消除:

$ sudo wondershaper clear eth0

假如你对 wondershaper 的运行原理感兴趣,你可以阅读其 shell 脚本源文件(/sbin/wondershaper)。

总结

在本教程中,我介绍了两种不同的方法,来达到如何在 Linux 桌面环境中,控制每个应用或每个接口的带宽使用的目的。 这些工具的使用都很简单,都为用户提供了一个快速且容易的方式来调整或限制流量。 对于那些想更多地了解如何在 Linux 中进行速率控制的读者,请参考 the Linux bible.


via: http://xmodulo.com/limit-network-bandwidth-linux.html

作者:Dan Nanni 译者:FSSlc 校对:wxy

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

很多时候,通过互联网发送或接收大文件和图片是一件令人头疼的事。压缩及解压缩工具正好可以应对这个问题。下面让我们快速浏览一些可以使得我们的工作更加轻松的开源工具。

Tar

Tar 由 'Tape archiver(磁带归档器)' 衍生而来,最初被用来在磁带上归档和存储文件。Tar 是一个 GNU 软件,它可以压缩一组文件(归档),或提取它们以及对已有的归档文件进行相关操作。在存储、备份以及传输文件方面,它是很有用的。在创建归档文件时,Tar 可以保持原有文件和目录结构不变。通过 Tar 归档的文件的后缀名为 ‘.tar’。

基本用法如下:

a) 创建归档 (c / --create)

tar --create --verbose --file=archive.tar file1 file2 file3

tar cvf archive.tar file1 file2 file3

tar cvf

创建一个归档

b) 列出归档文件内容 ( t / --list)

tar --list archive.tar

tar tvf

列出归档中包含的文件

c) 提取归档 (x / --extract)

tar xvf archive.tar

tar xvf archive.tar --wildcards '*.c'    
-  从归档中提取后缀名为 *.c 的文件。

tar xvf

提取文件

tar xvf --wildcards

只提取需要的文件

d) 对归档文件进行更新 ( u / --update)

tar uvf archive.tar newfile.c     
-  假如归档的newfile.c  要比先前已经归档的新,则添加更新的 newfile.c 到归档里面.

tar uvf

更新一个归档

e) 从归档中删除文件 (--delete)

tar --delete -f archive.tar file1.c   
- 从压缩包'archive.tar' 中删除文件'file1.c' 

tar --delete

删除文件

更加具体的使用方法请参考tar 主页

Gzip / Gunzip

Gzip 即 GNU zip,它是一个被广泛用于 Linux 操作系统中的压缩应用,被其压缩的文件的后缀名为'*.gz' 。

基本用法如下:

a) 压缩文件

gzip file(s)

每个文件将被单独压缩

gzip

压缩文件

通常在压缩完成后,它会将原来的文件删除。我们可以使用 -c 选项来保留原来的文件。

gzip -c file > file.gz

gzip-c

压缩后保留原有文件

我们也可以将一组文件压缩到一个单独的文件中

cat file1 file2 file3 | gzip > archieve.gz

gz group

压缩一组文件

b) 检查压缩比

被压缩文件的压缩比可以使用 ‘-l’ 选项来进行检验。

gzip -l archieve.gz

gzip -l

检查压缩率

c) 解压文件

Gunzip 用来解压文件,在这里,原有的(压缩)文件在被解压后同样会被删除。使用 -c选项来保留原始文件。

gunzip -c archieve.gz

gunzip -c

解压文件

gzip 加上'-d'选项 和 gunzip 对压缩文件有同样的效果。

更多细节可以从 gzip 主页 得到。

Bzip2 / Bunzip2

同 gzip 一样,Bzip2 也是一个压缩工具,与其他传统的工具相比,它可以将文件压缩到更小,但其缺点为:运行速度比 gzip 慢。

基本用法如下:

a) 压缩文件

一般情况下,针对压缩而言,Bzip2 不用什么选项,将被压缩的文件被传递为它的参数。每个文件被单独压缩,且压缩文件以 'bz2' 为后缀名。

bzip2 file1 file2 file3

bzip2

文件压缩

使用 '-k' 选项可以使得在压缩或解压缩之后保留原有的文件。

bzip2 -k

在压缩后保留原有文件

b) 解压

'-d' 选项被用来解压缩。

bzip2 -d

使用 -d 选项解压缩文件

也可以使用 bunzip2 来解压缩。

bunzip2 filename

bunzip2

解压文件

bunzip2 可以解压后缀名为 bz2, bz, tbz2 和 tbz 的文件。带有 tbz2 和 tbz 的文件在压缩后,后缀名将变为'.tar' 。

bzip2 -dc   
-   执行解压文件到标准输出的功能。

7-zip

7-zip 是另一个开源压缩软件。它使用 7z 这种新的压缩格式,并支持高压缩比。因此,它被认为是比先前提及的压缩工具更好的软件。在 Linux 下,可以通过 p7zip 软件包得到,该软件包里包含 3 个二进制文件: 7z, 7za 和 7zr,读者可以参考 p7zip wiki 来了解这三个二进制文件之间的不同。在本篇中,我们将使用 7zr 来解释 7-zip 的用法。归档文件以 '.7z' 为后缀名。

基本用法如下:

a) 创建归档

7zr a archive-name.7z file-name(s) / directory-name(s)

7zr a

创建一个归档文件

b) 列出归档包含文件

7zr l archive-name.7z

7zr l

列出归档中包含的文件

c) 提取归档文件

7zr e archive-name.7z

7zr e

提取归档

d) 更新归档文件

7zr u archive-name.7z new-file

7zr u

更新一个归档文件

e) 从归档文件中删除文件

7zr d archive-name.7z file-to-be-deleted

7zr d

删除文件

7zr l

确认文件删除


via: http://linoxide.com/tools/linux-compress-decompress-tools/

作者:B N Poornima 译者:FSSlc 校对:wxy

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

2015年1月27日,GNU C库(glibc)的一个漏洞也称鬼影漏洞(GHOST)被公诸于众。总的来说,这个漏洞允许远程攻击者利用glibc中的GetHOST函数的缓冲区溢出漏洞来获得系统的完全控制。点击这里获得更多细节。

鬼影漏洞可在版本在glibc-2.18之前的Linux系统上被利用。也就是说没有打过补丁的版本2.2到2.17都是有风险的。

检查系统漏洞

你可以使用下面的命令来检查glib的版本

ldd --version

输出

ldd (Ubuntu GLIBC 2.19-10ubuntu2) 2.19 Copyright (C) 2014 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Roland McGrath and Ulrich Drepper.

glib的版本应该高于2.17,我们的输出是2.19。如果你看到glib的版本在2.2到2.17之间。你应该运行下面的命令。

sudo apt-get update

sudo apt-get dist-upgrade

安装完之后,你应该用下面的命令重启系统。

sudo reboot

重启完成之后,你可以用同样的命令来检查glib的版本。


via: http://www.ubuntugeek.com/how-to-protect-ubuntu-server-against-the-ghost-vulnerability.html

作者:ruchi 译者:geekpi 校对:wxy

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

有时你也许想要给一个网卡多个地址。你该怎么做呢?另外买一个网卡来分配地址?在小型网络中其实不用这么做。我们现在可以在CentOS/RHEL 7中给一个网卡分配多个ip地址。想知道怎么做么?好的,跟随我,这并不难。

首先,让我们找到网卡的IP地址。在我的CentOS 7服务器中,我只使用了一个网卡。

用root特权运行下面的命令:

ip addr

示例输出:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:80:63:19 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.150/24 brd 192.168.1.255 scope global enp0s3
       valid_lft forever preferred_lft forever

如上所见,我的网卡名是enp0s3,ip地址是192.168.1.150。

如你所知,网卡的配置文件存储在 /etc/sysconfig/network-scripts/ 目录下。每个网卡的详细内容将会以不同的名字存储,比如ifcfg-enp0s3

让我们看下ifcfg-enp0s3的细节。

cat /etc/sysconfig/network-scripts/ifcfg-enp0s3

示例输出:

TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="e9f9caef-cb9e-4a19-aace-767c6ee6f849"
ONBOOT="yes"
HWADDR="08:00:27:80:63:19"
IPADDR0="192.168.1.150"
PREFIX0="24"
GATEWAY0="192.168.1.1"
DNS1="192.168.1.1"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"

好的,现在我们将在相同的子网中分配多个地址了。

编辑文件 /etc/sysconfig/network-scripts/ifcfg-enp0s3

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

像下面那样加入额外的IP地址。

TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="933cdc9b-b383-4ddd-b219-5a72c69c9cf0"
ONBOOT="yes"
HWADDR="08:00:27:3F:AB:68"
IPADDR0="192.168.1.150"
IPADDR1="192.168.1.151"
IPADDR2="192.168.1.152"
PREFIX0="24"
GATEWAY0="192.168.1.1"
DNS1="192.168.1.1"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"

如你所见,我已经加了两个IP地址:IPADDR1=”192.168.1.151″ & IPADDR2=”192.168.1.152″

类似地,你可以加入更多的ip地址。

最后,保存并退出文件。重启网络服务来使更改生效。

systemctl restart network

现在,让我们检查是否已经加入了ip地址。

ip addr

示例输出:

: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:3f:ab:68 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.150/24 brd 192.168.1.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet 192.168.1.151/24 brd 192.168.1.255 scope global secondary enp0s3
       valid_lft forever preferred_lft forever
    inet 192.168.1.152/24 brd 192.168.1.255 scope global secondary enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe3f:ab68/64 scope link 
       valid_lft forever preferred_lft forever

如你所见,单个网卡已经有3个ip地址了。

让我们ping一下新增的IP地址:

ping -c 4 192.168.1.151

示例输出:

PING 192.168.1.151 (192.168.1.151) 56(84) bytes of data.
64 bytes from 192.168.1.151: icmp_seq=1 ttl=64 time=0.048 ms
64 bytes from 192.168.1.151: icmp_seq=2 ttl=64 time=0.075 ms
64 bytes from 192.168.1.151: icmp_seq=3 ttl=64 time=0.077 ms
64 bytes from 192.168.1.151: icmp_seq=4 ttl=64 time=0.077 ms

--- 192.168.1.151 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.048/0.069/0.077/0.013 ms

ping -c 4 192.168.1.152

示例输出:

PING 192.168.1.152 (192.168.1.152) 56(84) bytes of data.
64 bytes from 192.168.1.152: icmp_seq=1 ttl=64 time=0.034 ms
64 bytes from 192.168.1.152: icmp_seq=2 ttl=64 time=0.075 ms
64 bytes from 192.168.1.152: icmp_seq=3 ttl=64 time=0.073 ms
64 bytes from 192.168.1.152: icmp_seq=4 ttl=64 time=0.075 ms

--- 192.168.1.152 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.034/0.064/0.075/0.018 ms

如果你想要使用不同的子网,你要改变PREFIX0=24成不同的子网,比如 PREFIX1=16

比如,我想要添加一个A类地址(*比如10.0.0.1)到我的网卡中。

TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="933cdc9b-b383-4ddd-b219-5a72c69c9cf0"
ONBOOT="yes"
HWADDR="08:00:27:3F:AB:68"
IPADDR0="192.168.1.150"
IPADDR1="192.168.1.151"
IPADDR2="192.168.1.152"
IPADDR3="10.0.0.1"
PREFIX0="24"
PREFIX1=16
GATEWAY0="192.168.1.1"
DNS1="192.168.1.1"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"

你可以看到我已经添加一个A类地址(10.0.0.1)并且前缀是16。

保存并退出文件。重启网络服务,接着,ping新增的地址:

ping -c 4 10.0.0.1

示例输出:

PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.097 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.073 ms
64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=0.074 ms
64 bytes from 10.0.0.1: icmp_seq=4 ttl=64 time=0.075 ms

--- 10.0.0.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.073/0.079/0.097/0.014 ms

相似地,你可以添加不同的网关。

就是这样。


via: http://www.unixmen.com/linux-basics-assign-multiple-ip-addresses-single-network-interface-card-centos-7/

作者:SK 译者:geekpi 校对:wxy

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

智能手机都拥有一些平滑地融入手机外观的天气小插件,现在幸亏有了 Flair Weather Conky,你便可以在你的 Linux 桌面中拥有像智能手机一样的天气外观。我们将使用一个 GUI 工具Conky Manager 在 Linux 中轻松地管理 Conky。那就先让我们看看如何在 Ubuntu 14.10,14.04、Linux Mint 17 及其他 Linux 发行版本中安装 Conky Manager 吧。

安装 Conky Manager

打开一个终端并使用下面的命令:

sudo add-apt-repository ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install conky-manager

你可以阅读这篇关于如何在 Linux 中使用 Conky Manager 的文章。

确保 curl 已被安装

请确保 curl 已被安装。如果没有安装它,可以使用下面的命令来安装:

sudo apt-get install curl

下载 Flair Weather Conky

从下面的链接下载 Flair Weather Conky 的脚本:

在 Conky Manager 中使用 Flair Weather Conky 脚本

步骤 1:

同你在 Ubuntu 14.04 中安装主题一样,在你的家目录中应该有一个 .conky 目录。假如你使用命令行,我想我不需要告诉你如何找到这个目录。对于新手,请用文件管理器切换到你的家目录下,并按 Ctrl+H在 Ubuntu 中显示隐藏文件。在这里查找 .conky 文件夹,假如没有这个文件夹,则创建一个。

步骤 2:

.conky 目录中,解压下载到的 Flair Weather 文件。请注意在默认情况下它会自动解压到一个名为 .conky 目录下。所以请进入这个目录,将其中的 Flair Weather 文件夹从中取出,然后将它粘贴到真正的 .conky 目录下。

步骤 3:

Flair Weather 使用 Yahoo 的天气服务,但它不能自动地识别你的位置。你需要手动地编辑它。到Yahoo 天气 网页,然后通过键入你的城市/Pin 码来得到你所在城市的位置 ID号。你可以从网页地址栏中取得位置 ID 号。

步骤 4:

打开 Conky Manager,它应该能够读取新安装的 Conky 脚本。这里有两款样式可用,黑色主题或亮丽主题。你可以选择你偏爱的那一款。当你选择后,你就可以在桌面上看到 conky 的显示了。

在 Flair Weather 中,默认位置被设定为 Melbourne。你必须手动编辑 conky 文件来修改。

步骤 5:

在上面的截图中,你可以看到有一个编辑选定 conky 脚本的选项,在打开的编辑器中,查找 location 或 WOEID ,更换它为你在 步骤 3 中得到的位置 ID 号。然后重启 Conky。

在上面查找的相同位置,假如你将u=c 替换为u=f,则温度的单位将从摄氏温标改为华氏温标 。不要忘了重启 Conky 来查看已经做出的修改。

可能的故障排除

在 Ubuntu 14.04 和 Ubuntu 14.10 中,假如你发现 Conky 展示的时间有重叠现象,则请编辑 conky 脚本。查找下面的这些行:

## cairo-compmgr
own_window_type override
own_window_argb_visual no

然后将内容更换为下面的这些行:

## cairo-compmgr
own_window_type dock
own_window_argb_visual no

保存更改并重启 conky。这就应该解决了这个问题。感谢 Jesse(这个 Conky 脚本的开发者)给我们提供了这个解决方法和为其他相关问题给予的支持。

尝试一下

在这篇文章中,我们实际上学到了不少东西。我们见证了如何轻松地使用任何 Conky 脚本,如何编辑脚本以及如何使用 Conky Manager 来达到不同的目的。我希望这些对你有用。

需要留心的是,Ubuntu 14.10 用户可能会看到重叠的时间数字。请在开发者 Jesse 绝妙的Google + 主页 中报告任何相关的问题。

我已经向你展示了在我的系统上 Flair Weather conky 外观的截图。现在是该你尝试它并炫耀你的桌面的时间了。


via: http://itsfoss.com/weather-conky-linux/

作者:Abhishek 译者:FSSlc 校对:wxy

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