<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[乌托邦——思想贩的自留地 - 读书笔记]]></title>
<link>http://www.5tobang.com/</link>
<description><![CDATA[人生就是如此]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[caijianchao@gmail.com(超哥)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>乌托邦——思想贩的自留地</title>
	<url>http://www.5tobang.com/images/logos.gif</url>
	<link>http://www.5tobang.com/</link>
	<description>乌托邦——思想贩的自留地</description>
</image>

			<item>
			<link>http://www.5tobang.com/article.asp?id=93</link>
			<title><![CDATA[rlwrap终极解决方案]]></title>
			<author>caijianchao@gmail.com(nero)</author>
			<category><![CDATA[读书笔记]]></category>
			<pubDate>Fri,28 Aug 2009 10:48:10 +0800</pubDate>
			<guid>http://www.5tobang.com/default.asp?id=93</guid>
		<description><![CDATA[当在Linux Shell中运行SQL*Plus的时候，并不提供浏览历史命令行的功能。相反的，在Windows操作系统上，当在DOS命令窗口中运行SQL*Plus的时候，可以使用向上，向下键来跳回之前已经执行过的SQL语句。<br/>但是rlwrap可以实现，于是乎去下载了最新版的rlwrap-0.30.tar.gz,按照网上的步骤，结果编译出错，就是不行啊，在ITPUB，和CU论坛发帖问，也是无人解决～自己也琢磨了半天就是无解，于是准备换个思路用旧版本试试看，一试居然成功了，顶不住啊，感觉是柳暗花明又一村啊～<br/>安装步骤如下：<br/><br/>1.下载rlwrap-0.24，见附件，^_^<img src="http://www.5tobang.com/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.5tobang.com/attachments/month_0908/rlwrap-0.24.tar.gz" target="_blank">点击下载此文件</a><br/>～<br/>[root@nero /]# cd rlwrap-0.24<br/><br/>[root@nero rlwrap-0.24]# ls<br/>aclocal.m4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ChangeLog&nbsp;&nbsp;&nbsp;&nbsp;configure.ac&nbsp;&nbsp;INSTALL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;README&nbsp;&nbsp;tools<br/>AUTHORS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; completions&nbsp;&nbsp;COPYING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Makefile.am&nbsp;&nbsp;src<br/>bash30-005.patch&nbsp;&nbsp;config.h.in&nbsp;&nbsp;distribution&nbsp;&nbsp;Makefile.in&nbsp;&nbsp;test<br/>BUGS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;configure&nbsp;&nbsp;&nbsp;&nbsp;doc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NEWS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TODO<br/>2.进行配置<br/>[root@nero rlwrap-0.24]# ./configure<br/>checking build system type... i686-pc-linux-gnu<br/>checking host system type... i686-pc-linux-gnu<br/>checking for a BSD-compatible install... /usr/bin/install -c<br/>checking whether build environment is sane... yes<br/>checking for gawk... gawk<br/>checking whether make sets $(MAKE)... yes<br/>checking for a BSD-compatible install... /usr/bin/install -c<br/>checking whether make sets $(MAKE)... (cached) yes<br/>ENABLE ENZ &lt;&gt;<br/>ENABLE ENZ &lt;&gt;<br/>checking for gcc... gcc<br/>checking for C compiler default output file name... a.out<br/>checking whether the C compiler works... yes<br/>checking whether we are cross compiling... no<br/>checking for suffix of executables...<br/>checking for suffix of object files... o<br/>checking whether we are using the GNU C compiler... yes<br/>checking whether gcc accepts -g... yes<br/>checking for gcc option to accept ANSI C... none needed<br/>checking for style of include used by make... GNU<br/>checking dependency style of gcc... gcc3<br/>checking how to run the C preprocessor... gcc -E<br/>checking for perl... /usr/bin/perl<br/>checking for strip... strip<br/>checking for egrep... grep -E<br/>checking for ANSI C header files... yes<br/>checking for sys/wait.h that is POSIX.1 compatible... yes<br/>checking for sys/types.h... yes<br/>checking for sys/stat.h... yes<br/>checking for stdlib.h... yes<br/>checking for string.h... yes<br/>checking for memory.h... yes<br/>checking for strings.h... yes<br/>checking for inttypes.h... yes<br/>checking for stdint.h... yes<br/>checking for unistd.h... yes<br/>checking errno.h usability... yes<br/>checking errno.h presence... yes<br/>checking for errno.h... yes<br/>checking fcntl.h usability... yes<br/>checking fcntl.h presence... yes<br/>checking for fcntl.h... yes<br/>checking for stdlib.h... (cached) yes<br/>checking for string.h... (cached) yes<br/>checking sys/ioctl.h usability... yes<br/>checking sys/ioctl.h presence... yes<br/>checking for sys/ioctl.h... yes<br/>checking for sys/wait.h... (cached) yes<br/>checking stddef.h usability... yes<br/>checking stddef.h presence... yes<br/>checking for stddef.h... yes<br/>checking termios.h usability... yes<br/>checking termios.h presence... yes<br/>checking for termios.h... yes<br/>checking for unistd.h... (cached) yes<br/>checking time.h usability... yes<br/>checking time.h presence... yes<br/>checking for time.h... yes<br/>checking getopt.h usability... yes<br/>checking getopt.h presence... yes<br/>checking for getopt.h... yes<br/>checking whether term.h exists and compiles... yes<br/>checking whether your getopt() correctly understands double colons in option string... yes<br/>checking for an ANSI C-conforming const... yes<br/>checking for pid_t... yes<br/>checking whether time.h and sys/time.h may both be included... yes<br/>checking whether gcc needs -traditional... no<br/>checking return type of signal handlers... void<br/>checking for getopt_long... yes<br/>checking for sel&#101;ct... yes<br/>checking for snprintf... yes<br/>checking for strlcpy... no<br/>checking for strlcat... no<br/>checking for strnlen... yes<br/>checking for getopt_long... (cached) yes<br/>checking for setsid... yes<br/>checking for isastream... yes<br/>checking for mkstemp... yes<br/>checking for system... yes<br/>checking for openpty... no<br/>checking for _getpty... no<br/>checking for grantpt... yes<br/>checking for unlockpt... yes<br/>checking for getpt... yes<br/>checking for pty/tty type... GLIBC<br/>configure: checking for pty ranges...<br/>checking for tgetent... no<br/>checking for tgetent in -lcurses... yes<br/>checking for readline in -lreadline... yes<br/>checking whether your readline knows about rl_set_screen_size... yes<br/>Will rlwrap find command&#39;s working directory under /proc/&lt;commands pid&gt;/cwd? let&#39;s see...<br/>checking for /proc/9130/cwd/configure.ac... yes<br/><br/><br/>configure: creating ./config.status<br/>config.status: creating Makefile<br/>config.status: creating doc/Makefile<br/>config.status: creating src/Makefile<br/>config.status: creating doc/rlwrap.man<br/>config.status: creating distribution/rlwrap.spec<br/>config.status: creating config.h<br/>config.status: executing depfiles commands<br/><br/>Now do:<br/>&nbsp;&nbsp;&nbsp;&nbsp;make (or gmake)&nbsp;&nbsp;to build rlwrap<br/>&nbsp;&nbsp;&nbsp;&nbsp;make check&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for instructions how to test it<br/>&nbsp;&nbsp;&nbsp;&nbsp;make install&nbsp;&nbsp;&nbsp;&nbsp; to install it<br/><br/>3.编译<br/><br/>[root@nero rlwrap-0.24]# make<br/>make&nbsp;&nbsp;all-recursive<br/>make[1]: Entering directory `/rlwrap-0.24&#39;<br/>Making all in doc<br/>make[2]: Entering directory `/rlwrap-0.24/doc&#39;<br/>sed -e &#39;s#@DATADIR@#/usr/local/share#&#39;&nbsp;&nbsp;rlwrap.man &gt; rlwrap.1<br/>make[2]: Leaving directory `/rlwrap-0.24/doc&#39;<br/>Making all in src<br/>make[2]: Entering directory `/rlwrap-0.24/src&#39;<br/>source=&#39;main.c&#39; object=&#39;main.o&#39; libtool=no \<br/>depfile=&#39;.deps/main.Po&#39; tmpdepfile=&#39;.deps/main.TPo&#39; \<br/>depmode=gcc3 /bin/sh ../tools/depcomp \<br/>gcc -DHAVE_CONFIG_H -I. -I. -I..&nbsp;&nbsp;&nbsp;&nbsp;-DDATADIR=\&#34;/usr/local/share\&#34;&nbsp;&nbsp;-g -O2 -c `test -f &#39;main.c&#39; || echo &#39;./&#39;`main.c<br/>source=&#39;signals.c&#39; object=&#39;signals.o&#39; libtool=no \<br/>depfile=&#39;.deps/signals.Po&#39; tmpdepfile=&#39;.deps/signals.TPo&#39; \<br/>depmode=gcc3 /bin/sh ../tools/depcomp \<br/>gcc -DHAVE_CONFIG_H -I. -I. -I..&nbsp;&nbsp;&nbsp;&nbsp;-DDATADIR=\&#34;/usr/local/share\&#34;&nbsp;&nbsp;-g -O2 -c `test -f &#39;signals.c&#39; || echo &#39;./&#39;`signals.c<br/>source=&#39;utils.c&#39; object=&#39;utils.o&#39; libtool=no \<br/>depfile=&#39;.deps/utils.Po&#39; tmpdepfile=&#39;.deps/utils.TPo&#39; \<br/>depmode=gcc3 /bin/sh ../tools/depcomp \<br/>gcc -DHAVE_CONFIG_H -I. -I. -I..&nbsp;&nbsp;&nbsp;&nbsp;-DDATADIR=\&#34;/usr/local/share\&#34;&nbsp;&nbsp;-g -O2 -c `test -f &#39;utils.c&#39; || echo &#39;./&#39;`utils.c<br/>source=&#39;readline.c&#39; object=&#39;readline.o&#39; libtool=no \<br/>depfile=&#39;.deps/readline.Po&#39; tmpdepfile=&#39;.deps/readline.TPo&#39; \<br/>depmode=gcc3 /bin/sh ../tools/depcomp \<br/>gcc -DHAVE_CONFIG_H -I. -I. -I..&nbsp;&nbsp;&nbsp;&nbsp;-DDATADIR=\&#34;/usr/local/share\&#34;&nbsp;&nbsp;-g -O2 -c `test -f &#39;readline.c&#39; || echo &#39;./&#39;`readline.c<br/>source=&#39;pty.c&#39; object=&#39;pty.o&#39; libtool=no \<br/>depfile=&#39;.deps/pty.Po&#39; tmpdepfile=&#39;.deps/pty.TPo&#39; \<br/>depmode=gcc3 /bin/sh ../tools/depcomp \<br/>gcc -DHAVE_CONFIG_H -I. -I. -I..&nbsp;&nbsp;&nbsp;&nbsp;-DDATADIR=\&#34;/usr/local/share\&#34;&nbsp;&nbsp;-g -O2 -c `test -f &#39;pty.c&#39; || echo &#39;./&#39;`pty.c<br/>source=&#39;completion.c&#39; object=&#39;completion.o&#39; libtool=no \<br/>depfile=&#39;.deps/completion.Po&#39; tmpdepfile=&#39;.deps/completion.TPo&#39; \<br/>depmode=gcc3 /bin/sh ../tools/depcomp \<br/>gcc -DHAVE_CONFIG_H -I. -I. -I..&nbsp;&nbsp;&nbsp;&nbsp;-DDATADIR=\&#34;/usr/local/share\&#34;&nbsp;&nbsp;-g -O2 -c `test -f &#39;completion.c&#39; || echo &#39;./&#39;`completion.c<br/>source=&#39;term.c&#39; object=&#39;term.o&#39; libtool=no \<br/>depfile=&#39;.deps/term.Po&#39; tmpdepfile=&#39;.deps/term.TPo&#39; \<br/>depmode=gcc3 /bin/sh ../tools/depcomp \<br/>gcc -DHAVE_CONFIG_H -I. -I. -I..&nbsp;&nbsp;&nbsp;&nbsp;-DDATADIR=\&#34;/usr/local/share\&#34;&nbsp;&nbsp;-g -O2 -c `test -f &#39;term.c&#39; || echo &#39;./&#39;`term.c<br/>source=&#39;ptytty.c&#39; object=&#39;ptytty.o&#39; libtool=no \<br/>depfile=&#39;.deps/ptytty.Po&#39; tmpdepfile=&#39;.deps/ptytty.TPo&#39; \<br/>depmode=gcc3 /bin/sh ../tools/depcomp \<br/>gcc -DHAVE_CONFIG_H -I. -I. -I..&nbsp;&nbsp;&nbsp;&nbsp;-DDATADIR=\&#34;/usr/local/share\&#34;&nbsp;&nbsp;-g -O2 -c `test -f &#39;ptytty.c&#39; || echo &#39;./&#39;`ptytty.c<br/>gcc -DDATADIR=\&#34;/usr/local/share\&#34;&nbsp;&nbsp;-g -O2&nbsp;&nbsp; -o rlwrap&nbsp;&nbsp;main.o signals.o utils.o readline.o pty.o completion.o term.o ptytty.o&nbsp;&nbsp;-lreadline -lcurses<br/>make[2]: Leaving directory `/rlwrap-0.24/src&#39;<br/>make[2]: Entering directory `/rlwrap-0.24&#39;<br/>make[2]: Nothing to be done for `all-am&#39;.<br/>make[2]: Leaving directory `/rlwrap-0.24&#39;<br/>make[1]: Leaving directory `/rlwrap-0.24&#39;<br/><br/>4.安装<br/><br/>[root@nero rlwrap-0.24]# make install<br/>Making install in doc<br/>make[1]: Entering directory `/rlwrap-0.24/doc&#39;<br/>make[2]: Entering directory `/rlwrap-0.24/doc&#39;<br/>make[2]: Nothing to be done for `install-exec-am&#39;.<br/>/bin/sh ../tools/mkinstalldirs /usr/local/man/man1<br/>mkdir -p -- /usr/local/man/man1<br/> /usr/bin/install -c -m 644 ./rlwrap.1 /usr/local/man/man1/rlwrap.1<br/>make[2]: Leaving directory `/rlwrap-0.24/doc&#39;<br/>make[1]: Leaving directory `/rlwrap-0.24/doc&#39;<br/>Making install in src<br/>make[1]: Entering directory `/rlwrap-0.24/src&#39;<br/>make[2]: Entering directory `/rlwrap-0.24/src&#39;<br/>/bin/sh ../tools/mkinstalldirs /usr/local/bin<br/>&nbsp;&nbsp;/usr/bin/install -c rlwrap /usr/local/bin/rlwrap<br/>make[2]: Nothing to be done for `install-data-am&#39;.<br/>make[2]: Leaving directory `/rlwrap-0.24/src&#39;<br/>make[1]: Leaving directory `/rlwrap-0.24/src&#39;<br/>make[1]: Entering directory `/rlwrap-0.24&#39;<br/>make[2]: Entering directory `/rlwrap-0.24&#39;<br/>make[2]: Nothing to be done for `install-exec-am&#39;.<br/>/bin/sh ./tools/mkinstalldirs /usr/local/share/rlwrap<br/>mkdir -p -- /usr/local/share/rlwrap<br/> /usr/bin/install -c -m 644 completions/ftp /usr/local/share/rlwrap/ftp<br/> /usr/bin/install -c -m 644 completions/testclient /usr/local/share/rlwrap/testclient<br/>make[2]: Leaving directory `/rlwrap-0.24&#39;<br/>make[1]: Leaving directory `/rlwrap-0.24&#39;<br/><br/>5.OK了<br/><br/>[root@nero rlwrap-0.24]# rlwrap<br/>Usage: rlwrap [options] command ...<br/><br/>Options:<br/>&nbsp;&nbsp; -a, --always-readline[=password:]<br/>&nbsp;&nbsp; -b, --break-chars &lt;chars&gt;<br/>&nbsp;&nbsp; -c, --complete-filenames<br/>&nbsp;&nbsp; -C, --command-name &lt;name|N&gt;<br/>&nbsp;&nbsp; -f, --file &lt;file&gt;<br/>&nbsp;&nbsp; -h, --help<br/>&nbsp;&nbsp; -H, --history-filename &lt;file&gt;<br/>&nbsp;&nbsp; -i, --case-insensitive<br/>&nbsp;&nbsp; -l, --logfile &lt;file&gt;<br/>&nbsp;&nbsp; -n, --no-warnings<br/>&nbsp;&nbsp; -m, --multi-line[=newline substitute]<br/>&nbsp;&nbsp; -r, --remember<br/>&nbsp;&nbsp; -v, --version<br/>&nbsp;&nbsp; -s, --histsize &lt;size&gt;&nbsp;&nbsp;(negative: readonly)<br/><br/>bug reports, suggestions, up&#100;ates:<br/><a href="http://utopia.knoware.nl/~hlub/uck/rlwrap/" target="_blank" rel="external">http://utopia.knoware.nl/~hlub/uck/rlwrap/</a><br/>[root@nero rlwrap-0.24]# vi /home/oracle/.bash_profile<br/>添加<br/>alias sqlplus=&#39;rlwrap sqlplus&#39;<br/>alias rman=&#39;rlwrap rman&#39;<br/>[root@nero rlwrap-0.24]# su - o&#114;acle<br/>&#39;2.70&#39;*orcl-/home/oracle&gt;sqlplus / as sysdba<br/><br/><br/><br/>OK，大功告成，现在就具备了，记忆历史命令行的功能，大功告成了～<br/><br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.5tobang.com/article.asp?id=92</link>
			<title><![CDATA[Oracle 9i&amp;10g编程艺术1]]></title>
			<author>caijianchao@gmail.com(nero)</author>
			<category><![CDATA[读书笔记]]></category>
			<pubDate>Thu,27 Aug 2009 12:04:41 +0800</pubDate>
			<guid>http://www.5tobang.com/default.asp?id=92</guid>
		<description><![CDATA[每本书的开头是哥们作序，然后作者自序，呵呵，其实就是互相吹捧啦，不过吹的还不错啊，现摘要经典吹水语句～～<br/>* 不要相信神话，要自己思考。&nbsp;&nbsp;<br/>* 不要墨守成规，所有人都知道的事情其实很可能是错的！&nbsp;&nbsp;<br/>* 不要相信传言，要自己测试，根据经过证明的示例做出决定。<br/>* 将问题分解为更简单的小问题，再把每一步的答案组合为一个优秀、高效的解决方案。&nbsp;&nbsp;<br/>* 如果数据库能更好、更快地完成工作，就不要事必躬亲地自己编写程序来完成。&nbsp;&nbsp;<br/>* 理解理想和现实之间的差距。&nbsp;&nbsp;<br/>* 对于公司制定的未加证实的技术标准，要敢于提出质疑。&nbsp;&nbsp;<br/>* 要针对当前需求从大局考虑怎样做最好。&nbsp;&nbsp;<br/>* 要花时间充分地思考。&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thomas 建议，不要只是把 o&#114;acle 当作一个黑盒。你不只是在 o&#114;acle 中放入和取出数据。他会帮助你理解 o&#114;acle 是如何工作的，如何充分利用它强大的能力。通过学习如何深思熟虑地、创造性地应用Oracle 技术，你会更快、更好地解决大多数应用设计问题。&nbsp;&nbsp;<br/><br/>通过阅读这本书，你会了解到 o&#114;acle 数据库技术的许多新动态，还会掌握应用设计的一些重要概念。 <br/>如果你确实领会了这些思想，相信你肯定也会对所面对的难题“换角度思考”。&nbsp;&nbsp;<br/>&nbsp;&nbsp;IBM 的 Watson 曾经说过：“自始以来，每一个进步都源自于思考。仅仅因为‘没有思考’，就造成全世界白白浪费了无数资金。”Thomas 和我都赞同这种说法。学完这本书后，利用你掌握的知识和技术,希望你能为这个世界（至少能为你的企业）节省无数资金，把工作干得更出色。&nbsp;&nbsp;]]></description>
		</item>
		
			<item>
			<link>http://www.5tobang.com/article.asp?id=91</link>
			<title><![CDATA[《Oracle DBA的UNIX 袖珍参考手册》笔记13(完结篇)]]></title>
			<author>caijianchao@gmail.com(nero)</author>
			<category><![CDATA[读书笔记]]></category>
			<pubDate>Thu,27 Aug 2009 11:18:31 +0800</pubDate>
			<guid>http://www.5tobang.com/default.asp?id=91</guid>
		<description><![CDATA[汗，13就结束了～顶不住啊<br/>最后一节，主要是一些磁盘管理的常用命令～<br/><br/>&#39;2.70&#39;*orcl-/home/oracle&gt;df -k<br/>Filesystem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1K-块&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;已用&nbsp;&nbsp;&nbsp;&nbsp; 可用 已用% 挂载点<br/>/dev/sda1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 14452776&nbsp;&nbsp; 6470268&nbsp;&nbsp; 7248340&nbsp;&nbsp;48% /<br/>none&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;517248&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;517248&nbsp;&nbsp; 0% /dev/shm<br/>&#39;2.70&#39;*orcl-/home/oracle&gt;<br/><br/>df -k 命令是比较通用的查看逻辑卷信息的命令。<br/><br/>一个根据不同的Unix 使用不同的命令来查看磁盘挂接位置的脚本HP-UX 下查看磁盘mount 位置可用bdf 命令，而其他好多版本都可以用df –k 命令。我们这个脚本的名字就叫做df.sh。<br/>[root@nero ~]# uname -a<br/>Linux nero 2.6.9-78.ELsmp #1 SMP Wed Jul 9 15:39:47 EDT 2008 i686 athlon i386 GNU/Linux<br/>uname可显示电脑以及操作系统的相关信息。<br/>OSF1<br/>Open Software Foundation [system] /1 (OSF, OS, DEC), &#34;OSF/1&#34; <br/>note that OSF1 is the older name for Tru64 Unix<br/> &#39;2.70&#39;*orcl-/home/oracle&gt;cat -v df.sh<br/>#!/bin/bash<br/>os=`uname -a|awk &#39;{print $1}&#39;`<br/><br/>if [ $os = &#34;Linux&#34; ]<br/>then<br/><br/>df -k<br/><br/>fi<br/>&#39;2.70&#39;*orcl-/home/oracle&gt;/bin/sh df.sh<br/>Filesystem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1K-块&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;已用&nbsp;&nbsp;&nbsp;&nbsp; 可用 已用% 挂载点<br/>/dev/sda1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 14452776&nbsp;&nbsp; 6470312&nbsp;&nbsp; 7248296&nbsp;&nbsp;48% /<br/>none&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;517248&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;517248&nbsp;&nbsp; 0% /dev/shm<br/><br/>创建软连接 <br/>Unix 下的所有文件或者目录都可以创建软连接，访问这个软连接实际上就是访问真正的文件/ 目录。可以用ln -s来创建软连接。<br/>-s : 进行软链结(symbolic link)<br/>&#39;2.70&#39;*orcl-/home/oracle&gt;ln -s /tmp/exp_trans.dmp exp_trans.dmp<br/>上面的命令中，软连接文件是exp_trans.dmp，指向/tmp/exp_trans.dmp 。可以用file 命令看出来： <br/>&#39;2.70&#39;*orcl-/home/oracle&gt;file exp_trans.dmp<br/>exp_trans.dmp: symbolic link to `/tmp/exp_trans.dmp&#39;<br/><br/>根据日期创建目录：<br/>&#39;2.70&#39;*orcl-/home/oracle&gt;date<br/>三&nbsp;&nbsp;8月 26 17:52:17 CST 2009<br/>&#39;2.70&#39;*orcl-/home/oracle&gt;mkdir `date|awk &#39;{print $6$2$1}&#39;`<br/>&#39;2.70&#39;*orcl-/home/oracle&gt;ls -l<br/>总用量 348<br/>drwxr-xr-x&nbsp;&nbsp;2 o&#114;acle oinstall&nbsp;&nbsp; 4096&nbsp;&nbsp;8月 26 17:50 20098月三<br/><br/>用crontab 来创建计划任务 <br/>大多数Unix 都支持一个叫做 cron&nbsp;&nbsp;的实用程序。术语cron 是 chronological 的缩写。 <br/>cron 实用程序可以用来创建定期运行的任务。cron 有两个主要的命令： <br/> crontab -l <br/>显示现有的任务 <br/>&#39;2.70&#39;*orcl-/home/oracle&gt;crontab -l<br/>no crontab for o&#114;acle<br/>crontab -e <br/>编辑修改crontab 文件。<br/>&#39;2.70&#39;*orcl-/home/oracle&gt;crontab -l<br/>*/3 6-12 * 8 * /home/oracle/df.sh<br/>时程表的格式如下 : <br/>f1 f2 f3 f4 f5 program <br/>其中 f1 是表示分钟，f2 表示小时，f3 表示一个月份中的第几日，f4 表示月份，f5 表示一个星期中的第几天。program 表示要执行的程式。老外的书中也搞错了，顶不住<br/>在 每年的8 月内, 每天的早上 6 点到 12 点中，每隔 3 分钟执行一次 /home/oracle/df.sh。<br/><br/>全部结束了，感觉错误还是比较多的，尽信书不如无书啊～ <br/> <br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.5tobang.com/article.asp?id=89</link>
			<title><![CDATA[《Oracle DBA的UNIX 袖珍参考手册》笔记12]]></title>
			<author>caijianchao@gmail.com(nero)</author>
			<category><![CDATA[读书笔记]]></category>
			<pubDate>Wed,26 Aug 2009 12:29:15 +0800</pubDate>
			<guid>http://www.5tobang.com/default.asp?id=89</guid>
		<description><![CDATA[续上回～越来越简单了～<br/>如果我们要查看某个目录的总大小，可以用&nbsp;&nbsp;du -sk&nbsp;&nbsp;命令。例如<br/><br/>&#39;2.70&#39;*orcl-/home/oracle&gt;du -sk /home/oracle<br/>1888&nbsp;&nbsp;&nbsp;&nbsp;/home/oracle<br/><br/>定位包含特定字符串的文件<br/><br/>&#39;2.70&#39;*orcl-/home/oracle&gt;find . -name &#34;*.sql&#34; -print|xargs grep -i v\$session<br/>./1.sql:sel&#101;ct * from v$session;<br/><br/>查找最近创建的文件<br/><br/>&#39;2.70&#39;*orcl-/home/oracle&gt; find . -mtime -1 -print<br/>.<br/>./find<br/>./.ICEauthority<br/>./du<br/>./.bash_history<br/>./1.sql<br/>./.gconfd<br/>./.gconfd/saved_state<br/>./.gnome2<br/>下面的命令查找 1 天内创建的文件。<br/><br/>查找系统中的大文件 <br/>下面的命令查找大于 10000 字节的文件：<br/>&#39;2.70&#39;*orcl-/home/oracle&gt;find . -size +10000c -print<br/>./Desktop/oracle dba?unix??????.pdf<br/>./.nautilus/sysstat-5.0.5-19.el4.i386.rpm<br/>./.bash_profile.swo<br/>./.kde/share/config/khotkeysrc<br/>./.kde/share/apps/kconf_up&#100;ate/up&#100;ate.log<br/>./.recently-used<br/><br/>如果不加 c，那么就是查文件大于 10000 个块（512 字节）的文件。有的 Unix 下可以加k，单位就是kb 。<br/><br/>查找大小在某个区间内的文件： 例如，查找大小在 100 到 120 个字节的文件 <br/># find . -size +100c -size -120c -print <br/>如果要查找大小正好是多大的文件，可以这样： <br/># find . -size 100c -print <br/>上面的命令查找大小正好是 100 个字节的文件。<br/><br/>批量删除修改时间大于7 天的文件 <br/># find . -mtime +7 -exec rm {} \; <br/><br/>批量删除过期的trace 文件脚本(del.sh)<br/>&#39;2.70&#39;*orcl-/home/oracle&gt;cat -v del.sh<br/>#!/bin/bash<br/>for o&#114;ACLE_SID in `cat /etc/oratab|\<br/>egrep &#39;:N|:Y&#39;|cut -f1 -d&#39;:&#39;`<br/><br/>do<br/>o&#114;ACLE_HOME=`cat /etc/oratab|grep ^$ORACLE_SID|cut -d&#34;:&#34; -f2`<br/><br/>DBA=`echo $ORACLE_HOME|sed -e&#39;s:/product/.*::g&#39;`/admin<br/>find $DBA/$ORACLE_SID/bdump -name &#34;*.trc&#34; -mtime -10 -exec rm {} \;<br/>find $DBA/$ORACLE_SID/udump -name &#34;*.trc&#34; -mtime -10 -exec rm {} \;<br/>done<br/>这里需要解释一下DBA=`echo $ORACLE_HOME|sed -e&#39;s:/product/.*::g&#39;`/admin<br/>&#39;2.70&#39;*orcl-/home/oracle&gt;DBA=`echo $ORACLE_HOME|sed -e&#39;s:/product/.*::g&#39;`/admin<br/>&#39;2.70&#39;*orcl-/home/oracle&gt;echo $DBA<br/>/oracle/admin<br/>将所有的/product/.*替换为空。这里就是把分割符号换成了冒号。你也可以这么来：<br/>sed -e\&#39;s%/product/.*%%g&#39;`/admin<br/>sed -e\&#39;s#/product/.*##g&#39;`/admin<br/>:或#或%中间的特殊符号不被转义<br/><br/>生成空文件(touch) <br/>touch 命令可以用来生成空文件，例如<br/>&#39;2.70&#39;*orcl-/home/oracle&gt;touch cjc.txt<br/><br/>修改默认的文件访问权限(Permissions)<br/>使用umask 命令来设置默认的文件访问权限。掩码的值是服务器默认值（通常是777或者 644）和实际的Unix 用户默认文件权限的差值。例如，如果系统默认 777，用户创建文件的时候访问权限是 755，那么掩码就是 022。下面让我们先来理解 Unix下文件访问权限。 <br/>Unix 下文件访问权限分为 3 部分。每一部分代表不同类别用户的访问权限。这三类用户是： <br/><br/>文件所有者 <br/>和文件所有者在同一个组中的成员 <br/>其它的Unix 用户 <br/>因此，如果一个文件的访问权限是751，那么7 分配给所有者，5 分配给和所有者在同一个组中的其他成员，1 分配给其他用户。那么，这些数字到底代表什么意思呢？ <br/>&nbsp;&nbsp; 访问权限值&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 含义 <br/>&nbsp;&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 读权限 <br/>&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 写权限 <br/>&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;执行权限 <br/>通过上表我们可以推算出，7 代表全部权限，5 代表读和执行权限，以此类推。下面,让我们来看一个文件的具体权限。 <br/><br/>plain text 纯文本 <br/>&#39;2.70&#39;*orcl-/home/oracle&gt;ls -l cjc.txt<br/>-rw-r--r--&nbsp;&nbsp;1 o&#114;acle oinstall 0&nbsp;&nbsp;8月 25 19:25 cjc.txt<br/>-l 列出文件的详细信息。<br/>-表明这是一个plain 文件。如果是d 则表明是路径<br/>这个文件的访问权限是644<br/><br/>不同的umask 的效果 <br/>假设系统默认的用户权限是 777，而我们不希望这样，就应该设置合适的umask。<br/><br/>Unix 的chown 命令可以修改文件的所有者。例如：<br/># chown o&#114;acle:oinstall * <br/>&#39;2.70&#39;*orcl-/home/oracle&gt;ls -al<br/> <br/>&nbsp;&nbsp; -rw-r--r--&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;&nbsp;&nbsp;229&nbsp;&nbsp;8月 20 23:18 a.sh<br/>-rw-r--r--&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;8月 20 23:15 a.sh~<br/>-rw-------&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;18268&nbsp;&nbsp;8月 25 05:45 .bash_history<br/>-rw-r--r--&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;&nbsp;&nbsp; 24&nbsp;&nbsp;7月 28 15:43 .bash_logout<br/>-rw-r--r--&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;&nbsp;&nbsp;952&nbsp;&nbsp;8月 25 19:19 .bash_profile<br/>-rw-r--r--&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;12288&nbsp;&nbsp;7月 28 17:59 .bash_profile.swo<br/>-rw-r--r--&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;12288&nbsp;&nbsp;7月 28 16:21 .bash_profile.swp<br/>-rw-r--r--&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;&nbsp;&nbsp;124&nbsp;&nbsp;8月 10 22:44 .bashrc<br/>-rw-r--r--&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;&nbsp;&nbsp;235&nbsp;&nbsp;8月 21 01:45 b.sh<br/>-rw-r--r--&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;8月 21 00:23 b.sh~<br/>-rwxr-xr-x&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;&nbsp;&nbsp;248&nbsp;&nbsp;8月 16 21:57 chaoge.sh<br/>-rw-r--r--&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;8月 16 21:53 chaoge.sh~<br/>-rw-r--r--&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;&nbsp;&nbsp;402&nbsp;&nbsp;8月 19 20:06 chao.sh<br/><br/>上面的命令将文件所有者改成 o&#114;acle，所属的组改成 oinstall。如果想将所有子目录及其下面的都改掉，那么用-R 选项。 <br/><br/>修改文件的访问权限 <br/>&nbsp;&nbsp; Unix 的chmod 命令可以修改文件的访问权限。例如： <br/>&nbsp;&nbsp; # chmod 755 * <br/>&nbsp;&nbsp; # chmod +x * <br/>&nbsp;&nbsp; # chmod –r * <br/>同样，如果想带子目录修改所有权限，也可以用&nbsp;&nbsp;-R <br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.5tobang.com/article.asp?id=88</link>
			<title><![CDATA[《Oracle DBA的UNIX 袖珍参考手册》笔记11]]></title>
			<author>caijianchao@gmail.com(nero)</author>
			<category><![CDATA[读书笔记]]></category>
			<pubDate>Tue,25 Aug 2009 18:35:23 +0800</pubDate>
			<guid>http://www.5tobang.com/default.asp?id=88</guid>
		<description><![CDATA[续上回，内容都比较简单～<br/><br/>列出最近动过（touched ）的文件<br/>&#39;2.70&#39;*orcl-/home/oracle&gt;ls -alt|head<br/>总用量 540<br/>-rw-r--r--&nbsp;&nbsp; 1 o&#114;acle oinstall 115545&nbsp;&nbsp;8月 24 14:39 sysstat-5.0.5-1.src.rpm<br/>-rw-------&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;17488&nbsp;&nbsp;8月 24 06:26 .bash_history<br/>drwx------&nbsp;&nbsp;21 o&#114;acle oinstall&nbsp;&nbsp; 4096&nbsp;&nbsp;8月 24 06:26 .<br/>drwx------&nbsp;&nbsp; 2 o&#114;acle oinstall&nbsp;&nbsp; 4096&nbsp;&nbsp;8月 24 06:26 .gconfd<br/>-rw-------&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;&nbsp;&nbsp;378&nbsp;&nbsp;8月 24 06:26 .ICEauthority<br/>drwx------&nbsp;&nbsp; 7 o&#114;acle oinstall&nbsp;&nbsp; 4096&nbsp;&nbsp;8月 24 06:26 .gnome2<br/>-rw-------&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;10710&nbsp;&nbsp;8月 23 21:56 .recently-used<br/>drwx------&nbsp;&nbsp; 5 o&#114;acle oinstall&nbsp;&nbsp; 4096&nbsp;&nbsp;8月 23 21:48 .gconf<br/>drwxr-xr-x&nbsp;&nbsp; 3 o&#114;acle oinstall&nbsp;&nbsp; 4096&nbsp;&nbsp;8月 23 21:47 .nautilus<br/>当Oracle 文件被读或者写的时候都是被动过。<br/>-l&nbsp;&nbsp;选项显示文件的详请，包括修改时间，-t&nbsp;&nbsp;选项会让结果按照被动过的日期排序， <br/>但是显示中的时间仍然是修改时间。-t&nbsp;&nbsp;会按照被动过的时间倒排序，因此用 head 。 <br/>-a&nbsp;&nbsp;选项显示你目录下的所有文件。<br/> <br/>显示最近修改过的文件<br/><br/>&#39;2.70&#39;*orcl-/home/oracle&gt;ls -alc|tail<br/>-rw-r--r--&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;&nbsp;&nbsp;596&nbsp;&nbsp;8月 20 23:33 text.sh~<br/>drwx------&nbsp;&nbsp; 4 o&#114;acle oinstall&nbsp;&nbsp; 4096&nbsp;&nbsp;8月&nbsp;&nbsp;6 12:05 .thumbnails<br/>-rwxr-xr-x&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;&nbsp;&nbsp;409&nbsp;&nbsp;8月 19 14:03 tian.sh<br/>-rwxr-xr-x&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;&nbsp;&nbsp;408&nbsp;&nbsp;8月 19 14:03 tian.sh~<br/>-rw-r--r--&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;8月 19 06:54 tian.txt~<br/>drwxr-xr-x&nbsp;&nbsp; 2 root&nbsp;&nbsp; root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4096&nbsp;&nbsp;8月 21 22:05 tmp.7467.old<br/>drwx------&nbsp;&nbsp; 2 o&#114;acle oinstall&nbsp;&nbsp; 4096&nbsp;&nbsp;8月 20 22:51 .Trash<br/>-rwxr-xr-x&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;&nbsp;&nbsp;302&nbsp;&nbsp;8月 19 06:30 vm.sh<br/>-rwxr-xr-x&nbsp;&nbsp; 1 o&#114;acle oinstall&nbsp;&nbsp;&nbsp;&nbsp;303&nbsp;&nbsp;8月 19 06:29 vm.sh~<br/>drwxr-xr-x&nbsp;&nbsp; 2 o&#114;acle oinstall&nbsp;&nbsp; 4096&nbsp;&nbsp;7月 28 15:43 .xemacs<br/>-c 输出文件的 i 节点的修改时间，并以此排序。<br/><br/>删除文件<br/><br/>删除以*.txt结尾的文本文件<br/><br/>&#39;2.70&#39;*orcl-/home/oracle&gt;find /home/oracle -name &#34;*.txt&#34;<br/>/home/oracle/Desktop/tian.txt<br/>/home/oracle/Desktop/cjc.txt<br/>/home/oracle/Desktop/1.txt<br/>/home/oracle/logfile.txt<br/>/home/oracle/tcj.txt<br/>/home/oracle/cjcav.txt<br/>/home/oracle/GOOD.txt<br/>/home/oracle/filelist.txt<br/><br/>&#39;2.70&#39;*orcl-/home/oracle&gt;find /home/oracle -name &#34;*.txt&#34; -exec rm {} \;<br/>rm：是否删除有写保护的一般空文件‘/home/oracle/GOOD.txt’? y<br/>\; 则相当于“宪法”，没什么说头，就是这么规定的，在 -exec 后面需要一个表示该命令终结的的符号。<br/><br/>显示文件大小（512 字节块）<br/><br/>有的时候我们需要快速找到比较大的trace 或者core dump 文件。通过使用du 命令,可以显示文件的大小，单位是 512 字节。如果要以kb 来显示，那么可以用&nbsp;&nbsp;-k <br/>&#39;2.70&#39;*orcl-/home/oracle&gt;du -s *|sort -n|tail<br/>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text.sh<br/>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text.sh~<br/>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tian.sh<br/>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tian.sh~<br/>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vm.sh<br/>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vm.sh~<br/>8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tmp.7467.old<br/>120&nbsp;&nbsp;&nbsp;&nbsp; sysstat-5.0.5-19.el4.i386.rpm<br/>120&nbsp;&nbsp;&nbsp;&nbsp; sysstat-5.0.5-1.src.rpm<br/>228&nbsp;&nbsp;&nbsp;&nbsp; Desktop<br/><br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.5tobang.com/article.asp?id=87</link>
			<title><![CDATA[《Oracle DBA的UNIX 袖珍参考手册》笔记10]]></title>
			<author>caijianchao@gmail.com(nero)</author>
			<category><![CDATA[读书笔记]]></category>
			<pubDate>Mon,24 Aug 2009 15:06:16 +0800</pubDate>
			<guid>http://www.5tobang.com/default.asp?id=87</guid>
		<description><![CDATA[这一章节主要讲的是linux下的内存和CPU管理，非常简单的几个命令～<br/><br/>书上说的这个dmesg也很有用，用来查看启动信息～<br/>[root@nero ~]# dmesg|grep &#34;eth0&#34;<br/>divert: allocating divert_blk for eth0<br/>eth0: registered as PCnet/PCI II 79C970A<br/>eth0: no IPv6 routers present<br/>[root@nero ~]#<br/><br/>free命令用来显示内存的使用情况。<br/><br/>语法结构：<br/>free [-b|-k|-m] [-o] [-s delay] [-t] [-V]<br/><br/>参数<br/>-b -k -m：分别以字节（KB、MB）为单位显示内存使用情况。<br/>-s delay：显示每隔多少秒数来显示一次内存使用情况。<br/>-t：显示内存总和列。<br/>-o：不显示缓冲区调节列。<br/><br/>free命令是用来查看内存使用情况的主要命令。和top命令相比，它的优点是使用简单，并且只占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用，这样可以把它当作一个方便实时监控器。<br/><br/>#free -b -s3<br/>使用这个命令后终端会连续不断地报告内存使用情况（以字节为单位），每3秒更新一次。<br/>[root@nero ~]# free<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; total&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; used&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; free&nbsp;&nbsp;&nbsp;&nbsp; shared&nbsp;&nbsp;&nbsp;&nbsp;buffers&nbsp;&nbsp;&nbsp;&nbsp; cached<br/>Mem:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1034496&nbsp;&nbsp;&nbsp;&nbsp; 465048&nbsp;&nbsp;&nbsp;&nbsp; 569448&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;13688&nbsp;&nbsp;&nbsp;&nbsp; 368512<br/>-/+ buffers/cache:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;82848&nbsp;&nbsp;&nbsp;&nbsp; 951648<br/>Swap:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1044216&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;1044216<br/><br/>显示分配的内存段<br/>[root@nero ~]# ipcs - pmb<br/><br/>------ Shared Memory Segments --------<br/>key&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shmid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;owner&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;perms&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nattch&nbsp;&nbsp;&nbsp;&nbsp; status<br/>0x00000000 32768&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gdm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 600&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;393216&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dest<br/>0x734145b8 65537&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;640&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;287309824&nbsp;&nbsp;16<br/><br/>------ Semaphore Arrays --------<br/>key&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;semid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;owner&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;perms&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nsems<br/>0x5f178298 98304&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;640&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;154<br/><br/>------ Message Queues --------<br/>key&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msqid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;owner&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;perms&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;used-bytes&nbsp;&nbsp; messages<br/><br/>[root@nero ~]#<br/>-P 写入与共享内存标识有关的 SID（段标识）列表，以及保留在那个段中的字节数。<br/>-m 写入一些关于活动共享内存段的信息。<br/>-b 写入消息队列的队列上消息的最大字节数、共享内存段的大小、每个信号量集中信号量的数量。<br/><br/>说实话，我也看的不是很明白～<br/><br/>手动移除内存段分配 <br/>&nbsp;&nbsp; 有的情况下内存实例崩溃，但是 o&#114;acle&nbsp;&nbsp;的内存段却没释放。可以使用ipcrm 来手动完成这个工作。<br/><br/>上句释放标识符为memid的共享内存，如果我们要释放所有的共享内存，只需要取出所有共享内存的ID，然后挨个ipcrm就行了，下面的程序正表达了此种方法的具体行为，经过我的测试，可以成功共释放共享内存:<br/>#########shut.sh#########<br/>#desp: scripts for releasing share memories<br/>ipcs -m | awk &#39;{if($2~/^[0-9]+$/)print $2}&#39;&nbsp;&nbsp;&gt; out<br/>cat out | while read shid<br/>do<br/>&nbsp;&nbsp;ipcrm shm $shid<br/>done<br/>rm -fr out<br/>要释放共享内存，只需要执行 sh shut.sh就行了<br/><br/>这里需要解释一下，如果第二个字段匹配^[0-9]+$/这个正则的话，那就打印第二个字段<br/>^[0-9]+$/表示一串数字<br/>[root@nero ~]# ipcs -m | awk &#39;{if($2~/^[0-9]+$/)print $2}&#39;<br/>32768<br/>65537<br/><br/>使用top命令来显示Unix 服务器的高CPU 资源占用会话。top显示每个CPU 的使用情况。top 的输出分两部分。第一部分显示每个处理器的负载情况，第二部分显示使用CPU最多的会话信息。<br/>[root@nero ~]# top<br/>top - 21:31:34 up&nbsp;&nbsp;3:19,&nbsp;&nbsp;1 user,&nbsp;&nbsp;load average: 0.00, 0.00, 0.00<br/>Tasks:&nbsp;&nbsp;74 total,&nbsp;&nbsp; 1 running,&nbsp;&nbsp;73 sleeping,&nbsp;&nbsp; 0 stopped,&nbsp;&nbsp; 0 zombie<br/>Cpu(s):&nbsp;&nbsp;0.7% us,&nbsp;&nbsp;2.0% sy,&nbsp;&nbsp;0.0% ni, 97.0% id,&nbsp;&nbsp;0.3% wa,&nbsp;&nbsp;0.0% hi,&nbsp;&nbsp;0.0% si<br/>Mem:&nbsp;&nbsp; 1034496k total,&nbsp;&nbsp; 574304k used,&nbsp;&nbsp; 460192k free,&nbsp;&nbsp;&nbsp;&nbsp;27724k buffers<br/>Swap:&nbsp;&nbsp;1044216k total,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0k used,&nbsp;&nbsp;1044216k free,&nbsp;&nbsp; 451976k cached<br/><br/>&nbsp;&nbsp;PID USER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PR&nbsp;&nbsp;NI&nbsp;&nbsp;VIRT&nbsp;&nbsp;RES&nbsp;&nbsp;SHR S %CPU %MEM&nbsp;&nbsp;&nbsp;&nbsp;TIME+&nbsp;&nbsp;COMMAND<br/> 6391 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;15&nbsp;&nbsp; 0&nbsp;&nbsp;140m 8388 2480 S&nbsp;&nbsp;0.7&nbsp;&nbsp;0.8&nbsp;&nbsp; 0:34.65 X<br/> 6671 o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;16&nbsp;&nbsp; 0&nbsp;&nbsp;7660 1532 1076 S&nbsp;&nbsp;0.7&nbsp;&nbsp;0.1&nbsp;&nbsp; 0:00.96 sshd<br/>&nbsp;&nbsp;634 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;16&nbsp;&nbsp; 0&nbsp;&nbsp;3304&nbsp;&nbsp;976&nbsp;&nbsp;768 R&nbsp;&nbsp;0.3&nbsp;&nbsp;0.1&nbsp;&nbsp; 0:00.10 top<br/>&nbsp;&nbsp;&nbsp;&nbsp;1 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;16&nbsp;&nbsp; 0&nbsp;&nbsp;2936&nbsp;&nbsp;552&nbsp;&nbsp;472 S&nbsp;&nbsp;0.0&nbsp;&nbsp;0.1&nbsp;&nbsp; 0:00.82 init<br/>&nbsp;&nbsp;&nbsp;&nbsp;2 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RT&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;0 S&nbsp;&nbsp;0.0&nbsp;&nbsp;0.0&nbsp;&nbsp; 0:00.00 migration/0<br/>&nbsp;&nbsp;&nbsp;&nbsp;3 root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;34&nbsp;&nbsp;19&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;0 S&nbsp;&nbsp;0.0&nbsp;&nbsp;0.0&nbsp;&nbsp; 0:00.01 ksoftirqd/0<br/>作为一个DBA 应该关心的内容有：&nbsp;&nbsp;<br/>Load averages：平均负载。如果大于 1说明服务器负荷过重。&nbsp;&nbsp;<br/>CPU states：CPU 信息概要。0.7% user 的意思是CPU 有 0.7%是用户占用，其他可按字面类推。&nbsp;&nbsp;<br/>Memory：Free 表明可用的内存数量。本例子中可用内存是 27724k。&nbsp;&nbsp;<br/>IDLE：CPU空闲百分比&nbsp;&nbsp;<br/>使用 sar&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;sar在 SVR4(是一个linux标准) 环境中，例如 HP-UX、Solaris 中很普及，在aix 中也可以用。Sar命令可以查看整体CPU 消耗情况，磁盘、内存、JFS buffer 使用情况等。常见的 sar使用 <br/>例子：<br/>显示CPU 活动情况。<br/>[root@nero o&#114;acle]# sar -u<br/>Linux 2.6.9-78.ELsmp (nero)&nbsp;&nbsp;&nbsp;&nbsp; 2009年08月23日<br/><br/>21时50分01秒&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CPU&nbsp;&nbsp;&nbsp;&nbsp; %user&nbsp;&nbsp;&nbsp;&nbsp; %nice&nbsp;&nbsp; %system&nbsp;&nbsp; %iowait&nbsp;&nbsp;&nbsp;&nbsp; %idle<br/>22时00分01秒&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.13&nbsp;&nbsp;&nbsp;&nbsp; 92.24<br/>Average:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;all&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.13&nbsp;&nbsp;&nbsp;&nbsp; 92.24<br/><br/>使用vmstat&nbsp;&nbsp;<br/>vmstat 是通用的UNIX 监控工具，vmstat 在 IRIX操作系统中是 osview。vmstat的第一个参数是间隔的秒数，也可以带第二个参数，表明显示多少次。<br/>输出中一些重要的信息：&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; r <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;运行队列。当这个值超过CPU数量的时候，服务器就有CPU瓶颈（可以通 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;过lsdev -C|grep Process|wc -l&nbsp;&nbsp;来获取CPU数量） <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pi <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;page-in数量。这个参数非0暗示着系统缺少内存，内存被交换到磁盘。然而 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当程序刚使用的时候也可能导致page-in非0。为了找到真正原因，则检查sr <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;列。如果sr也是非0，那么的确意味着缺少内存。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sr <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;扫描速率。如果扫描速率持续增加，那么页交换后台程序忙于分配内存页。 <br/><br/>[root@nero o&#114;acle]# vmstat 3 2<br/>procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----<br/> r&nbsp;&nbsp;b&nbsp;&nbsp; swpd&nbsp;&nbsp; free&nbsp;&nbsp; buff&nbsp;&nbsp;cache&nbsp;&nbsp; si&nbsp;&nbsp; so&nbsp;&nbsp;&nbsp;&nbsp;bi&nbsp;&nbsp;&nbsp;&nbsp;bo&nbsp;&nbsp; in&nbsp;&nbsp;&nbsp;&nbsp;cs us sy id wa<br/> 1&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 347800&nbsp;&nbsp;43064 486036&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;28&nbsp;&nbsp;&nbsp;&nbsp;29 1014&nbsp;&nbsp;&nbsp;&nbsp;80&nbsp;&nbsp;1&nbsp;&nbsp;4 94&nbsp;&nbsp;1<br/> 1&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 347736&nbsp;&nbsp;43068 486032&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;29 1009&nbsp;&nbsp; 174&nbsp;&nbsp;2&nbsp;&nbsp;3 95&nbsp;&nbsp;0<br/>[root@nero o&#114;acle]#<br/>下面是CPU的一些信息: <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;us <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用户占用CPU的百分比 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sy <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;系统占用CPU的百分比 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;空闲CPU百分比 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wa <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;等待CPU的百分比 <br/>用户和系统百分比之和(us+sy)接近 100 时，说明CPU 繁忙，但并不意味着 CPU 过载。sr 超过CPU 数量的时候意味着CPU 过载。当CPU 等待(wa)超过20 的时候，那么20%或者更多的处理时间在等待资源，通常是I/O。通常在备份或者导出等I/O 操作的时候这个百分比比较大；但如果正常的时候这个值一直挺高则也可能有I/O 瓶颈。<br/><br/>显示服务器平均负载情况（w命令）。<br/> <br/>Unix 的w 命令用来显示高资源会话简单的信息。大多数的有经验的Oracle DBA 都会首先用这个命令来快速查看一下服务器负载情况，因为w 命令在几乎所有的Unix 下都可以用。<br/><br/>[root@nero o&#114;acle]# w<br/> 22:10:19 up&nbsp;&nbsp;3:57,&nbsp;&nbsp;2 users,&nbsp;&nbsp;load average: 0.10, 0.12, 0.09<br/>USER&nbsp;&nbsp;&nbsp;&nbsp; TTY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FROM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LOGIN@&nbsp;&nbsp; IDLE&nbsp;&nbsp; JCPU&nbsp;&nbsp; PCPU WHAT<br/>o&#114;acle&nbsp;&nbsp; pts/1&nbsp;&nbsp;&nbsp;&nbsp;192.168.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;18:19&nbsp;&nbsp;&nbsp;&nbsp;0.00s&nbsp;&nbsp;0.72s&nbsp;&nbsp;0.14s sshd: o&#114;acle [p<br/>o&#114;acle&nbsp;&nbsp; :0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;21:47&nbsp;&nbsp; ?xdm?&nbsp;&nbsp; 3:55&nbsp;&nbsp; 1.10s /usr/bin/gnome-<br/>上面的输出中的 load average 分别是过去 1分钟、5分钟、15分钟的负载情况。如果大于 1说明CPU 紧张。<br/><br/>使用 iostat&nbsp;&nbsp;<br/>iostat显示物理磁盘 I/O情况。下面的 3表明3秒钟显示一次。<br/>[root@nero o&#114;acle]# iostat 3<br/>Linux 2.6.9-78.ELsmp (nero)&nbsp;&nbsp;&nbsp;&nbsp; 2009年08月23日<br/><br/>avg-cpu:&nbsp;&nbsp;%user&nbsp;&nbsp; %nice&nbsp;&nbsp;&nbsp;&nbsp;%sys %iowait&nbsp;&nbsp; %idle<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.67&nbsp;&nbsp;&nbsp;&nbsp;0.43&nbsp;&nbsp;&nbsp;&nbsp;4.00&nbsp;&nbsp;&nbsp;&nbsp;0.69&nbsp;&nbsp; 94.20<br/><br/>Device:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tps&nbsp;&nbsp; Blk_read/s&nbsp;&nbsp; Blk_wrtn/s&nbsp;&nbsp; Blk_read&nbsp;&nbsp; Blk_wrtn<br/>sda&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.77&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;54.13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;57.02&nbsp;&nbsp;&nbsp;&nbsp; 784694&nbsp;&nbsp;&nbsp;&nbsp; 826496<br/>sda1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.76&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;54.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;57.02&nbsp;&nbsp;&nbsp;&nbsp; 782802&nbsp;&nbsp;&nbsp;&nbsp; 826496<br/>sda2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.06&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;908&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0<br/><br/>avg-cpu:&nbsp;&nbsp;%user&nbsp;&nbsp; %nice&nbsp;&nbsp;&nbsp;&nbsp;%sys %iowait&nbsp;&nbsp; %idle<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.01&nbsp;&nbsp;&nbsp;&nbsp;0.33&nbsp;&nbsp;&nbsp;&nbsp;3.34&nbsp;&nbsp;&nbsp;&nbsp;0.00&nbsp;&nbsp; 94.31<br/><br/>Device:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tps&nbsp;&nbsp; Blk_read/s&nbsp;&nbsp; Blk_wrtn/s&nbsp;&nbsp; Blk_read&nbsp;&nbsp; Blk_wrtn<br/>sda&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;74.92&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;224<br/>sda1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.01&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;74.92&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;224<br/>sda2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>上面比较重要的列：&nbsp;&nbsp;<br/>Kb_read：过去的时间区间内读取得K 字节数。（第一个显示的是历史总计，因此要看变 <br/>化情况，应该看其它的时间区间。）&nbsp;&nbsp;<br/>Kb_wrtn: 过去的时间区间内写入得 K 字节数。&nbsp;&nbsp;<br/><br/>汗，记住就行～<br/><br/><br/><br/><br/><br/>&nbsp;&nbsp;<br/><br/><br/>&nbsp;&nbsp;<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.5tobang.com/article.asp?id=86</link>
			<title><![CDATA[《Oracle DBA的UNIX 袖珍参考手册》笔记9]]></title>
			<author>caijianchao@gmail.com(nero)</author>
			<category><![CDATA[读书笔记]]></category>
			<pubDate>Sun,23 Aug 2009 22:47:28 +0800</pubDate>
			<guid>http://www.5tobang.com/default.asp?id=86</guid>
		<description><![CDATA[这一章节超级简单，unix下的基本命令，搞熟了就行～<br/>1．显示Oracle 的Unix 进程 <br/>&#39;2.70&#39;*orcl-/home/oracle&gt;ps -ef|grep o&#114;a_|grep -v grep<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6642&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;0 05:50 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 o&#114;a_pmon_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6644&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;0 05:50 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 o&#114;a_psp0_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6646&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;0 05:50 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 o&#114;a_mman_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6648&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;0 05:50 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 o&#114;a_dbw0_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6650&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;0 05:50 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 o&#114;a_lgwr_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6652&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;0 05:50 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 o&#114;a_ckpt_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6654&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;4 05:50 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:03 o&#114;a_smon_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6656&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;0 05:50 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 o&#114;a_reco_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6658&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;3 05:50 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:02 o&#114;a_mmon_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6660&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;0 05:50 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 o&#114;a_mmnl_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6662&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;0 05:50 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 o&#114;a_d000_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6664&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;0 05:50 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 o&#114;a_s000_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6668&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;0 05:51 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 o&#114;a_qmnc_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6670&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;0 05:51 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 o&#114;a_q000_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6672&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;0 05:51 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 o&#114;a_q001_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6678&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;2 05:51 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 o&#114;a_cjq0_orcl<br/>&#39;2.70&#39;*orcl-/home/oracle&gt;<br/>2.查看消耗CPU 时间最长的进程：<br/>&#39;2.70&#39;*orcl-/home/oracle&gt;ps -ef|grep o&#114;acle|sort +6|tail<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6672&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;0 05:51 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 o&#114;a_q001_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6668&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;0 05:51 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 o&#114;a_qmnc_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6656&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;0 05:50 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 o&#114;a_reco_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6664&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;0 05:50 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 o&#114;a_s000_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6688&nbsp;&nbsp;6607&nbsp;&nbsp;0 05:53 pts/1&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 ps -ef<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6690&nbsp;&nbsp;6607&nbsp;&nbsp;0 05:53 pts/1&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 sort +6<br/>root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6604&nbsp;&nbsp;5322&nbsp;&nbsp;0 05:48 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 sshd: o&#114;acle [priv]<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6606&nbsp;&nbsp;6604&nbsp;&nbsp;0 05:48 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:00 sshd: o&#114;acle@pts/1<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6658&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;1 05:50 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:02 o&#114;a_mmon_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6654&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;2 05:50 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00:00:03 o&#114;a_smon_orcl<br/>还可以用下一种方法；<br/>输出的第 3列(sort 中的+2)名字叫%CPU，显示的是当前每个进程的CPU 持有百分比。<br/>&#39;2.70&#39;*orcl-/home/oracle&gt;ps auxgw|sort +2|tail<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6646&nbsp;&nbsp;0.2&nbsp;&nbsp;1.5 373592 16368 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ss&nbsp;&nbsp; 05:50&nbsp;&nbsp; 0:00 o&#114;a_mman_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6652&nbsp;&nbsp;0.2&nbsp;&nbsp;1.6 373780 16688 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ss&nbsp;&nbsp; 05:50&nbsp;&nbsp; 0:00 o&#114;a_ckpt_orcl<br/>root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5503&nbsp;&nbsp;0.3&nbsp;&nbsp;0.2&nbsp;&nbsp;5888 2756 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ss&nbsp;&nbsp; 05:47&nbsp;&nbsp; 0:01 hald<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6650&nbsp;&nbsp;0.3&nbsp;&nbsp;1.4 389156 14960 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ss&nbsp;&nbsp; 05:50&nbsp;&nbsp; 0:00 o&#114;a_lgwr_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6678&nbsp;&nbsp;0.4&nbsp;&nbsp;2.7 375216 28204 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ss&nbsp;&nbsp; 05:51&nbsp;&nbsp; 0:00 o&#114;a_cjq0_orcl<br/>root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6341&nbsp;&nbsp;0.8&nbsp;&nbsp;0.8 11252 8388 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;S&nbsp;&nbsp;&nbsp;&nbsp;05:47&nbsp;&nbsp; 0:03 /usr/X11R6/bin/X :0 -audit 0 -auth /var/gdm/:0.Xauth -nolisten tcp vt7<br/>gdm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6603&nbsp;&nbsp;0.8&nbsp;&nbsp;1.2 59664 13448 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ss&nbsp;&nbsp; 05:48&nbsp;&nbsp; 0:03 /usr/bin/gdmgreeter<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6658&nbsp;&nbsp;1.2&nbsp;&nbsp;4.4 376440 45808 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ss&nbsp;&nbsp; 05:50&nbsp;&nbsp; 0:02 o&#114;a_mmon_orcl<br/>o&#114;acle&nbsp;&nbsp;&nbsp;&nbsp;6654&nbsp;&nbsp;1.3&nbsp;&nbsp;3.6 374192 37768 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ss&nbsp;&nbsp; 05:50&nbsp;&nbsp; 0:03 o&#114;a_smon_orcl<br/>USER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PID %CPU %MEM&nbsp;&nbsp; VSZ&nbsp;&nbsp;RSS TTY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STAT START&nbsp;&nbsp; TIME COMMAND<br/>3.显示Oracle 的活动连接用户数量<br/>&#39;2.70&#39;*orcl-/home/oracle&gt;ps -ef|grep $ORACLE_SID|grep -v grep|grep o&#114;a_|wc -l<br/>16<br/><br/>4.杀掉进程，见笔记一，汗，明天继续～]]></description>
		</item>
		
			<item>
			<link>http://www.5tobang.com/article.asp?id=84</link>
			<title><![CDATA[《Oracle DBA的UNIX 袖珍参考手册》笔记8]]></title>
			<author>caijianchao@gmail.com(nero)</author>
			<category><![CDATA[读书笔记]]></category>
			<pubDate>Sat,22 Aug 2009 15:27:41 +0800</pubDate>
			<guid>http://www.5tobang.com/default.asp?id=84</guid>
		<description><![CDATA[续上回，下面都比较简单<br/>通过 Internet Mail发送unix 文件<br/><br/>[root@nero o&#114;acle]# cat .bash_history|mailx -s &#34;DBA Activity Report&#34; caijianchao@gmail.com[root@nero o&#114;acle]#<br/>即可，这还牵涉到MAIL的配置，可以百度一下，不是重点，忽略～<br/>接下这个如果没有shell基础，差点崩溃，还好CU论坛高手众多，发了个贴请教了一下，高手的热情实在顶不住啊～<br/>修改某目录下的所有文件的某字符串。<br/>这个脚本在某路径下查找符合条件的文件，将文件中的特定字符串替换成其它的字符串，替换之前做备份。我们在脚本中用到 for loop循环和流编辑器 sed。字符串的替换工作是用sed来完成的。<br/><br/>[root@nero o&#114;acle]# cat -v jj.sh<br/>tmpdir=tmp.$$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# $$指当前进程的进程号PID。即赋值变量tmpdir为&#34;tmp.&#34;追加PID的字符串。<br/>mkdir $tmpdir.new&nbsp;&nbsp;&nbsp;&nbsp;# 创建名为$tmpdir加上&#34;.new&#34;的文件夹。<br/>for f in $*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 如果输入的文件在当前目录下<br/>do<br/>sed -e &#39;s/oldstring/newstring/g&#39;\ #shell中\在行尾时表示续行，即下一行和本行属于同一命令行。<br/><br/>&lt;$f&gt;$tmpdir.new/$f 。# &lt; $f表示输入为变量f表示的文件，&gt; $tmpdir.new/$f表示输出为$tmpdir追&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 加&#34;.new&#34;后的文件夹下面以$f命名的文件。<br/>done<br/><br/>mkdir $tmpdir.old<br/>mv $* $tmpdir.old/<br/>cd $tmpdir.new<br/>mv $* ../<br/>cd ..<br/>rmdir $tmpdir.new<br/><br/>[root@nero o&#114;acle]# vi abc.sql<br/>[root@nero o&#114;acle]# cat abc.sql<br/>oldstring<br/>test replace<br/>oldstring<br/><br/>[root@nero o&#114;acle]# sh -x jj.sh *.sql<br/>+ tmpdir=tmp.7467<br/>+ mkdir tmp.7467.new<br/>+ for f in &#39;$*&#39;<br/>+ sed -e s/oldstring/newstring/g<br/>+ mkdir tmp.7467.old<br/>+ mv abc.sql tmp.7467.old/<br/>+ cd tmp.7467.new<br/>+ mv abc.sql ../<br/>+ cd ..<br/>+ rmdir tmp.7467.new<br/>[root@nero o&#114;acle]# ls -a<br/>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.dmrc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.nautilus<br/>..&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .eggcups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nohup.out<br/>abc.sql&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.emacs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; par.bbd<br/>a.sh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .esd_auth&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.qt<br/>a.sh~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filelist.txt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .recently-used<br/>.bash_history&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.gconf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .rhn-applet.conf<br/>.bash_logout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .gconfd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.rhosts<br/>.bash_profile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.gnome&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .rhosts~<br/>.bash_profile.swo&nbsp;&nbsp;.gnome2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.saves-7403-localhost.localdomain<br/>.bash_profile.swp&nbsp;&nbsp;.gnome2_private&nbsp;&nbsp;&nbsp;&nbsp;tcj.txt<br/>.bashrc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;good&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tcj.txt~<br/>b.sh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GOOD.txt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; text.sh<br/>b.sh~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.gstreamer-0.8&nbsp;&nbsp;&nbsp;&nbsp; text.sh~<br/>chaoge.sh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.gtk-bookmarks&nbsp;&nbsp;&nbsp;&nbsp; .thumbnails<br/>chaoge.sh~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .gtkrc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tian.sh<br/>chao.sh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.gtkrc-1.2-gnome2&nbsp;&nbsp;tian.sh~<br/>chao.sh~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ICEauthority&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tian.txt~<br/>cjcav&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jj.sh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp.7457.old<br/>cjcav.txt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.kde&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tmp.7467.old<br/>cjc.sh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logfile.txt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Trash<br/>cjc.sh~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.metacity&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vm.sh<br/>.config&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mystat.sh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vm.sh~<br/>Desktop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mystat.sh~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .xemacs<br/>[root@nero o&#114;acle]# ls<br/>abc.sql&nbsp;&nbsp;&nbsp;&nbsp;chaoge.sh~&nbsp;&nbsp;cjc.sh~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; logfile.txt&nbsp;&nbsp;tcj.txt~&nbsp;&nbsp; tmp.7457.old<br/>a.sh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; chao.sh&nbsp;&nbsp;&nbsp;&nbsp; Desktop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mystat.sh&nbsp;&nbsp;&nbsp;&nbsp;text.sh&nbsp;&nbsp;&nbsp;&nbsp;tmp.7467.old<br/>a.sh~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chao.sh~&nbsp;&nbsp;&nbsp;&nbsp;filelist.txt&nbsp;&nbsp;mystat.sh~&nbsp;&nbsp; text.sh~&nbsp;&nbsp; vm.sh<br/>b.sh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjcav&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; good&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nohup.out&nbsp;&nbsp;&nbsp;&nbsp;tian.sh&nbsp;&nbsp;&nbsp;&nbsp;vm.sh~<br/>b.sh~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cjcav.txt&nbsp;&nbsp; GOOD.txt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;par.bbd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tian.sh~<br/>chaoge.sh&nbsp;&nbsp;cjc.sh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jj.sh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tcj.txt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tian.txt~<br/>[root@nero o&#114;acle]# cd tmp.7457.old<br/>[root@nero tmp.7457.old]# ls<br/>[root@nero tmp.7457.old]# cd ..<br/>[root@nero o&#114;acle]# cd tmp.7467.old<br/>[root@nero tmp.7467.old]# ls<br/>abc.sql<br/>[root@nero tmp.7467.old]# cat abc.sql<br/>oldstring<br/>test replace<br/>oldstring<br/><br/>[root@nero tmp.7467.old]#<br/>测试完毕，明天再射～]]></description>
		</item>
		
			<item>
			<link>http://www.5tobang.com/article.asp?id=83</link>
			<title><![CDATA[《Oracle DBA的UNIX 袖珍参考手册》笔记7]]></title>
			<author>caijianchao@gmail.com(nero)</author>
			<category><![CDATA[读书笔记]]></category>
			<pubDate>Sat,22 Aug 2009 13:08:37 +0800</pubDate>
			<guid>http://www.5tobang.com/default.asp?id=83</guid>
		<description><![CDATA[Unix 的for loop结构可以用来遍历服务器上的某个文件中的所有内容。例如，你可以写一个Unix 脚本来读取 o&#114;atab 文件中的所有内容，并且访问文件中的所有列出的数据库。进一步利用这个功能，我们可以访问包含你的数据库名称的文件，遍历每一个服务器。<br/><br/>Unix 的rsh 命令可以提交远程脚本命令。rsh 命令通过在.rhosts 文件中加入一个条目，允许你访问远程主机。例如，如果你希望你的Oracle 用户允许访问一个远程服务器，名字叫做 prodwest，那么 prodwest 服务器中需要在oracle用户的主目录下有.rhosts文件，最简单的方法直接用vi建。<br/><br/>下面是一个访问各个服务器上的数据库的一个示例，这个脚本并不真正做什么，只是显示每个服务器下的oratab文件中的SID。<br/><br/>测试如下：<br/>login as: root<br/>root@192.168.0.2&#39;s password: *******<br/>Last login: Fri Aug 21 18:19:27 2009<br/>[root@nero ~]# cat chao.sh<br/>for host in `cat ~oracle/.rhosts|cut -d &#34; &#34; -f1|awk &#39;{print $1}&#39;|sort -u`<br/>do<br/>echo &#34; &#34;<br/>echo &#34;*******************&#34;<br/>echo &#34;$host&#34;<br/>echo &#34;*******************&#34;<br/>for db in `rsh $host &#34;cat /etc/oratab/egrep &#39;:N|:Y&#39;|grep -v \*|cut -f1 -d&#39;:&#39;&#34;`<br/>do<br/>home=`rsh $host &#34;cat /etc/oratab|egrep &#39;:N|:Y&#39;|grep -v \*|grep ${db}|cut -f2 -d&#39;:&#39;&#34;`<br/>echo &#34; &#34;<br/>echo &#34;database is $db&#34;<br/>done<br/>done<br/><br/>[root@nero ~]# vi chao.sh<br/>[root@nero ~]# sh -x chao.sh<br/>++ cat /home/oracle/.rhosts<br/>++ cut -d &#39; &#39; -f1<br/>++ awk &#39;{print $1}&#39;<br/>++ sort -u<br/>+ for host in &#39;`cat ~oracle/.rhosts|cut -d &#34; &#34; -f1|awk &#39;\&#39;&#39;{print $1}&#39;\&#39;&#39;|sort -u`&#39;<br/>+ echo &#39; &#39;<br/><br/>+ echo &#39;*******************&#39;<br/>*******************<br/>+ echo 127.0.0.1<br/>127.0.0.1<br/>+ echo &#39;*******************&#39;<br/>*******************<br/>++ rsh 127.0.0.1 &#39;cat /etc/oratab|egrep &#39;\&#39;&#39;:N|:Y&#39;\&#39;&#39;|grep -v \*|cut -f1 -d&#39;\&#39;&#39;:&#39;\&#39;&#39;&#39;<br/>connect to address 127.0.0.1: Connection refused<br/>Trying krb4 rsh...<br/>connect to address 127.0.0.1: Connection refused<br/>trying normal rsh (/usr/bin/rsh)<br/>+ for db in &#39;`rsh $host &#34;cat /etc/oratab|egrep &#39;\&#39;&#39;:N|:Y&#39;\&#39;&#39;|grep -v \*|cut -f1 -d&#39;\&#39;&#39;:&#39;\&#39;&#39;&#34;`&#39;<br/>++ rsh 127.0.0.1 &#39;cat /etc/oratab|egrep &#39;\&#39;&#39;:N|:Y&#39;\&#39;&#39;|grep -v \*|grep o&#114;cl|cut -f2 -d&#39;\&#39;&#39;:&#39;\&#39;&#39;&#39;<br/>connect to address 127.0.0.1: Connection refused<br/>Trying krb4 rsh...<br/>connect to address 127.0.0.1: Connection refused<br/>trying normal rsh (/usr/bin/rsh)<br/>+ home=/oracle/product/10.2.0<br/>+ echo &#39; &#39;<br/><br/>+ echo &#39;database is o&#114;cl&#39;<br/>database is o&#114;cl<br/>[root@nero ~]# /bin/sh chao.sh<br/><br/>*******************<br/>127.0.0.1<br/>*******************<br/>connect to address 127.0.0.1: Connection refused<br/>Trying krb4 rsh...<br/>connect to address 127.0.0.1: Connection refused<br/>trying normal rsh (/usr/bin/rsh)<br/>connect to address 127.0.0.1: Connection refused<br/>Trying krb4 rsh...<br/>connect to address 127.0.0.1: Connection refused<br/>trying normal rsh (/usr/bin/rsh)<br/><br/>database is o&#114;cl<br/>[root@nero ~]#<br/><br/>测试OK，我的ORACLE的数据库名是orcl～～]]></description>
		</item>
		
			<item>
			<link>http://www.5tobang.com/article.asp?id=82</link>
			<title><![CDATA[vmware虚拟机网络配置实例windows host + linux guest终极解决方案]]></title>
			<author>caijianchao@gmail.com(nero)</author>
			<category><![CDATA[读书笔记]]></category>
			<pubDate>Sat,22 Aug 2009 11:42:31 +0800</pubDate>
			<guid>http://www.5tobang.com/default.asp?id=82</guid>
		<description><![CDATA[vmware虚拟机网络配置实例windows host + linux guest终极解决方案<br/><br/>今早解决了一个困扰了我好久的技术难题，算是小有收获，对网络的认知程度又加深了一下，当然参考了很多网友的帖子，但没一个帖子成功的，后来综合了好几个贴子，终于搞定，一转眼已2小时过去，汗啊～<br/><br/>俺俗人使用的是VMware.Workstation.v6.5.0.118166,host机器运行的是windows Xp professional。<br/><br/>1.安装 vmware workstation，很简单，一路ok过去就完事，相信大部分小朋友应该没问题。<br/><br/>2.创建新的guest系统。选择类型。我的是用rhel 4做试验，所以就选redhat linux，选custom，网络接口选hostonly(如果你已经安装好了，用了nat或bridge也没有关系，在虚拟机的属性里改成hostonly就行了。)<br/><br/>3.安装过程现在LINUX也已经傻瓜化，也是一路next就完事了，如果不会百度一下，还不会，这个～～<br/><br/>4.按照要求在虚拟机里安装vmware-tool,对鼠标和图形进行更好地支持。这个也是图形化操作，省略··<br/><br/>5.登录虚拟机，打开一个終端：/sbin/ifconfig，发现eth0没有起来，不要惊慌，冷静啊～<br/><br/>在linux系统下配置网卡时出现了下面这个问题，<br/> /sbin/ifup: configuration for eth0 not found.<br/>Usage: ifup &lt;device name&gt;<br/> <br/>以下是这个问题的解决方法。<br/><br/>经查询及参考/etc/sysconfig/network-scripts/ifup-eth文件， <br/><br/>&nbsp;&nbsp;&nbsp;&nbsp; if is_bonding_device ${DEVICE} ; then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for device in `LANG=C grep -l &#34;^[[:space:]]*MASTER=${DEVICE}&#34; /etc/sysconfig/network-scripts/ifcfg-*` ; do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is_ignored_file &#34;$device&#34; &amp;&amp; continue<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/sbin/ifup ${device##*/}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;done<br/>&nbsp;&nbsp;&nbsp;&nbsp; fi<br/><br/>系统应该是在/etc/sysconfig/network-scripts/文件夹下查找device name的，可是我的这个文件夹下只有ifcfg-lo文件，没有ifcfg-eth0文件，这应该就是原因吧。我发现/etc/sysconfig/networking/devices目录下存在一个ifcfg-eth0文件，打开一看，就是所要求的配置文件啦。遂cp了一份到/etc/sysconfig/network-scripts/文件夹下。<br/>再在网络配置工具里激活eth0网卡，ok！<br/><br/>6.到windows XP 中，查看所有的网络连接，你应该发现除了原有的网卡之外，又多了Vmnet1和Vmnet8。如果你看了一下说明书应该知道，vmnet1是hostonly的接口，而Vmnet8是使用NAT的网络接口。在这里我们既不想用VMWARE自带的DHCP也不想用他的NAT所以我们知关心VMnet1<br/>&nbsp;&nbsp; 在进一步操作之前先说一下idea:<br/>&nbsp;&nbsp; 我们将使用hostonly这个网络接口连接虚拟机和主机，然后利用windows Xp/2000里面自带的internet连接共享（实际上是一个简单的路由NAT)来让虚拟机 通过原来的网卡进行外网的访问。<br/><br/>7.OK， let&#39;s go<br/>&nbsp;&nbsp; (1)查看你的连接外网的网卡的属性，选择“高级”标签，设置成允许共享，如下图。<br/><img src="http://pic.yupoo.com/likq858/243167f2df9a/s3gmyetz.jpg" border="0" alt=""/><br/><br/>&nbsp;&nbsp; (2)再插看一下你的VMnet1 的属性，看一下TCP/IP协议的设置，你发现已经被自动设置为192.168.0.1/255.255.255.0，如下图。<br/><img src="http://pic.yupoo.com/likq858/918127f2df9a/bl93dijs.jpg" border="0" alt=""/><br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp; (3)windows下的设置完成，转入到跑linux的虚拟机。将你的eth0的ip地址设置为静态的（如果安装时没有选静态的话）。<br/>&nbsp;&nbsp; 按红帽子图标－＞系统设置－＞网络（或其它你了解的方法）<br/>&nbsp;&nbsp; ip： 192.168.0.2(或其它在此网段上的地址）<br/>&nbsp;&nbsp; netmask: 255.255.255.0<br/>&nbsp;&nbsp; default gateway: 192.168.0.1<br/>&nbsp;&nbsp; dns:输入你自己的DNS<br/>&nbsp;&nbsp; 保存设置。如果你还没有设置好主机名称：<br/>&nbsp;&nbsp; cd /etc/sysconfig<br/>&nbsp;&nbsp; vi network<br/>&nbsp;&nbsp; 编辑HOSTNAME<br/>&nbsp;&nbsp; cd /etc<br/>&nbsp;&nbsp; vi hosts<br/>&nbsp;&nbsp; 加入：<br/>&nbsp;&nbsp; 192.168.0.2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yourhostname<br/>&nbsp;&nbsp; 重新启动服务<br/>&nbsp;&nbsp; su<br/>&nbsp;&nbsp; /sbin/service network restart<br/><br/>测试一下：<br/><img src="http://pic.yupoo.com/likq858/333977f2df98/medium.jpg" border="0" alt=""/><br/>大功告成啊～<br/><br/><br/><br/><br/>]]></description>
		</item>
		
</channel>
</rss>
