Linux管理工具集锦文档格式.docx
《Linux管理工具集锦文档格式.docx》由会员分享,可在线阅读,更多相关《Linux管理工具集锦文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
Linux如何自动管理脚本?
v如何用LinuxCIFS客户端共享Windows文件?
TT服务器技术专题之“Linux管理工具集锦”Page4of45
Linux上XFS文件系统的特性介绍
企业Linux环境的文件系统中,XFS是最有趣的选择之一。
本文中,我们将探索XFS文件系统提供的与ext3和ext4不同的特点和优势。
XFS文件系统是作为一个日志文件系统开发,采用B-树平衡树算法来尽快地分配数据。
主要的设计目的之一是支持大型文件和大型文件系统。
当前,能够支持的最大文件大小是2艾字节,最大文件系统大小为8艾字节。
XFS支持
如果你正在考虑使用XFS,你首先要知道,它并不能在所有Linux发行版本上运行。
RedHat不提供XFS支持。
RedHat认为XFS不够稳定。
SUSELinux企业服务器已经支持XFS,你可以用Debian、Gentoo、Mandriva或Fedora等其它发行软件来运行它。
XFS和ext3与ext4有何不同?
在你考虑XFS之前,你应该知道它有什么不同之处。
在XFS上,很多任务的工作方式不同,包括设置配额,修复系统文件,甚至仅仅复制一个文件。
这些不同的出现是因为XFS所带的功能。
分配组是个重要功能,这让XFS成了可高度扩展的文件系统,它允许你存储大量文件和很大的文件。
通过创建分配组,每个分配组管理自己的节点和自由空间,你可以确保多个进程和线程能够同时服务文件系统,这可以提高工作性能。
为了有效地处理文件,XFS选择了Ext4已经采用的盘区技术。
一个区是可以当作一个单一实体的一组分程序来定址。
好处是,与通过一个文件单独定址所有使用中的分程序相反,XFS只定址有限数量的区,这在定址大文件时更高效。
延迟分配是XFS的另一种实用功能。
当文件初次创建时,其内容通常写入缓存区,然后它通常会刷新到磁盘。
XFS会尽量等到最久才这样做,因为新文件创建后常会有很多修改。
通过最大限度地延迟刷新文件到磁盘,文件系统优化了文件编写的方式,分配了尽可能多的连续块或区,防止过后文件系统破碎。
当延迟分配不是最优方案时,XFS有几个关于时间的选项。
直接I/O选项保证一个文件不会在缓存区缓存,而是一确定就立刻写入磁盘。
XFS专门提供一个保证速度的I/O,这保证了某些文件有一个最小I/O带宽。
这个功能使XFS成为一个优秀的流动媒体文件系统。
TT服务器技术专题之“Linux管理工具集锦”Page5of45
XFS有些独特功能,这些功能让它成为需要支持大量文件或大文件的环境下的卓越文件系统。
但是如果你考虑使用XFS,你需要做个计划来在Linux服务器环境下用优化性能设置执行它。
(作者:
SandervanVugt译者:
Dan来源:
TechTarget中国)
原文标题:
原文链接:
TT服务器技术专题之“Linux管理工具集锦”Page6of45
Puppet2.6.x新功能解析
Puppet是开源企业系统管理工具,它在Puppet2.6.0发布版(及包括最近的2.6.5在内的后续版本)中已经加入了大量新功能。
2.6.x系列版本将以多种方式成为Puppet的下一代,包括通过移动版本数里的小数点(从0.25到2.6.x系列)来使版本数正常化。
在该技巧中,我们将强调它们的新功能并列举一些它们如何工作的例子。
首先,新版本标志着对Puppet初始XMLRPC连接的反对及对更快的RESTfulAPI的支持。
这样做的结果是Puppet性能提高,与之进行的整合也更容易。
支持RubyDSL
另一个新功能是新的RubyDSL(域特定语言)。
Puppet有一个可用来管理配置的现在DSL,但2.6.0添加了对纯Ruby版本DSL的支持。
在现在的DSL中,你可以创建一项受管理的资源:
classhost{file{“/etc/hosts”:
mode=>
0750,owner=>
root,}}
在新RubyDSL中,你可以用如下方式表示:
hostclass:
hostdofile“/etc/hosts”,:
mode=>
0750,:
owner=>
“root”end
如果你已经熟练掌握Ruby,在你有RubyDS的清单中,你还可以用Ruby代码执行任务。
举例来说,你可以从你清单中的其它源里管理数据或检索数据,如从MySQL数据中检索数据并把它用到Puppet资源里:
require'
rubygems'
require'
mysql'
hostclass:
packagesdocon=Mysql.new('
localhost'
'
user'
password'
cmdb'
)pkgs=con.query('
select*frompackages'
)TT服务器技术专题之“Linux管理工具集锦”Page7of45
pkgs.each_hash{|p|packagep['
name'
],:
ensure=>
'
latest'
}con.closeendnode'
default'
doinclude'
packages'
end
Puppet语言中的新功能
Puppet语言本身也有一些新功能,包括用哈希值(Puppet已经了解阵列)的能力和添加到现有if/else条件中的elsif结构。
if$foo==‘bar’{includebaz}else{includequx}
现在Puppet允许更多如下的完全if/elsif/else句法:
if$foo==‘bar'
{includebaz}elsif$qux=='
hum'
{includevalve}else{includebox}
此外,Puppet现在支持“阶段”的概念,这意味着你可以向你的清单中添加更粗略的命令。
如果在特定命令中有配置需要,这对管理分程序很有用。
例如,开启主机需要的所有步骤可能发生于主机上的应用配置之前。
Puppet创建一个叫做“main”的默认阶段。
你可以创建其它阶段并指定它们发生的命令:
stage{[pre,post]:
}Stage[pre]->
Stage[main]->
Stage[post]
这些代码规定两个阶段:
pre和post。
它接着指定执行命令,先是pre,然后是main,接着是post。
接着我们可以针对特定阶段中的执行向该阶段中添加资源和类别,例如:
class{"
keys"
:
stage=>
pre;
"
dns"
main;
web"
post;
}TT服务器技术专题之“Linux管理工具集锦”Page8of45
审计配置选项
另一个新发展是Puppet审计配置的概念。
在你运行Puppet之前你只有两种模式:
执行,它在主机上做实际变更。
模拟或“等待”模式,其中Puppet告诉你它将会做哪些变更但并不会真正做这些变更。
如果你只想了解知道配置状态,新审计功能允许你指定配置。
你可以指定配置,如在目录中追踪文件所属权,告知Puppet注意这些文件并发送报告显示它们随时间的状态变化。
举例来说,你可以审计`/etc/hosts`文件。
Puppet第一次运行文件时会报告它的特性——它归谁所有,许可,等等。
在每一次的连续性运行时,Puppet会检查现有状态并报告与之前相比的所有不同情况,例如,如果文件所有人改变,会产生一条日志信息:
审计变更:
前记录值所有者root变成了所有者james
这个功能让你可以复制一些有审计功能的工具,如有Puppet的Tripwire。
Puppet企业版
Puppet实验室发布了Puppet企业版,它是用一个安装程序捆绑了所有Puppet及其相关附属物的商业产品。
它设计用来降低用户进入的障碍并帮助人们实施Puppet配置的最佳实践。
它和开源产品功能相同,但它有自带支持、更多的稳固性测试、安装程序和额外的文档。
包括升级PuppetDashboard和其它主要功能的未来版本和Puppet2.7.0,这两者都会在2011年中完成。
JamesTurnbull译者:
Mark来源:
TT服务器技术专题之“Linux管理工具集锦”Page9of45
不容错过的Linux命令行窍门
高效地使用命令行是一个Linux系统管理员技能的重要组成部分。
在本文中,我们提供了五个很酷甚至略显古怪的Linux命令行技巧,可以帮你更有效地管理你的Linux系统。
More=Less
在Linux上读取文件通常会涉及到more和less命令。
more命令从前向后读取文件,因此在启动时就加载整个文件。
less命令则允许在文件中前向或后向移动,加载时只读取文件的下一部分。
为了节约时间,一个有用的技巧便是将less命令建立别名为more:
$aliasmore=less
把这一条加入你的.bashrc或者.bash_profile文件中,使之成为永久性的别名。
less命令使用方便,向前滚动就像more命令一样,可以通过敲击空格键或f键来完成。
使用一次b键则可以向后滚动一屏。
(在less命令的帮助页面你还可以看到更多的命令选项。
)
另一个输出文件内容的命令是cat命令,该命令将整个文件的内容从上到下显示在屏幕上。
许多人不知道cat命令还有一个姐妹命令tac。
正如你想象的那样,tac命令也会显示整个文件的内容,但是顺序相反,是从下至上。
这个命令在读取一个日志文件或其它受关注输出在文件底部的事情时很有用
shuf命令用处不那么大,但却很有意思,能够打乱输入数据的顺序。
试试运行:
$shuffilename
它将以随机的顺序返回文件内容。
没人能看到你的屏幕
在同一台服务器上建立了多个SSH会话?
你不该这么做。
打开多个SSH会话不仅浪费计算机资源,而且还不方便管理。
尤其是当你使用窗口管理器(WindowManager)或是Putty之类包含多个终端并能迅速占据独立屏幕位置的工具时,尤其如此。
更好的选择是使用screen或者tmux之类的工具,允许你在一个SSH会话中建立多个终端。
TT服务器技术专题之“Linux管理工具集锦”Page10of45
screen命令很容易使用。
首先,你需要确保你已经安装了screen程序。
在RedHat和Ubuntu主机上你需要安装screen程序包,命令是:
$sudoyuminstallscreen
然后在终端会话中键入:
$screen
看起来像什么事都没发生,对吧?
那你就错了。
键入一个命令,如top,那么你将看到系统内正在运行的进程。
现在键入Ctrl-a-c(按住Ctrl键,然后敲a,然后再敲c),一个新的终端窗口会弹出来。
你的旧窗口仍然可用。
实际上你可以通过Ctrl-a-p回到前一个窗口,你还可以通过Ctrl-a-a在窗口之间循环。
或者你还可以通过序号来选择窗口,根据创建的顺序,每个窗口序号不同,第一个窗口是Ctrl-a-0,然后是Ctrl-a-1,依次增加。
你可以通过不断按下Ctrl-a-c来创建更多的窗口,在命令行里键入exit就可以退出窗口。
当退出最后一个窗口时,整个会话也将退出。
关于屏幕最好玩的事就是你可以保留当前的屏幕,并随时回到这个状态。
键入Ctrl-a-d,保留屏幕,然后你可以返回到最初运行screen命令的那个窗口。
随后你可以退出主机。
当你再次登录时,你可以运行:
$screen-r
你的会话会重新开始,并且所有之前的终端都将可用(前提是没人关闭screen进程或重启主机)。
你可以在Screen的帮助页面找到更多有用的信息。
另一种screen的替代工具是Tmux,它功能更强大使用更复杂,对多用户共享屏幕非常有用。
一个常见的应用就是远程双人共同编程。
HTTP服务器:
当你马上需要一个Web服务器时!
当你需要快速传递文件时,最简单的方法之一就是通过HTTP服务器。
我常常通过命令行快速地建立一个RubyWeb服务器:
$ruby-rwebrick-e'
WEBrick:
HTTPServer.new(:
Port=>
3125,:
DocumentRoot=>
Dir.pwd).start'
这会在3125端口为当前目录开启HTTP服务:
3125
你还可以使用Python完成同样的事:
TT服务器技术专题之“Linux管理工具集锦”Page11of45
$python-mSimpleHTTPServer
这将在8000端口为当前目录开启HTTP服务。
(你需要通过防火墙打开这两个端口。
记住这一点很重要,任何人都可以从你的服务器上下载文件,所以一定要确保你知道自己对外提供了哪些文件,别把你不想与他人分享的东西也贡献出去。
更好的进程显示工具:
pgrep
你可能经常发现自己会键入这样的命令:
$ps-A|grep‘ruby’1680?
00:
05:
45ruby30250?
06:
39ruby
但还有一个更简单的方法可以显示进程,并且不需要调用ps命令的输出管道:
pgrep。
$pgrep-lruby1680ruby30250ruby
你还可以查询某个特定用户运行的进程,如:
$pgrep-uroot
这会显示所有root运行的进程。
最后你还可以使用一些grep式的查询技巧:
$pgrep-lv`whoami`
这条命令会列出所有不属于你的用户进程(就像在grep命令中一样,-v选项表示排除)。
拼写错误
你可能知道aspell(或者ispell)库可以允许你在Linux上进行拼写检查。
但你还能独立运行aspell命令,或者集成到其它应用程序中。
例如,从命令行对一个文件进行拼写检查,你可以这样运行aspell:
$aspell-cfilename.txt
这条命令会启动一个交互式的拼写检查程序,你可以检查和更新文件中任何的拼写错误。
TT服务器技术专题之“Linux管理工具集锦”Page12of45
但有时你只是想知道某个单词该怎么拼,这时你需要look命令,它是命令行里一个好用的拼写检查工具。
键入look,以及你想要拼写的单词的一部分,例如:
$lookvendo
就会返回一个以vendo开头的单词列表。
JamesTurnbull译者:
TT服务器技术专题之“Linux管理工具集锦”Page13of45
实用Bash命令介绍
本文将介绍五种有趣、有用的Bash及命令行技巧与快捷键,它们可以让你的生活更加简单。
其中包括几种快捷键,以及改变你使用命令行的方法等。
本文是以前的《Linux下的Bash:
您所不知道的五件事》的姊妹篇。
更改Bash导航
大多数人都知道Bash的导航命令。
用Emacs作编辑器的人对它们更是相当熟悉。
它们包括:
Ctrl+a-返回到当前命令的开始Ctrl+e-返回到当前命令的末尾Ctrl+w-删除光标左边的第一个条目(变量或者命令)Ctrl+u-剪切光标前面的所有内容Ctrl+y-剪切光标后面的所有内容Ctrl+y-粘贴你用Ctrl+u或者Ctrl+y剪切的内容Ctrl+p-滚动显示以前的命令Ctrl+n-下一个命令Ctrl+l-清屏
你可能不知道Bash不仅能够使用Emacs编辑模式,而且还能够使用vi模式(为那些更喜欢用vi命令的人准备)。
你可以用下面的命令切换到vi编辑模式:
$set-ovi
你还可以把这个命令添加到你的.bashrc文件中,以便永久地切换到vi模式:
$set-ovi>
>
~/.bashrc
现在你就可以用vi模式使用命令行了。
比如,你可以用vi命令模式进行导航。
按Esc键进入命令模式,然后你就可以使用以下命令:
l-向前移动一个字符h-向后移动一个字符0(零)-把光标移动到该行最前面$-把光标移动到行末w-往前移一个字b-往后移一个字TT服务器技术专题之“Linux管理工具集锦”Page14of45
然后你可以按Esc键退出命令模式,或者像vi一样按A或I键进入插入模式,对命令行进行编辑。
按enter键会执行当前命令。
如果你决定不用vi模式,你可以键入以下命令返回emacs模式:
$set-oemacs
你还可以用命令:
$bind–P
来显示你的所有命令以及它们的按键设置。
你也可以用该bind命令对各种函数设置自己的按键组合。
cd–命令
你可以使用:
$cd–
返回你原来所在的目录,你可以重复使用该命令返回上一级目录。
设置命令的输出路径
有时候你想告诉人们你的命令行发生了什么事情,但是又不想让他们拥有访问权。
有一种快捷、简便的方法可以解决这个问题:
使用脚本和nc命令在网络上显示你的命令行发生了哪些变化,只需输入:
$script-f>
(nc-l8000)
这个命令会把所有在命令行中键入的内容输送到网络上,所有使用监听端口8000的人都能够看到你用nc命令键入的内容。
$nchost8000
文件首次重定向
我喜欢那些让我少打字的技巧。
通常你想要用多种方式处理同一个文件。
使用重定向,我们可以首先指定文件的名字,以及结束时执行的命令。
比如:
$<
/var/log/messagesgrepdhclient$<
/var/log/messagesgrepkernel$<
/var/log/messagesgrepyumTT服务器技术专题之“Linux管理工具集锦”Page15of45
这里我们指定了我们想要预先搜索的文件,然后指定了grep命令和我们想要查找的文本。
现在如果我们想要从历史中检索该命令,我们只需要编辑要再次搜索的文本就可以了。
三个有用的查找(find)命令
最后,我要分享三个我经常使用的、非常有用的查找命令。
Find命令是一个非常强大的小工具,尤其是与-exec选项搭配的时候,它们允许你在查找的结果中执行命令。
我建议你阅读一下find的说明,以便更深入的使用该命令。
第一个命令:
查找并列出当前目录中过去一天修改的所有文件。
$find./-typef-mtime-1-execls-al{}\;
你显然可以修改该命令,以便查找其他地方、不同时间(把-1改成不同的时间)的文件。
第二个命令:
查找文件,然后执行一个基于Perl的寻找-替换功能。
$find.-name'
*.txt'
-typef-execperl-pi-e'
s/goldfish/tiger/g'
{}\;
在这种情况下,我们查找所有扩展名为.txt的文件,并在这些文件中查找单词“goldfish”,把这个单词替换成“tiger”。
最后一个查找命令:
我经常用它从我的路径中递归删除.svn(和其他的)目录。
find.-name"
.svn"
-execrm-rf{}\;
JamesTurnbul译者:
TT服务器技术专题之“Linux管理工具集锦”Page16of45
轻松监控和管理Ubuntu服务器:
随着Ubuntu10.04在2010年4月29日正式发布,Canonical公司同时也发布了它的Lanscape1.5管理服务。
这个服务的目的是什么呢?
答案就是让Ubuntu管理和监控更加简便。
在这篇文章中你将学习到它能做些什么。
Ubuntu逐渐被开发成更容易使用的样式。
但是,直到最近为止,并没有简便的方案用来同时管理和监控多个Ubuntu系统。
为