标签 Linux 下的文章

当你在本地网络监控网络流量,根据流量大小、监控平台/接口、数据库类型等等,可以有许多不同的选择。

ntopng是一套开源(遵循GPLv3协议)网络流量分析解决方案,提供基于web界面的实时网络流量监控。支持跨平台,包括Linux和MacOS X。ntopng类似于RMON远端网络监控代理,具有内置的Web服务能力,使用Redis键值服务按时间序列存储统计信息。你可以在任何指定的监控服务器上安装ntopng,只需使用任一web浏览器,就能实时访问服务器上的流量报告了。

本教程就来介绍如何使用ntopng在Linux上配置基于Web的网络流量监控系统

ntopng的特性

  • 从数据流级别与协议级别对本地网络流量进行实时分析
  • 支持域、AS(自制系统)与VLAN级别的统计分析
  • 支持IP地址地理定位
  • 支持基于“服务探索”(例如Google、Facebook)的深度报文检测(DPI)
  • 历史流量分析(例如分别按照小时、日、周、月、年进行分析)
  • 支持sFlow、NetFlow(v5/v9版)以及基于nProbe的IPFIX
  • 网络流量矩阵(谁正在和谁谈话?)
  • 支持IPv6

在Linux上安装ntopng

官方网页上提供了针对UbuntuCentOS的二进制安装包。如果你使用的恰好是以上二者其一,并且懒得用源码安装,可以直接到官网下载二进制文件包安装,并忽略这一小节下面的内容。

如果你想通过源码安装最新的ntopng,请继续往下看

如果你是Debian、Ubuntu或Linux Mint,执行以下命令:

$ sudo apt-get install libpcap-dev libglib2.0-dev libgeoip-dev redis-server wget libxml2-dev
$ tar xzf ntopng-1.0.tar.gz -C ~
$ cd ~/ntopng-1.0/
$ ./configure
$ make geoip
$ make

上面的几个步骤中,“make geoip”将会自动通过wget从maxmind.com下载一个免费版的GeoIP数据库,因此,这里最好确保你的系统能联网。

如果你是Fedora:

$ sudo yum install libpcap-devel glib2-devel GeoIP-devel libxml2-devel
libxml2-devel redis wget
$ tar xzf ntopng-1.0.tar.gz -C ~
$ cd ~/ntopng-1.0/
$ ./configure
$ make geoip
$ make

如果你是CentOS或RHEL,首先设置EPEL repository,然后再执行上面和Fedora一样的命令就可以。

在Linux上配置ntopng

ntopng安装完毕之后,接下来,新建一个ntopng配置目录,然后按照下列命令准备默认的配置文件。这里我假设你的本地网络地址为C类“192.168.1.0/24”。

$ sudo mkir /etc/ntopng -p 
$ sudo -e /etc/ntopng/ntopng.start 

修改如下:

--local-networks "192.168.1.0/24"

--interface 1

$ sudo -e /etc/ntopng/ntopng.conf 

修改如下:

-G=/var/run/ntopng.pid

在运行ntopng之前,要确认先启动redis,刚才不说了,redis为ntopng提供键值存储嘛~

在Debian、Ubuntu和Linux Mint上,这样启动:

$ sudo /etc/init.d/redis-server restart 
$ sudo ./ntopng 

在Fedora、CentOS和RHEL上,这样启动:

$ sudo service redis restart 
$ sudo ./ntopng 

ntopng默认监听TCP的3000端口,使用下列命令加以确认。

$ sudo netstat -nap|grep ntopng tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN 29566/ntopng

基于Web界面的网络流量监控

一旦ntopng成功运行,就可以打开浏览器,访问地址http://:3000

这时,你会看到ntopng的登录界面。使用默认帐密:“admin/admin”。

下面是一些截图。

top流的实时可视化图像

top主机的实时统计,包括top协议和top AS数量

基于DPI的自动程序/服务探索生成的的实时数据报告

历史流量数据分析


via: http://xmodulo.com/2013/10/set-web-based-network-traffic-monitoring-linux.html

译者:Mr小眼儿 校对:wxy

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

