正在浏览 Linux 命令 里的文章

GNU Screen 是一款免费的终端复用程序,它允许一个用户通过单独的窗口或单独的远程终端会话来访问多个分割的终端会话。这段是引用wikipedia.org的解释,实际上Screen实现的就是在一个会话中再打开多个会话。文字描述的不是很明白,看下面的截图就一清二楚了:

它是如何实现的的,下面介绍操作步骤:

1、远程服务器设置

安装screen:
yum install screen -y    [CentOS/RedHat]
apt-get install screen    [Ubuntu/Debian]

配置screen
vi ~/.screenrc

hardstatus on
hardstatus alwayslastline
startup_message off
termcapinfo xterm ti@:te@
hardstatus string "%{= kG}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %m/%d %C%a "
screen -t bash1 1
screen -t bash2 2
screen -t bash3 3
screen -t bash4 4

上面的配置基本上就是告诉Scree在xterm的下部显示一个状态栏。并且定义指示器的显示方式。并开启四个子shell,名字分别为bash1~4。

2、连接远程服务器

通过SecureCRT连接
设置

这里设置的是连接到SSH服务器自动运行screen程序,从而调用screen的配置文件,启动4个子bash程序。如果不是每次都有这方面的需求的话,也没有必要设置该项,等到想用的时候在执行screen命令也不迟。另外使用screen启动的会话不会因为session的断开而关闭。有关screen的使用参见:使用 screen 管理你的远程会话

Screen中窗口的控制都是使用快捷键来操作,如下:
Ctrl+a n        下一个窗口
Ctrl+a p        上一个窗口
Ctrl+a [1-4]        跳转到指定编号的窗口
Ctrl+a d        断开会话,并不会关闭

查看当前的screen进程
scren -ls
There is a screen on:
9505.main       (Detached)
1 Socket in /var/run/screen/S-root.
关闭指定的screen
kill -9 9505

Linux下连接
先编写一个脚本:
vi remote_screen

orig=`hostname`
echo -e "\033]2;$1\007"
ssh -t $1 screen -S main -xRR -p $2 -q
echo -e "\033]2;$orig\007"

设置可执行
chmod +x remote_screen
mv remote_screen /usr/local/bin/

使用:
remote_screen destination [window_name]

实例:
remote_screen 192.168.108.110
ctrl+a d可以断开会话回到本地shell,当我想重新连接时再运行一遍上面的命令即可。remote_screen命令支持两个参数第二个参数是连接时打开的窗口,如我第一次连接时默认有四个窗口分别为bash1、bash2、bash3、bash4,我断开后第二次连接可以写成remote_screen 192.168.108.110 bash2 这样的话连接后就直接打开了bash2窗口。

备注:

1、连接到screen后可以使用Ctrl+a ? 的方式查看帮助。
2、断开screen后并不是关闭了screen,可以使用screen -ls 查看当前打开的socket有哪些,使用screen -r pid的方式连接已经存在的socket
3、关闭session后screen的进程还会存在,这样我们在执行一些耗费很长时间的命令时就不必再使用nohup命令了
4、screen -ls 后会显示已经存在的screen socket,使用kill -9 pid的方式关闭socket

参考文章:
http://en.wikipedia.org/wiki/GNU_Screen
http://www.ibm.com/developerworks/cn/linux/l-cn-screen/
http://www.earthinfo.org/an-easy-way-to-use-gnu-screen-over-ssh/

原创文章,转载请注明: 转自 http://salogs.com

翻墙基本功

抢沙发

转自:般若黑洞
翻墙越来越难了,但不幸的是,被墙的网站却越来越多,这就意味着:翻墙越来越重要了。
今日统计自己的Firefox Addons,启用TorButton后发现Tor已经用不了。很久以前洋葱头+Tor+TorButton的组合终于无耐的失效。Google一下,马 上就有发现,以下为正文。

使用Tor五步 走:

Step 1.下载安装Easy Tor
Easy Tor这是一个软件套装,集成了Vidalia、Tor及Privoxy。
下载链接:Easy Tor
安装、打开Easy Tor后,以上三个软件自动启动。Vidalia界面为英文,没关系,双击托盘vidalia图标打开控制面板,在Settings—— Appearance——Language中,把系统文字改为简体中文。重启Vidalia后界面即变为中文。

Step 2.安装Autoproxy
Autoproxy这 是一个Firefox扩展,所以你的浏览器必须为Firefox。比起TorButton,Autoproxy的优点是可以根据网站自动判断是否需要使用 代理,所以使用起来非常方便。安装完毕后重启Firefox,会出现一个“添加Autoproxy规则订 阅”的窗口,选定它,选择“订阅"。

Step 3.打开Firefox,启动Easy Tor
直接能够成功自然非常好,但如果发现过程中断,connecting to a relay directory处停滞不前并最终失败这说明我们有 关部门已经针对Tor做了一些处理。道高一尺魔高一丈,我们当然还有办法。因为即使所有已知的 Tor 中继都被屏蔽,也不可能屏蔽所有的网桥

Step4.获得中继网桥地址
此时请确定你有一个gmail邮箱。用 Gmail邮箱写信给bridges@torproject.org, 信件内容为:get bridges,主题随意。马上你会收到回信,打 开,上面写的IP和端口就是你要的桥。
bridges.png
在Vidalia中Stop Tor。在“设定”——“网 络”中选择“我的ISP阻挡了我到Tor的链接”,将邮件中的桥依次添加到下面的 框中

tor.png
Step 5.重新启动Tor,翻墙成功!

使用FG更简单
如果你嫌用Tor太麻烦,可以直接下载FG
解压密码:boreheidong)或者无界解压密 码:boreheidong,使用它登陆服务器的速度要慢一些),省去 了上面关于Tor的一系列步骤。下面以FG为例。