我们继续“10个鲜为人知Linux命令系列”的第三部分。或许你已经知道了这些命令,那你无疑是一个有经验而喜欢探索的Linux用户。

22. ^foo^bar 命令

在一个实例中运行修改后的最后一个命令。假设我需要运行一个命令‘ls -l‘来详细列出‘Desktop’目录下的内容。意外地,你打了‘lls -l‘。所以你需要重新打整个命令或者使用导航键编辑前面的命令。当你的命令很长时这个很痛苦。

avi@localhost:~/Desktop$ lls -l 
bash: lls: command not found

avi@localhost:~/Desktop$ ^lls^ls 

ls -l 
total 7489440 

drwxr-xr-x 2 avi  avi       36864 Nov 13  2012 101MSDCF 
-rw-r--r-- 1 avi  avi      206833 Nov  5 15:27 1.jpg 
-rw-r--r-- 1 avi  avi      158951 Nov  5 15:27 2.jpg 
-rw-r--r-- 1 avi  avi       90624 Nov  5 12:59 Untitled 1.doc

注意:在上面的替换中我们使用“ typo(被替换的) original_command(原始命令) ”。警告!这个命令可能会非常危险!如果你有意或者无意地打错了系统命令或者任何像rm -rf那样的风险命令的话!

23. > file.txt 命令

这个命令会刷新文件的内容而不需删除然后创建相同的文件。当我们需要反复输出,或者在相同的文件上记录日志时,这个命令就非常有用。

我有一个有很多文字的‘test.txt’文件在我的‘Desktop‘上。

avi@localhost:~/Desktop$ cat test.txt 

Linux 
GNU 
Debian 
Fedora 
kali 
ubuntu 
git 
Linus 
Torvalds


avi@localhost:~/Desktop$ > test.txt 
avi@localhost:~/Desktop$ cat test.txt

注意:再说一次,这个命令可能很危险!永远不要尝试刷新系统文件或者某篇日志文件的内容。如果你这么做了,你可能会遭遇严重的问题!

24. at 命令

at‘命令与cron 命令相似也可用于安排一个任务或者在某个特定时刻执行命令。

avi@localhost:~/Desktop$ echo "ls -l > /dev/pts/0" | at 14:012

avi@localhost:~/Desktop$ echo "ls -l > /dev/pts/0" | at 2:12 PM

示例输出

-rw-r--r-- 1 avi  avi      220492 Nov  1 13:49 Screenshot-1.png 
-rw-r--r-- 1 root root        358 Oct 17 10:11 sources.list 
-rw-r--r-- 1 avi  avi  4695982080 Oct 10 20:29 squeeze.iso 
..
..
-rw-r--r-- 1 avi  avi       90624 Nov  5 12:59 Untitled 1.doc 
-rw-r--r-- 1 avi  avi       96206 Nov  5 12:56 Untitled 1.odt 
-rw-r--r-- 1 avi  avi        9405 Nov 12 23:22 Untitled.png

注意:echo “ls -l”的意思是,将这串命令(这里是 ls -l)输出在标准终端上。你可以用你需要或者选择的命令替代‘ls -l‘。

:重定向输出

/dev/pts/0: 这是输出设备和/或文件,输出到指定的地方,这里输出在终端(/dev/pts/0)。

就我而言,此时我的tty/dev/pts/0。你可以用tty命令检查你的tty

avi@localhost:~/Desktop$ tty 

/dev/pts/0

注意: ‘at‘会在系统时间匹配到特定时间时会尽快执行。

25. du -h –max-depth=1 命令

下面的命令以人类可读的形式输出当前目录的子目录的大小。

avi@localhost:/home/avi/Desktop# du -h --max-depth=1 

38M     ./test 
1.1G    ./shivji 
42M     ./drupal 
6.9G    ./101MSDCF 
16G .

注意:上面的命令在检查系统使用率是非常有用。

26. expr 命令

expr‘不是那么鲜为人知的命令。这个命令在终端中计算简单的算数时非常有用。

avi@localhost:/home/avi/Desktop# expr 2 + 3 
5

avi@localhost:/home/avi/Desktop# expr 6 – 3 
3

avi@localhost:/home/avi/Desktop# expr 12 / 3 
4

avi@localhost:/home/avi/Desktop# expr 2 \* 9 
18

27. look 命令

在终端上从英文字典上查单词以防混淆。比如说,我记不清了是该拼成carrier还是carieer。

avi@localhost:/home/avi/Documents# look car

Cara 
Cara's 
…
... 
carps 
carpus 
carpus's 
carrel 
carrel's 
carrels 
carriage 
carriage's 
carriages 
carriageway 
carriageway's 
carried 
carrier 
carrier's 
carriers 
carries 
…
... 
caryatids

上面的命令会显示字典上所有以'car'开头的单词。我得到了我想找的。

28. yes 命令

另外一个命令在通常基础上并不会经常使用,但是在脚本语言和系统管理时非常有用。

这个命令会持续地输出给定的字符串,直到由你的中断命令打断。

avi@localhost:~/Desktop$ yes "Tecmint is one of the best site dedicated to Linux, how to" 

Tecmint is one of the best site dedicated to Linux, how to 
Tecmint is one of the best site dedicated to Linux, how to 
Tecmint is one of the best site dedicated to Linux, how to 
Tecmint is one of the best site dedicated to Linux, how to 
…
…
...
Tecmint is one of the best site dedicated to Linux, how to 
Tecmint is one of the best site dedicated to Linux, how to 
Tecmint is one of the best site dedicated to Linux, how to

29. factor 命令

factor实际是一个源于数学的命令。这个命令会输出所有给定数字的因数。

avi@localhost:~/Desktop$ factor 22 
22: 2 11

avi@localhost:~/Desktop$ factor 21 
21: 3 7

avi@localhost:~/Desktop$ factor 11 
11: 11

30. ping -i 60 -a IP\_address

我们都用ping命令检测服务器是否连通。我通常ping google,来检测我是否连接到了因特网。

当你等待或者持续盯着你的终端等待命令的回应或者等待服务器的连接时,有时是很气人的。

一旦服务器连通就有一个声音如何(译注:下面命令是等60秒PING一次)?

avi@localhost:~/Desktop$ ping -i 60 -a www.google.com 

PING www.google.com (74.125.200.103) 56(84) bytes of data. 
64 bytes from www.google.com (74.125.200.103): icmp_req=1 ttl=44 time=105 ms 
64 bytes from 74.125.200.103: icmp_req=2 ttl=44 time=281 ms

注意,当你发现命令不会返回声音时。请确保你的系统不是静音的,声音已经在‘sound preferences(声音选项)‘ 中启用并确保勾选了‘Enable window and window sound‘。

31. tac 命令

这个命令很有趣,他会以倒序输出文本文件的内容。也就是从最后一行到第一行。

在home目录下,我的Documents目录下有一个35.txt文件。用cat 命令检查内容。

avi@localhost:~/Documents$ cat 35.txt

示例输出

  1. Linux is built with certain powerful tools, which are unavailable in windows.
  2. One of such important tool is Shell Scripting. Windows however comes with such a tool but as usual it is much weak as compared to it's Linux Counterpart.
  3. Shell scripting/programming makes it possible to execute command(s), piped to get desired output in order to automate day-to-day usages.

现在用tac命令反转文件内容(译注:当然,我们知道cat反转过来就是tac)。

avi@localhost:~/Documents$ tac 35.txt 

示例输出

  1. Shell scripting/programming makes it possible to execute command(s), piped to get desired output in order to automate day-to-day usages.
  2. One of such important tool is Shell Scripting. Windows however comes with such a tool but as usual it is much weak as compared to it's Linux Counterpart.
  3. Linux is built with certain powerful tools, which are unavailable in windows.

现在结束了。如果你还知道其他一些Linux鲜为人知的命令,你可以在下面评论,那么我们你可以在以后的文章中包含进来。

不要忘了给我们有价值的评论。我很快会发另外有趣的文章。别走开继续关注 Tecmint


via: http://www.tecmint.com/10-lesser-known-commands-for-linux-part-3/

译者:geekpi 校对:wxy

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