下载运行FG后(它是绿色软件,无需安装,直接运行即可)IE浏览器即可使用代理。对于Firefox用户,安装 Autoproxy仍然是最佳选择(Autoproxy支持FG。点击状态栏右下角的Autoproxy图标,选择首选项,在“代理服务器”中,“选则代 理服务器”,将主服务器换为FG即可。

crontab的时候sudo经常会碰到这个情况,其实修改一下sudo的配置就好了

vi /etc/sudoers (最好用visudo命令)
注释掉 Default requiretty 一行
#Default requiretty

意思就是sudo默认需要tty终端。注释掉就可以在后台执行了。

cw(color wrapper) 是一个有意思的小程序,它会自动给你的 Linux 命令输出添加颜色。例如,下图为笔者在安装 cw 后执行 ping 的结果。

ping

cw 可从其项目主页下载,你也可以通过所用发行版的包管理器来搜索安装。

 

使用方法:

可以利用colorcfg命令对系统进行配置:

syntax: /usr/local/bin/colorcfg [1|2|3]

runlevel 1(unlimited coloring): appends PATH to rc file(s).
runlevel 2(limited coloring): appends NOCOLOR_PIPE to rc file(s).
runlevel 3(restricted coloring): appends CW_SHLVL to rc file(s).

最简单的方法是在~/.bashrc 文件中添加如下内容:

export PATH="/usr/local/lib/cw:$PATH"

 

命令颜色的定义文件在/usr/local/lib/cw/目录下,可以仿照cw的语法自定义颜色。

Vim 插件 NERD tree 允许你在 Vim 编辑器中以树状方式浏览系统中的文件和目录,支持快捷键与鼠标操作,使用起来十分方便。NERD tree 能够以不同颜色高亮显示节点类型,并包含书签、过滤等实用功能。

image

要安装 NERD tree 插件,你只需将下载的 zip 包解压到 ~/.vim 目录即可。

你可以从 Vim 官方网站下载 NERD tree 插件

附加Readme文档:ReadMe

管道操作符把一个 UNIX® 命令连接到另一个命令,从而在命令行上创建专门的程序。但是,管道像是黑箱子,用户看不到从一个命令传递到下一个命令的数据。Pipe Viewer 可以探察管道。本文介绍如何在日常任务中使用它。

UNIX 中最巧妙最强大的功能之一是 shell。shell 比 GUI 高效得多,还可以通过编写脚本自动执行许多任务。更好的是,管道操作符可以在命令行上组装出专门的程序。管道按次序把命令连接起来,前一个命令的输出作为后一个命令的输入。

但是,管道有一个大缺点:它像是黑箱子。如果把命令连接在一起,那么只有序列中最后一个命令生成的输出能够反映管道的进度。当然,可以在序列中插入tee,还可以用 tail 查看输出文件的增长,但是这些解决方案都不完善,会把多个阶段的标准输出 (stdout) 和标准错误 (stderr) 混在一起。另外,这两个解决方案比较粗糙,很可能无法表明每个步骤所需的计算量。

当然,可以把复杂的序列分解为多个单独的步骤,每个步骤有自己的中间输出文件。的确,如果希望检查每个步骤的结果,分解是最理想的方法。编写一个脚本,为每个步骤生成一个数据文件,在每对步骤之间使用数据文件作为输入,以最后的文件作为最终结果。但是,这种做法浪费了命令行的灵活性。

我们需要的是一个可以嵌入命令行中的进度度量工具。理想情况下,可以对每个步骤重复使用这个工具,它应该是开放源码的,可以移植到 Linux® 和 Mac OS X 等多种 UNIX 变体上。

好了,不必再盼望了:Pipe Viewer (pv) 就是这样的工具。它由系统管理员 Andrew Wood 编写,经过其他许多开发人员改进,前后历时四年。它提供了探察命令行管道的能力。它的 项目页面 上说,pv “可以插入管道中两个进程之间,从而显示传递数据的速度、已经花费的时间以及剩余时间。” 更引人注目的是,可以在同一个命令行中插入多个 pv 实例以显示相对吞吐量。

本文介绍如何在 UNIX 系统上构建 pv,以及如何在简单和复杂的命令行组合中应用它。但是,我们首先回顾一下管道连接进程的方式。

UNIX 管道:进程的连接

图 1 说明通过创建管道连接两个独立进程的步骤。

1. 通过创建管道连接两个进程
clip_image001

首先,在第一阶段,初始进程从标准输入 stdin 读取数据,把输出写到 stdout,把错误发送到 stderr。stdin、stdout 和 stderr 都是文件描述符,即文件的句柄。文件句柄上的每个操作(例如 open、read、write、rewind、truncate 和 close)影响文件的状态。

接下来,在第二阶段,初始进程创建一个管道。管道由一个队列和两个文件描述符(一个用于数据入列,另一个用于数据出列)组成。管道是先入先出 (FIFO) 数据结构。

管道本身没什么用;它的作用是连接数据生成者和数据消费者。因此,初始进程在第三阶段生成(创建)第二个进程,它作为数据消费者。

在第四阶段(假设新的进程是消费者),原来的进程把它的 stdout 替换为管道的生成者端,让刚生成的进程连接管道的消费者端,以它作为自己的 stdin。经过这些调整之后,原来的进程(现在的生成者)执行的每个 write 操作都进入队列,然后由新进程(现在的消费者)读取。

在使用命令行管道操作符 (|) 连接两个实用程序时,shell 就是采用第一到第四阶段这样的过程,但是 shell 为每个实用程序生成新进程,其本身并不执行作业控制。

例如,图 2 说明如何通过管道连接 find、grep 和 wc 命令,从而寻找名称以小写字母 a 开头的所有文件并统计其数量。shell 仍然是独立的;find 是生成者,grep 作为 find 的消费者和 wc 的生成者。wc 也同时作为消费者和生成者:它消费来自 grep 的数据并向 stdout 生成输出。通常,shell 把 stdout 连接到一个终端,但是也可以把输出重定向到文件。

2. 使用管道连接命令
clip_image002

如果希望探察两个 UNIX 进程,那么要创建两个管道,重新连接每个进程的文件描述符,让它们同时作为生成者和消费者。图 3 说明覆盖这两个进程的 stdin 和 stdout 的进程间交换。

3. 查看两个 UNIX 进程
clip_image003

简单回顾管道之后,我们来看看 Pipe Viewer。

Pipe Viewer:可观察的管道

Pipe Viewer 是一个开放源码应用程序。可以下载它的源代码并从头构建这个应用程序,也可以从您的 UNIX 发行版的存储库获得二进制代码(如果有的话)。

要想从头构建,首先从 Pipe Viewer 项目页面(见 参考资料)下载最新的源代码压缩文件。到 2009 年 9 月中旬,最新版本是 1.1.4。解压压缩文件,进入刚创建的目录,输入 ./configure,然后输入 make 和 sudo make install。在默认情况下,构建过程会在 /usr/local/bin 中安装一个名为 pv 的可执行文件。(输入 ./configure --help 可以看到配置选项的列表)。清单 1 给出安装命令。

清单 1. Pipe Viewer 安装命令

1
2
3
4
5
6
7
8
$ wget http://pipeviewer.googlecode.com/files/pv-1.1.4.tar.bz2
$ tar xjf pv-1.1.4.tar.bz2
$ cd pv-1.1.4
$ ./configure
$ make
$ sudo make install
$ which pv
/usr/local/bin/pv

要想从存储库获得 pv,应该使用发行版的包管理程序搜索 pv 或 pipe viewer。例如,使用 Ubuntu version 9 的 APT 包管理程序执行搜索会产生以下输出:

1
2
$ apt-cache search part viewer
pv - Shell pipeline element to meter data passing through

接下来,使用包管理程序下载并安装包。对于 Ubuntu,命令是 apt-get install:

1
$ sudo apt-get install pv

安装完成之后,试一下 pv。最简单的使用方法是用 pv 替代传统的 cat 实用程序,把数据提供给另一个程序并测量总吞吐量。例如,可以使用 pv 监视一个长时间的压缩操作:

1
2
3
4
$ ls -lh listings.txt
-r--r--r--  1 supergiantrobot  staff   109M Sep  1 20:47 listings.txt
$ pv listings.txt | gzip > listings.gz
96.1MB 0:00:09 [11.3MB/s] [=====================>     ] 87% ETA 0:00:01

启动这个命令时,pv 显示一个进度条并不断更新。典型的 pv 输出从左到右依次显示目前已经处理的数据量、经过的时间、吞吐量(以 MB/s 为单位)、工作进度的图形表示和数字表示以及估计的剩余时间。上面的显示表明,在工作 9 秒之后,已经处理了 109MB 中的 96.1MB,剩余数据大约为文件的 13%。

在默认情况下,pv 会显示它能够计算出值的所有状态指标。例如,如果 pv 的输入不是文件,也没有手工指定大小,进度条会从左到右移动以表示有活动,但是由于没有总大小,它无法计算出已经完成的百分比。例如:

1
2
3
$ ssh faraway tar cf - projectx | pv --wait > projectx.tar
Password:
4.34MB 0:00:07 [ 611kB/s] [      <=>                  ]

这个示例在远程机器上运行 tar,把远程命令的输出发送给本地系统以创建 projectx.tar。因为 pv 无法计算出要传输的总字节数,它只能显示到目前为止的吞吐量、经过的时间和一个反映活动的特殊标志。只要有数据流过,就显示从左到右移动的小 “车” (<=>)。

--wait 选项把进度的显示延迟到实际收到第一个字节时。在这里,--wait 是有意义的,因为 ssh 命令可能提示输入密码。

可以根据需要用各种标志启用不同的指标:

1
2
3
4
$ ssh faraway tar cf - projectx | \
pv --wait --bytes > projectx.tar
Password:
  268kB

这个命令用 --bytes 显示正在处理的字节数。其他选项是 --progress、--timer、--eta、--rate 和 --numeric。如果指定一个或多个显示选项,就会自动地禁用其他所有(未指定的)指标。

pv 有另一种简单的使用方法。--rate-limit 选项可以限制吞吐量。这个选项的参数是一个数字和一个后缀,比如 m 表示 MB/s:

1
2
$ ssh faraway tar cf - projectx | \
  pv --wait --quiet --rate-limit 1m > projectx.tar

这个命令隐藏所有指标 (--quiet) 并把吞吐量限制为 1MB/s。

Pipe Viewer 的高级用法

到目前为止,示例都是使用 Pipe Viewer 的单一实例作为一对命令中的生成者或消费者。但是,也可以使用更复杂的组合。可以在同一个命令行上多次使用 pv,但是有一些限制。具体地说,必须使用 --name 命名 每个 pv 实例,还必须使用 --cursor 启用多行模式。这两个选项的组合创建一系列带标签的输出行,每个命名的实例一行。

例如,假设希望同时单独地监视数据传输和压缩的进度。可以给前一个操作分配一个 pv 实例,给后一个操作分配另一个实例,比如:

1
2
 $ ssh faraway tar cf - projectx | pv --wait --name ssh | \
  gzip | pv --wait --name gzip > projectx.tgz

输入密码之后,Pipe Viewer 命令生成两行进度显示:

1
2
 ssh: 4.17MB 0:00:07 [ 648kB/s] [     <=>             ]
       gzip:  592kB 0:00:06 [62.1kB/s] [   <=>               ]

第一行的标签是 ssh,显示传输的进度;第二行的标签是 gzip,显示压缩的进度。因为这两个命令都不能确定要操作的字节数,所以每行上只显示累计的总数据量和活动条。

如果知道或者能够估计要操作的字节数,那么可以使用 --size 选项。添加这个选项会在进度条中提供更细粒度的信息。

例如,如果希望监视一个大型存档任务的进度,可以使用其他 UNIX 实用程序计算原文件的总大小。df 实用程序可以显示整个文件系统的统计数据,du 可以计算任意深度的层次结构的大小:

1
$ tar cf - work | pv --size `du -sh work | cut -f1` > work.tar

在这里,子 shell 命令 du -sh work | cut -f1 以与 pv 兼容的格式生成工作目录的总大小。du -h 产生人习惯的表示格式,比如 17M 表示 17 MB,这种格式适合在 pv 中使用。(ls 和 df 命令也支持通过 -h 产生人可读的格式)。因为 pv 现在知道将通过管道传输的字节数,所以它可以显示真正的进度条:

1
700kB 0:00:07 [ 100kB/s] [>                    ]  4% ETA 0:02:47

最后,还有一种很有用的技术。除了统计字节数之外,Pipe Viewer 还可以通过计算行数 显示进度。如果指定 --line-mode,pv 会在每次遇到换行符时更新进度条。还可以提供 --size 和预期的行数。

例如,用户经常使用 find 在大范围内寻找很小的东西,比如在大量应用程序代码中寻找使用某个系统调用的所有地方。在这种情况下,可能执行下面这样的命令:

1
$ find . -type f -name '*.c' -exec grep --files-with-match fopen \{\} \; > results

这个命令会找到包含字符串 fopen 的所有 C 源代码文件并输出文件名。输出收集在名为 results 的文件中。为了反映活动,在这个命令中添加 pv:

1
2
$ find . -type f -name '*.c' -exec grep --files-with-match fopen \{\} \; | \
  pv --line-mode > results

行模式很有意义,因为 find 等许多 UNIX 命令操作文件的元数据,而不是文件的内容。行模式很适合那些复制或压缩大型文件集的系统管理脚本。

一般情况下,只要可以度量速度,就可以在命令行和脚本中插入 Pipe Viewer。但是,可能需要发挥创造性。例如,要度量复制一个目录的速度,应该把 cp -pr 改为 tar:

1
2
$ # an equivalent of cp -pr old/somedir new
$ (cd old; tar cf - somedir) | pv | (cd new; tar xf - )

对于 wget、curl 和 scp 等网络实用程序,也可以考虑使用行模式。例如,可以使用 pv 度量大小可变的上传操作的进度。因为许多网络工具可以从文件接收输入,可以使用文件的长度作为 --size 选项的参数。

结束语

Pipe Viewer 是不太为人所知的宝贵工具之一,但是一旦掌握了它,您就会发现离不开它了。您可能在平时使用命令行时发现一些需要应用 pv 的地方,但是更常用的地方是自动化脚本。不再需要盯着闪动的光标长时间等待了,现在可以通过插入 Pipe Viewer 提供实时的反馈。Pipe Viewer 让您能够监视原本隐秘的过程。

参考资料

学习

  • 对话 UNIX:阅读本系列中的其他部分。
  • UNIX shells:了解关于 UNIX shell 的更多信息。
  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
  • 技术书店 浏览关于这些主题和其他技术主题的图书。

获得产品和技术

Pipe Viewer:了解关于 Pipe Viewer 的更多信息并下载它。

MultiTail是个用来实现同时监视多个文件、类似tail命令的功能的软件。该软件的主页地址为http://www.vanheusden.com/multitail/。他和tail的差别就是他会在控制台中打开多个窗口,这样使同时监视多个日志文件成为可能。本文将讲述MultiTail的应用技巧。

基本应用

使用MultiTail的命令是"multitail [-i] file"。MultiTail将会在终端中显示文件内容,在屏幕底部会显示被打开文件的文件名、大小和最新修改时间。用户能使用"-d"参数确保该状态行保持不变,或使用"-D"来关闭该状态行。如果要指定多个文件,则命令如下:
# multitail [-i] file1 [-i] file2

各个窗口都具有状态条。初始启动MultiTail时,各个窗口是上下排列,能使用"v"命令来修改排列模式。

滚动文件

通过"b"命令用户能在被打开的文件中进行滚动。如果MultiTail打开多个窗口时,"b"命令将首先打开一个文件选择器。在选择好要查看的文件以后,MultiTail将会再次打开一个缓冲窗口,显示要滚动查看的文件内容。用户能使用键盘的上下箭头来查看文件内容,使用"x"或"q"来退出缓冲窗口。缓冲窗口只能显示文件最后100行内容,而不是整个文件。用户能使用"m"命令来修改该限制。在用户输入"m"以后,MultiTail会提示输入新的缓冲值,例如1000。当然也能在启动时使用"-m value"命令来设置缓冲大小,不过他只对仅跟该参数的文件起作用,而使用"-M value"能对后面指定的所有文件设置缓冲大小。

合并文件内容

MultiTail有一个"-I"参数。他会合并两个或更多的文件内容。举例如下:
#multitail /var/log/apache/access.log -I /var/log/apache/error.log

这个示例将合并两个文件的输出到同一个窗口中。这非常有用,例如用户希望查看Apache出现错误之前发生了什么事情,这样能同时查看访问日志和错误日志的输出了。

查看外部程式的输出

MultiTail不仅能监视文件内容,而且还能在一个或多个窗口中查看其他程式的输出,例如脚本、程式等。为了查看外部程式输出,需要使用"-l"参数。下面举两个例子:
#multitail -l ls
#multitail -l "ping localhost"

当外部命令有自己的参数时,则需要使用双引号把外部命令包起来,以和multitail的参数相差别。在第一个示例中,外部命令"ls"运行完毕以后MultiTail会自动关闭窗口。使用"-z"参数使MultiTail在外部程式结束以后,不弹出外部程式结束通知消息窗口,而是直接进入命令选单。和"-I file"类似,"-L command"参数同样会将外部程式的输出和其他文件或命令的输出合并。

添加颜色

为方便用户查看文件,MultiTail能彩色显示被监视的文件内容。以"-c"启动 MultiTail,MultiTail将会以彩色显示"-c"后面所跟的文件。如果用户希望在日志中查看某个特定程式的输出内容,则能选用"-cs"参数。"-cS colorscheme"参数则是指定使用哪种配色方案。配色方案是在multitail.conf文件中指定。默认情况下multitail.conf 保存在/etc目录下。在MultiTail中用户能使用规则表达式来定义配色方案,也能使用"-z"指定其他设置文件。示例如下:
colorscheme:postfix
cs_re:yellow:status=sent
cs_re:magenta:queue active

第一行指定这是postfix文件的配色方案。"cs_re"表示该行定义了规则表达式和对应的颜色。"cs_re:yellow:status=sent"表示当MultiTail遇见文本"status=sent"时,就以黄色显示该内容;"cs_re:magenta:queue active"则表示当遇见文本"queue active"时,就以紫红色来显示。

过滤文件

MultiTail还提供使用正则表达式来过滤文件内容的功能。为了确保兼容性,他使用了和"grep"命令类似的参数,以方便用户使用。"-e"参数后指定一个正则表达式,"-v"表示反选,举例如下:
#multitail -e "gnu-pop3d"/var/log/messages
#multitail -v -e "ssh"-v -e "gnu-pop3d" -e "localhost"/var/log/messages

第一个示例表示MultiTail仅仅显示/var/log/messages中包含"gnu-pop3d"字串的行;第二个示例表示仅仅显示不包含"ssh"和"gnu-pop3d",不过包含"localhost"的行。

tune2fs

抢沙发

tune2fs是linux下面重要的文件系统调整工具,其中的几个选项解释如下:

-c:表示文件系统在mount次数达到设定后,需要运行fsck检查文件系统。
-i:文件系统的检查间隔时间。系统在达到时间间隔时,自动检查文件系统。
-l:显示文件系统的很多参数。
-j:转换为ext3文件系统。
-m: Set the percentage of reserved filesystem blocks。 设置保留的空间百分比
-o: Set or clear the indicated default mount options in the filesystem.设置默认加载参数

通常如果使用ext3文件系统的话,使用-c 0关掉mount次数达到后的文件系统检查。

tune2fs -m 10 /dev/sda1
tune2fs -o acl,user_xattr /dev/sda1
tune2fs -i 0 -c0 /dev/sda1

dumpe2fs

抢沙发

显示 ext2/ext3文件系统信息

[root@experiment ~]# dumpe2fs /dev/sda2 | less
dumpe2fs 1.39 (29-May-2006)
Filesystem volume name:   /1
Last mounted on:          &lt;not available&gt;
Filesystem UUID:          9c2a6086-3305-4709-a442-c27be9cb57d2
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              5124480
Block count:              5120718
Reserved block count:     256035
Free blocks:              2684471
Free inodes:              4946305
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1022
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         32640
Inode blocks per group:   1020
Filesystem created:       Tue Aug  4 23:59:44 2009
Last mount time:          Mon Sep 28 16:35:32 2009
Last write time:          Mon Sep 28 16:35:32 2009
Mount count:              12
Maximum mount count:      -1
Last checked:             Tue Aug  4 23:59:44 2009
Check interval:           0 (&lt;none&gt;)
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               128
Journal inode:            8
First orphan inode:       3264050
Default directory hash:   tea
Directory Hash Seed:      ed55120f-56fa-4e8b-b004-b65acd433aa0
Journal backup:           inode blocks
Journal size:             128M

Group 0: (Blocks 0-32767)
Primary superblock at 0, Group descriptors at 1-2
Reserved GDT blocks at 3-1024
Block bitmap at 1025 (+1025), Inode bitmap at 1026 (+1026)
Inode table at 1027-2046 (+1027)

...

...

...

mkfs.ext3

抢沙发

直接将磁盘格式化为ext3格式

用法与mke2fs相似
Usage: mkfs.ext3 [-c|-t|-l filename] [-b block-size] [-f fragment-size]
[-i bytes-per-inode] [-j] [-J journal-options] [-N number-of-inodes]
[-m reserved-blocks-percentage] [-o creator-os] [-g blocks-per-group]
[-L volume-label] [-M last-mounted-directory] [-O feature[,...]]
[-r fs-revision] [-R options] [-qvSV] device [blocks-count]