经过6个月艰苦卓绝的开发工作,Linux Mint开发组终于发布了更加稳定可靠的Linux Mint 16,版本代号Petra 肉桂版(Cinnamon Edition)。此次发布的Linux Mint包括了软件升级、新增功能以及多个bug修复。

这一版本是项目组努力工作6个月的辛勤果实,它为我们带来了2种独特“口味儿”,肉桂(Cinnamon)及其伴侣(MATE),但具体新功能都有哪些呢?

根据官方发布的声明,下面列出了Linux Mint 16 Petra Cinnamon版本的新功能:

  • Cinnamon升级至2.0版
  • 全新的登录界面
  • 支持USB记忆棒
  • 系统性能提升
  • 全新的软件管理器
  • 系统更加完善
  • UI美工更加漂亮
  • 主要组件得到优化

Cinnamon 2.0

肉桂2.0带来诸多改进,修复了多个bug,加入许多新功能。首先,关闭窗口、切换工作台等日常操作加入了声音效果,同时,用户可以独立于主音量之外,单独对这些声音进行设置,另外,2.0版还加入了一个新面板,大大方便了session会话和账户关联任务等操作。

账户细节

系统管理员可以通过“用户与组”配置工具,对用户和组进行管理,你还可以使用新的“账户细节”配置界面对密码等信息进行修改。

软件管理器

“快”!这是用来描述新版Linux Mint软件管理器最合适的字眼。每个人都欣喜地看到,如今的软件管理器不但比以前占用更少的内存,而且支持多个截图预览, 搜索更加迅捷,启动更加快速。

系统更加完善

你会在你的Linux Mint上使用“终端”来完成日常工作吗?当然!作为程序猿(媛),这样才显得很高端大气上档次。这次的Linux Mint 16 Petra 肉桂版,将为你带来比以往更好的终端体验。举个栗子,新的终端使用“ll”命令作为“ls -al”的别名命令,如此一来,有了省时又省力的“ll”,谁还会去敲“ls -al”?(译注:难道ll还不是业界标准么?)

除了程序猿(媛),Linux Mint 16 Petra 肉桂版同样还惦记着我们广大亲爱的游戏玩家!肉桂君现在能够更好的支持Steam,不仅如此,肉桂君还默认将steam加入了软件容器和软件管理器的特色板块!

宅男 们可能比较关心,隐私策略做的怎么样呢?Linux Mint 16为广大宅男同胞们提供了额外的隐私/安全搜索引擎,机油再也不用担心我找不到苍老师~

更好的帮助支持、更安全的内核更新、更快的启动速度和登录速度…… 哎对了,果粉们怎么办?果粉?是的,这里说的就是各位苹果的忠(Nao)实(Can)粉丝们。虽然我们是Linuxer,但是分享与关爱是我们Linuxer与生俱来的传统美德。因此,Linux Mint 16现已加入对iOS设备的支持,众位果粉这下高兴了吧。不客气~


via: http://www.unixmen.com/linux-mint-16-petra-cinnamon-rc-released/

译者:Mr小眼儿 校对:wxy

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

过去的10年中,Linux的众多支持者几乎每年都预言当年会是“linux桌面版之年”。对微软主导的企业来说,这曾经是一个崇高的目标,但时代在变。在智能手机和云计算市场领域,Linux已经发展壮大成为一个顽强的竞争对手,打了微软一个措手不及。更重要的是,Google,IBM,Red Hat,Facebook, 还有Netflix等公司正在对linux的研发创新投入巨资。

现在, 随着技术预算缩水,微软授权费上涨,IT界是时候应该认真考虑一下了,部署桌面版Linux,替代Windows。这是个最佳时机,Windows 8.1刚发布,Ubuntu 13.10也同时发布。对Windows XP的支持也只剩下5个月时间。IT公司需要切换到新的环境。Ubuntu利用企业的需求来支持他们桌面版操作系统的需求。我研究了几个促成向桌面版linux转换的因素,包括培训和支持,还有一些潜在的复杂性问题。

我知道Ubuntu已经失去了它曾经在开源社区享有的青睐。Canonical,Ubuntu的开创者,做出了几个不受欢迎的决策,包括改变屏幕管理器(linux图形界面的基本组件),用内部开发的Mir替换掉Wayland。然而,Ubuntu仍然是完全开源的,并提供任何Linux发行版甚至Windows版本的软件,安装起来最为省事。Canonical还提供付费支持,这可能是企业级环境所需要的。

一直存在这样的争论,如果切换到一个新的桌面的话,最终用户需要再培训。微软做出了争议性决策,针对Windows 8.1,对熟悉的界面全面整改,这种举措造成的影响就是,比转向linux需要更多的培训。 Ubuntu Unity 桌面已经演变为用户友好的界面,比之Windows 8.1,更易于被终端用户所理解。

例如,比较一下用户在各个操作系统中关闭系统的方式。所有最近的Ubuntu版本,关闭系统只需点击一下屏幕右上角打开-关闭的图标。Windows 8.1则需要右击开始按钮,然后出现一个下拉菜单,从中找到关闭电源的选项。相较于Windows 8,这是个巨大的进步。Windows 8还得费劲去找相关的入口。总不如屏幕上只需一个图标来得直接。

多亏了许多流行的开源应用的Windows版本,对使用这些应用软件的终端用户的培训过也不是什么复杂的任务。用户已经熟悉了Windows上的Firefox, LibreOffice, Pidgin, 以及VLC媒体播放器。用于商业的应用,比如Skype和Adobe Acrobat,功能实现跟Windows上的基本相同。基于云的应用,比如Google Drive 和 Microsoft Office 365,在Ubuntu上都可以正常使用。

传统的Windows应用程序可以通过熟悉的Citrix或者开源RDP的客户端来使用。公司也可以使用开源的虚拟产品,比如VirtualBox,运行一些顽固的老掉牙的Windows应用。

在最新硬件的支持上,许多技术人员还记得,在Linux刚刚起步的那些时日,硬件支持极其有限。如今形势已经转变了。

如今对Linux的硬件支持通常比对最新的Windows版本的支持还要理想。许多硬件供应商已经放弃了对Windows新版本的驱动支持。Linux下的硬件驱动可以由开源社区的任何一个人维护更新,因此许多支持许多旧的硬件在最新版Ubuntu中得到了完全的支持。有基于此,再加上Ubuntu较低的系统需求,公司可以延长都已经进了回收站的硬件的使用寿命。

虽然Linux的桌面替代品存在它的优势,但是企业也应该考虑到一些潜在的困难。尽管许多技术人员正在使用linux,也为学习新的技术而欢欣鼓舞,但是仍有一部分技术人员用Windows进行开发工作很长时间了,已经习惯了,再去拥抱新的变化,对他们来说,或许不是那么得情愿。

援引薪酬增长的趋势是一个解决潜在的问题的办法。相比于其他专业技术人员,要求Linux技能的职位薪酬上涨近一倍的速度,这是来自Dice的说法。

对严格遵守合规性的公司来说,切换到Linux可能会遇到困难。例如,HIPAA要求加密,以满足FIPS-140-2的要求。大多数开源加密项目没有赞助商帮助他们通过NIST认证以满足这一要求。开源代码实际上可能因为有许多人已审查,会比专有软件更安全,但令人惊讶的是,在合规性的世界中,这一点无关紧要。

在决定全面迁移之前,企业需要了解他们的规则要求,并制定一个计划,培训IT人员。但总体而言,相比于企业级私有操作系统,作为一个切实可行的选择,Ubuntu Linux已然成熟。考虑到版权费用的花销,公司在Linux桌面替换项目中的投入是值得的。下一年或许就是“linux桌面版之年”。

本文作者Joseph Granneman拥有超过20年的技术经验,主要专注于医疗信息技术。他伊利诺伊州罗克福德骨科协会的CIO,医疗保健信息技术和信息安全领域一个活跃的独立作家、主持人和教授。Granneman一直活跃在许多的组织群体,包括发展健康信息交换的早期框架,该框架是伊利诺斯州的保健信息安全和隐私安全工作组的一部分。他也是健康信息技术认证委员会(CCHIT)安全工作组的一名志愿者,该工作组负责制定ARRA认证的电子病历信息安全标准。

via: http://www.networkcomputing.com/data-networking-management/linux-desktop-in-the-enterprise-ubuntu-v/240163564

译者:l3b2w1 校对:wxy

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

反复键入特定的信息 - 如电子邮件地址或家庭地址,详细的终端命令,及时发送用户喜爱的电视节目的资讯 - 可是件苦差事。

Snippets – 方便的访问存储的文本的方法

谢天谢地,这个世界上有一些工具可以帮助我们(做这些事儿)。

‘Snippets’ 就是Unity中这种组件之一。 这是一个简单的启动程序小工具,它让你在一个文件中保存和存储摘下来的内容,然后当你需要的时候从Unity的一个快速列表里复制到剪贴板。

在某些人把他的内裤扔到我的脸上之前,我得说Snippets不是唯一的这种工具,它甚至不是第一个提供这一系列功能的。但是它独特的是通过Unity启动器来提供这一系列功能。

这个软件具功能不错又足够简单,提供以下功能:

  • 添加、访问存储在txt文件中的文本段
  • 在快速列表里查看保存的文本段
  • 点击文本段就可以复制到剪贴板
  • 提供了把剪贴板中的内容保存到txt文件的选项

尽管它不是一个“智能”的剪贴板管理工具 – 它只是列出了你特别添加的项目;它不会列出你最近的剪贴板项目历史,但仍然是一个非常方便的小工具。

怎样为Unity安装Snippets

想要使用这个漂亮的启动器项目,你需要先安装一个命令行剪贴板工具XClip。点击下面的按钮(链接)从软件中心安装。

下一步,下载下面的‘Snippets’压缩文件。这包含了剩余所有的使用这个应用所需要的东西。

当这个压缩文件下完之后你就可以解压了。进入生成的文件夹,然后按Ctrl+H显示隐藏的文件。移动文件夹‘.snippets-launcher‘到你的主文件夹中。如果不这么做,这个组件将无法正常工作。

下一步是安装启动器项目。这是被一个你刚搬到文件夹里面的脚本关照的,但它不具有可执行的权限(需要安装),因此,我们首先需要关照它一下。

打开一个新的终端窗口在里面小心的键入下面的命令:

cd .snippets-launcher/ && chmod +x snippets.sh
./snippets.sh

就是这样;Snippets应该已经整装待发了。打开Unity Dash搜索Snippets然后把它拖到启动器上去:

  • 左键点击启动器打开可以添加你的文本段的文本文件
  • 右键点击启动器上的项目打开快速列表

快速列表里的选项:

  • 左键点击文本段以添加到剪贴板
  • 左键点击“日期”可以复制当前日期
  • 点击“添加剪贴板内容”可以把当前剪贴板中的内容加入到.txt文件中(译注:实际上保存的文本是存储在一个文本文件中)
  • 在添加一个项目到.txt文件后点击“更新启动器”

更多关于这个懒人的工具信息尽在Ubuntu论坛,在那里它的开发者,“Stinkeye”,会很高兴地提供帮助。


via: http://www.omgubuntu.co.uk/2013/10/unity-launcher-clipboard-snippets-item

译者:crowner 校对:wxy

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

RPM是RedHat的包管理器,用来安装、卸载、升级和查询基于RedHat Linux的安装包。RHEL和基于它的系统使用rpm命令来完成这些功能。以下是一些例子来演示rpm的查询功能,和展示了用不同的方法来查询rpm数据库和还原配置文件。

我在示例命令中使用SSH包来做说明。

查询RPM数据库和包

1、 在整个RPM数据库中查询,使用下面的命令

# rpm -qa
plymouth-0.8.3-27.el6.x86_64
pciutils-libs-3.1.10-2.el6.i686 
netcf-libs-0.1.9-3.el6.x86_64
..
...
..
Output Truncated

2、 你可以通过grep命令来确定上面的例子中有哪些SSH包已经安装

# rpm -qa |grep ssh
libssh2-1.4.2-1.el6.x86_64
openssh-askpass-5.3p1-84.1.el6.x86_64
libssh2-1.4.2-1.el6.i686
openssh-server-5.3p1-84.1.el6.x86_64
openssh-clients-5.3p1-84.1.el6.x86_64
openssh-5.3p1-84.1.el6.x86_64

输出显示了一些关于SSH的包,但是你仍需确定哪个包真正安装了SSH。为了更近一步,请看下面的示例。

3、 检查已安装的SSH包 a) 通过sshd守护进程 b) 通过它的配置文件

# rpm -qf /etc/init.d/sshd
openssh-server-5.3p1-84.1.el6.x86_64
# rpm -qf /etc/ssh/sshd_config
openssh-server-5.3p1-84.1.el6.x86_64

如你所见,ssh是通过openssh-server-5.3p1-84.1.el6.x86\_64包安装的,你可以在守护进程或者配置文件中使用rpm -qf命令(查询ssh包所包含的任一文件来查询)。两者都会输出从那个软件包安装的。

4、 现在你有了包名,你可能想要了解更多,并想要知道包中包含了哪些不同的文件。这种情况下,使用rpm -ql命令

# rpm -ql openssh-server-5.3p1-84.1.el6.x86_64
/etc/pam.d/ssh-keycat
/etc/pam.d/sshd
/etc/rc.d/init.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd
/usr/libexec/openssh/sftp-server
/usr/libexec/openssh/ssh-keycat
/usr/sbin/.sshd.hmac
/usr/sbin/sshd
/usr/share/doc/openssh-server-5.3p1
/usr/share/doc/openssh-server-5.3p1/HOWTO.ssh-keycat
/usr/share/man/man5/moduli.5.gz
/usr/share/man/man5/sshd_config.5.gz
/usr/share/man/man8/sftp-server.8.gz
/usr/share/man/man8/sshd.8.gz
/var/empty/sshd

上面的输出显示了所有该包在系统中安装的文件。现在让我们更进一步,我们只想要看到该包提供的配置文件和文档。

5、 只列出其中的配置文件,使用rpm -qc命令

# rpm -qc openssh-server-5.3p1-84.1.el6.x86_64
/etc/pam.d/ssh-keycat
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/sysconfig/sshd

6、 只列出其中的帮助文档,使用rpm -qd命令

# rpm -qd openssh-server-5.3p1-84.1.el6.x86_64
/usr/share/doc/openssh-server-5.3p1/HOWTO.ssh-keycat
/usr/share/man/man5/moduli.5.gz
/usr/share/man/man5/sshd_config.5.gz
/usr/share/man/man8/sftp-server.8.gz
/usr/share/man/man8/sshd.8.gz

考虑一种情况,你想要配置一个服务,但是你不知道哪里找到配置文件。举例来说,如上面的例子:使用rpm -qf rpm -qf /etc/init.d/sshd来找出 /etc/ssh/sshd\_config这个文件源于哪个包。这应该会给你显示openssh-server-5.3p1-84.1.el6.x86\_64包。使用rpm -ql openssh-server-5.3p1-84.1.el6.x86\_64来显示包中所含的所有文件。如你所见,许多文件名显示了出来,但是输出并不很有用。

现在使用rpm -qc openssh-server-5.3p1-84.1.el6.x86\_64 来只显示这个包的配置文件。这只会显示4个文件并给出了/etc/ssh/sshd\_config file的绝对路径,可以用来开始配置服务。

7、 从PRM包还原配置文件,而不重新安装包。

如果由于一些原因文件损坏或者从系统中删除了,你可以以rpm -qf开头来找出文件存在于哪个包。接下来使用rpm2cpio | cpio -idmv来从包中解压出文件。用ssh的例子。

假设/etc/ssh/sshd\_config文件已经删除并且你不希望重装ssh,按以下步骤来还原文件。

  • 使用rpm -qf /etc/init.d/sshd 这个命令会显示文件来自于openssh-server-5.3p1-84.1.el6.x86\_64包。
  • 从它的源中下载Openssh的rpm包。
  • 复制openssh-server-5.3p1-84.1.el6.x86\_64包到/tmp目录或者其他任何你选择的目录。
  • 使用rpm2cpio |cpio -idmv解压包。

上面步骤中你使用的命令会在/tmp下面创建一个子目录。你现在可以复制到它的原始目录。


via: http://linoxide.com/linux-command/rpm-command-query/

译者:geekpi 校对:wxy

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