??xml version="1.0" encoding="utf-8" standalone="yes"?>中文字幕无码av激情不卡久久,激情五月综合综合久久69,久久精品国产亚洲AV无码麻豆http://www.shnenglu.com/API/category/16118.htmlzh-cnTue, 26 Nov 2013 08:40:48 GMTTue, 26 Nov 2013 08:40:48 GMT60flash 843http://www.shnenglu.com/API/archive/2013/11/26/204459.htmlC++技术中?/dc:creator>C++技术中?/author>Tue, 26 Nov 2013 08:33:00 GMThttp://www.shnenglu.com/API/archive/2013/11/26/204459.htmlhttp://www.shnenglu.com/API/comments/204459.htmlhttp://www.shnenglu.com/API/archive/2013/11/26/204459.html#Feedback0http://www.shnenglu.com/API/comments/commentRss/204459.htmlhttp://www.shnenglu.com/API/services/trackbacks/204459.html1.首先(g)服务端?43端口是否提供安全{略文gQ?br />2.如果步骤1没有(g)到Q则(g)AS代码中是否用了(jin)Security.loadPolicyFile(xmlsocket://)手段q行安全验证Q?如果没有则进行第3步验证;
3.在目标端口检安全策略文?br />
如果以上3步都(g)失败,则flash player拒绝q接目标服务器。socketq接p|。socket端大体思\是:(x)监听843端口和目标端口,在flash playerW一ơ连接时Q会(x)先连?43端口Qƈ且发?<policy-file-request/> "作ؓ(f)验证标志Q如?43提供安全{略Q则843端口策略文件用字符串方式返回flash player , 如果安全{略文g中运行flash playerq接目标端口Q则843端口关闭Qflash player自行启动一个socketq接目标端口。到此ؓ(f)止,socketq接成功?
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd">
<!-- Policy file for xmlsocket://socks.example.com -->
<cross-domain-policy>
   
<!-- This is a master-policy file -->
   
<site-control permitted-cross-domain-policies="master-only"/>
   
<!-- Instead of setting to-ports="*",
administrators can use ranges and commas 
-->
   
<!-- This will allow access to ports 123, 456, 457, and 458 -->
   
<allow-access-from domain="swf.example.com" to-ports="123,456-458" />
</cross-domain-policy>    

Flash/Flex也支持基于Socket的网l连?Q服务器端可以是C++,VB,C#,Java{Q一语言开发。监听一个网l端口便可以接收到Flash/Flex开发的客户端的q接?



ActionScript 3.0提供?jin)通过Socketq接的方式与服务器端通信。这Ҏ(gu)越传统B/Sl构的重要特征。这样得网l通信可以x(chng)q接Q避免了(jin)HTTP协议无状?q接的弊病。ActionScript 3.0使用XMLSocketc进行连接。需要注意的是用XMLSocketc进行Socketq接Ӟ不能自动I过防火墙。要想穿q防火墙q接Q则需 要用基于HTTP协议的RTMP协议?



]]>
TOP中只查看某个或某些进E的信息http://www.shnenglu.com/API/archive/2013/09/26/203438.htmlC++技术中?/dc:creator>C++技术中?/author>Thu, 26 Sep 2013 03:08:00 GMThttp://www.shnenglu.com/API/archive/2013/09/26/203438.htmlhttp://www.shnenglu.com/API/comments/203438.htmlhttp://www.shnenglu.com/API/archive/2013/09/26/203438.html#Feedback0http://www.shnenglu.com/API/comments/commentRss/203438.htmlhttp://www.shnenglu.com/API/services/trackbacks/203438.html(1)得到mysqldq程的pid
[root@6 ~]# pidof mysqld
21538

(2)top指定查看PID
[root@6 ~]# top -p 21538

top - 09:15:06 up 30 days, 53 min, 3 users, load average: 0.07, 0.22, 0.23
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.0%us, 6.9%sy, 0.2%ni, 89.4%id, 0.3%wa, 0.1%hi, 0.1%si, 0.0%st
Mem: 1035140k total, 994888k used, 40252k free, 383072k buffers
Swap: 2048248k total, 80k used, 2048168k free, 237456k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21538 mysql 15 0 146m 21m 4372 S 0.0 2.1 3:03.84 mysqld


2、查看某些进E的信息
例:(x)mysqld/httpd的信?br />(1)得到mysqld/httpdq程的pid
[root@6 ~]# pidof mysqld
21538

[root@6 ~]# pidof httpd
31117 31116 31115 31114

(2)top指定查看PID
[root@6 ~]# top -p 21538,31117,31116,31115,31114


]]>
常用命o(h)http://www.shnenglu.com/API/archive/2013/09/09/203098.htmlC++技术中?/dc:creator>C++技术中?/author>Mon, 09 Sep 2013 01:42:00 GMThttp://www.shnenglu.com/API/archive/2013/09/09/203098.htmlhttp://www.shnenglu.com/API/comments/203098.htmlhttp://www.shnenglu.com/API/archive/2013/09/09/203098.html#Feedback0http://www.shnenglu.com/API/comments/commentRss/203098.htmlhttp://www.shnenglu.com/API/services/trackbacks/203098.htmlq行hostname命o(h)是?如果你没有设|过L?/a>,一般会(x)昄
localhost.localdomain
其中localhost表示
L?/a>,localdomain为域?q是一个完全域?FQDN,?L?/a>.域名")的Ş?br />



]]>
mysql 5.6.13安装http://www.shnenglu.com/API/archive/2013/09/01/202934.htmlC++技术中?/dc:creator>C++技术中?/author>Sun, 01 Sep 2013 15:15:00 GMThttp://www.shnenglu.com/API/archive/2013/09/01/202934.htmlhttp://www.shnenglu.com/API/comments/202934.htmlhttp://www.shnenglu.com/API/archive/2013/09/01/202934.html#Feedback0http://www.shnenglu.com/API/comments/commentRss/202934.htmlhttp://www.shnenglu.com/API/services/trackbacks/202934.html1.下蝲mysql
  选择源代码版QGeneric Linux ...Compressed TAR ArchiveQ?br />
2.安装必要的组?nbsp;

yum -y install  gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake


3.

groupadd mysql

useradd -r -g mysql mysql
passwd mysql
tar -zxvf mysql*.tar.gz
cd mysql-5.6.13
cmake .
make;make install

4.安装路径默认?usr/local/mysql?br />

chown -R mysql.mysql /usr/local/mysql

cd /usr/local/mysql/scripts

./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

 cd /usr/local/mysql/support-files

 cp  mysql.server       /etc/init.d/mysql

cp my-default.cnf /etc/my.cnf

....................
chkconfig -add mysql
chkconfig mysql on
service mysql start




]]>
Linux下如何查看高CPU占用率线E?http://www.shnenglu.com/API/archive/2013/08/31/202894.htmlC++技术中?/dc:creator>C++技术中?/author>Sat, 31 Aug 2013 09:36:00 GMThttp://www.shnenglu.com/API/archive/2013/08/31/202894.htmlhttp://www.shnenglu.com/API/comments/202894.htmlhttp://www.shnenglu.com/API/archive/2013/08/31/202894.html#Feedback0http://www.shnenglu.com/API/comments/commentRss/202894.htmlhttp://www.shnenglu.com/API/services/trackbacks/202894.html?Linux ?top 工具可以昄 cpu 的^均利用率(user,nice,system,idle,iowait,irq,softirq,etc.)Q可以显C每?cpu 的利用率。但是无法显C每个线E的 cpu 利用率情况,
q时可能出现这U情况,ȝ cpu 利用率中 user ?system 很高Q但是用q程?cpu 占用率进行排序时Q没有进E的 user ?system 与之对应?/span>

可以用下面的命o(h)?cpu 占用率高的线E找出来:
$ ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu

q个命o(h)首先指定参数'H'Q显C线E相关的信息Q格式输Z包含:user,pid,ppid,tid,time,%cpu,cmdQ然后再?cpu字段q行排序。这样就可以扑ֈ占用处理器的U程?jin)?/span>



]]>
安装cinnamonhttp://www.shnenglu.com/API/archive/2013/06/08/200876.htmlC++技术中?/dc:creator>C++技术中?/author>Sat, 08 Jun 2013 07:15:00 GMThttp://www.shnenglu.com/API/archive/2013/06/08/200876.htmlhttp://www.shnenglu.com/API/comments/200876.htmlhttp://www.shnenglu.com/API/archive/2013/06/08/200876.html#Feedback0http://www.shnenglu.com/API/comments/commentRss/200876.htmlhttp://www.shnenglu.com/API/services/trackbacks/200876.html1.yum search cinnamon
 搜出来的结果全部安?br />
2.
yum install gnome-tweak-tool


]]>
windows和linux双系l删除linuxhttp://www.shnenglu.com/API/archive/2013/01/20/197424.htmlC++技术中?/dc:creator>C++技术中?/author>Sun, 20 Jan 2013 06:52:00 GMThttp://www.shnenglu.com/API/archive/2013/01/20/197424.htmlhttp://www.shnenglu.com/API/comments/197424.htmlhttp://www.shnenglu.com/API/archive/2013/01/20/197424.html#Feedback2http://www.shnenglu.com/API/comments/commentRss/197424.htmlhttp://www.shnenglu.com/API/services/trackbacks/197424.html 

装了(jin)Windows和linux双系l的朋友Q在后期要删除linux是个比较头痛的问题,因ؓ(f)MBR已经被linux接管Q本文的目的是如何在windows 和linux双系l下Q简单,完美地卸载linux?/p>

使用MbrFix.exe卸蝲Windows双系lLinux

不用Windowspȝ安装盘,不用安装矮hDOS工具׃可以很简单地实现卸蝲Linux。双pȝ卸蝲Linux的主要问题是当在windows中将linux 分区直接格式化之后,Grubpȝ引导E序也会(x)被同时删除,所以导致重启后无法q入Windows 或LinuxM一个系l?/p>

因此卸蝲linux之前Q先修复MBRQ然后再删除Linux分区可以了(jin)。而MbrFix.exe 是q样一个Windows 修复MBR的应用程序YӞMbrFix.exe 不仅支持Windows XPQ还支持32位或64位的Windows NT, Windows 2000,Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7 ?Windows PEpȝ?/p>

使用MbrFix.exe卸蝲Linux的步骤如下:(x)

1. 下蝲MbrFix.exe

首先q入Windows 操作pȝQ进入www.sysint.no |站下蝲MbrFix.exeQ或者从(下蝲)从上往下数W四个Y件即是;

下蝲完成后解压zip压羃包,MbrFix.exe 剪切到C?pȝ?Q?/p>

Q如果是64位的pȝQ请用MbrFix64.exeQ?/p>

以管理员w䆾q行

开?#8211;>q行–>cmd–cd \命o(h)q入C盘符–>q行命o(h)Q? MbrFix /drive 0 fixmbr /yes –>Enter回RQ?/p>

Q如果是VistapȝQ运行命令:(x)  MbrFix /drive 0 fixmbr /vista /yes –>Enter回RQ?/p>

Q如果是Win7pȝQ运行命令:(x)  MbrFix /drive 0 fixmbr /win7 /yes –>Enter回RQ?/p>

q样MBR修复完成了(jin)Q没有Q何提C(没有消息是最好的消息Q。接下来直接删除linux分区可以了(jin)?/p>

2. 格式化删?Linux分区

以Win7pȝZQ点?#8220;计算?#8221;右键–>理–>盘理–>看到几个没有盘符名称的分?看准哦,不要Windows 分区l误删了(jin)?–>右键–>删除逻辑分区?/p>

重启?sh)脑QGrub 已经不复存在Q双pȝLinux 卸蝲完成Q电(sh)脑启动自动进入Windowspȝ….



]]>
centos 使用fedora?/title><link>http://www.shnenglu.com/API/archive/2012/12/31/196882.html</link><dc:creator>C++技术中?/dc:creator><author>C++技术中?/author><pubDate>Mon, 31 Dec 2012 15:06:00 GMT</pubDate><guid>http://www.shnenglu.com/API/archive/2012/12/31/196882.html</guid><wfw:comment>http://www.shnenglu.com/API/comments/196882.html</wfw:comment><comments>http://www.shnenglu.com/API/archive/2012/12/31/196882.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/API/comments/commentRss/196882.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/API/services/trackbacks/196882.html</trackback:ping><description><![CDATA[<div>1. <a ><font color="#000000">可以从该处理?</font>http://fedoraproject.org/wiki/EPEL</a>?br />  <a >http://dl.fedoraproject.org/pub/epel/</a> 目录下查找:(x)<br />  <a >http://dl.fedoraproject.org/pub/epel/6/x86_64/</a>?br /><br /><br />  rpm -ivh <a >http://dl.fedoraproject.org/pub/epel/6/x86_64/</a><a >epel-release-6-8.noarch.rpm</a> <br />2. <strong>导入keyQ?br /></strong>rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6<br /><br /><br />3. yum install yum-priorities<br /><br /></div><img src ="http://www.shnenglu.com/API/aggbug/196882.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/API/" target="_blank">C++技术中?/a> 2012-12-31 23:06 <a href="http://www.shnenglu.com/API/archive/2012/12/31/196882.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Virtualbox下linux与windows׃n目录http://www.shnenglu.com/API/archive/2012/12/31/196879.htmlC++技术中?/dc:creator>C++技术中?/author>Mon, 31 Dec 2012 12:21:00 GMThttp://www.shnenglu.com/API/archive/2012/12/31/196879.htmlhttp://www.shnenglu.com/API/comments/196879.htmlhttp://www.shnenglu.com/API/archive/2012/12/31/196879.html#Feedback0http://www.shnenglu.com/API/comments/commentRss/196879.htmlhttp://www.shnenglu.com/API/services/trackbacks/196879.html1. 在VirtualBox的菜单里选择“讑֤(Devices)” -> “安装增强功能?Install Guest Additions)”?br />
2. cd /media/cdom0

  sudo ./VboxLinuxAdditions.run

  开始安装工具包。安装完毕后Q重启linux?br />
3. 重启完成后点?#8220;讑֤(Devices)” -> ׃n文档?Shared Folders)菜单Q添加一个共享文档夹Q选项固定和(f)时是指该文档Ҏ(gu)否是持久的?br />   ׃n名能够Q取一个自己喜Ƣ的Q比?#8220;linuxshare”Q尽量用英文名U?br />
4.   mkdir /mnt/shared

  sudo mount -t vboxsf linuxshare /mnt/shared

5. 假如(zhn)不x(chng)一ơ都手动挂蝲Q能够在/etc/fstab中添加一?

   linuxshare /mnt/shared vboxsf rwQgid=100Quid=1000Qauto 0 0

  q样p够自动挂载了(jin)?br />
6.注意Q?

  ׃n文档夹的名称千万不要和挂载点的名U相同。比如,上面的挂载点?mnt/sharedQ假如共享文档夹的名字也是shared的话Q在挂蝲的时候就?x)出现如下的错误信?看httpQ?/www.virtualbox.org/ticket/2265)Q?/font>

  /sbin/mount.vboxsfQ?mounting failed with the errorQ?Protocol error

  原因分析能够看Tips on running Sun Virtualbox的Shared

  



]]>
DDD安装http://www.shnenglu.com/API/archive/2012/08/25/188256.htmlC++技术中?/dc:creator>C++技术中?/author>Sat, 25 Aug 2012 08:46:00 GMThttp://www.shnenglu.com/API/archive/2012/08/25/188256.htmlhttp://www.shnenglu.com/API/comments/188256.htmlhttp://www.shnenglu.com/API/archive/2012/08/25/188256.html#Feedback0http://www.shnenglu.com/API/comments/commentRss/188256.htmlhttp://www.shnenglu.com/API/services/trackbacks/188256.html
  • 从这里下?a >http://ftp.gnu.org/gnu/ddd/合适的?/span>
  • q里得到的是*.src.rpmQ解压出来里面的源码包,q入到目录下
  • #./configure && make 可能?x)出现错误,错误的内容大概是是?span style="color: rgb(255,0,0)">EOF没有声明Q文件是strclass.C
  • # find . -name strclass.C 扑ֈ文g的\径,然后vim~辑Q在头部加入#define EOF -1
  • 重新~译#make
  • #make install


  • ]]>
    安装insighthttp://www.shnenglu.com/API/archive/2012/08/21/187885.htmlC++技术中?/dc:creator>C++技术中?/author>Tue, 21 Aug 2012 14:35:00 GMThttp://www.shnenglu.com/API/archive/2012/08/21/187885.htmlhttp://www.shnenglu.com/API/comments/187885.htmlhttp://www.shnenglu.com/API/archive/2012/08/21/187885.html#Feedback0http://www.shnenglu.com/API/comments/commentRss/187885.htmlhttp://www.shnenglu.com/API/services/trackbacks/187885.html1.下蝲insight-6.8-1a.tar.bz2
    ftp://sourceware.org/pub/insight/releases
     
    2.  1) 安装X界面开发库 sudo apt-get install libx11-dev Q包启在libgd2-xpm-devQ?/span>

          2) 安装安装termcap库(gdb需要)(j)sudo apt-get install libncurses5-dev


    3.~译安装

         ./configure --prefix=/usr/local/insight (也可以不有)(j)
            make
            sudo make install

    4. ~译与Insight配对的gdbserver
    # cd insight-6.8-1/gdb/gdbserver
    # ./configure
    # make
    #make install
    在insight-6.8-1/gdb/gdbserver目录下生成gdbserver工具?br />

    5.错误解决

          (1)  ~译q程中,如果出现以下错误Q?/p>

            linux-nat.c: In function ‘linux_nat_info_proc_cmd’:
            linux-nat.c:2879: error: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
            make[2]: *** [linux-nat.o] 错误 1
            make[2]:正在d目录 `/home/kdjie/insight-6.8-1/gdb'
            make[1]: *** [all-gdb] 错误 2
            make[1]:正在d目录 `/home/kdjie/insight-6.8-1'
            make: *** [all] 错误 2

            q时误?span style="color: #ff0000">gdb目录Q找到生成的Makefile文gQ修改这一行ؓ(f)

            WERROR_CFLAGS = #-Werror

            如果~译不过Q可能还需要修?
            cd insight-6-8-1/gdb
            vim i386-linux-nat.c
            在头文g部分加上Q?br />        #include "i387-tdep.h"    
      


       2Q在~译make以后出现如下错误
    eval.c: 在函?#8216;evaluate_subexp_standard’?
    eval.c:1705: 错误Q此函数中的‘subscript_array’在用前可能未初始化
    make[2]: *** [eval.o] 错误 1
    make[2]: Leaving directory `/root/下蝲/insight-6.8/gdb'
    make[1]: *** [install-gdb] 错误 2
    make[1]: Leaving directory `/root/下蝲/insight-6.8'
    make: *** [install] 错误 2

       修改gdb/eval.c文g1644?
         int subscript_array[MAX_FORTRAN_DIMS] = {0};
       修改以后在从make开?q样安装成功了(jin)。。。。?/p>



    5.q行
      /usr/local/insight/bin/insight
    注意必需全\?/p>

    ]]>
    ׃n库的配置http://www.shnenglu.com/API/archive/2012/08/16/187418.htmlC++技术中?/dc:creator>C++技术中?/author>Thu, 16 Aug 2012 13:31:00 GMThttp://www.shnenglu.com/API/archive/2012/08/16/187418.htmlhttp://www.shnenglu.com/API/comments/187418.htmlhttp://www.shnenglu.com/API/archive/2012/08/16/187418.html#Feedback0http://www.shnenglu.com/API/comments/commentRss/187418.htmlhttp://www.shnenglu.com/API/services/trackbacks/187418.html1.?nbsp;/etc/ld.so.conf 中加入so的\?br />比如Q?br />/mnt/hgfs/Source/souceGoogle/trunk/znet/bin
    q运行:(x)
    ldconfig



    ]]>
    CentOS安装crontab?qing)用方?/title><link>http://www.shnenglu.com/API/archive/2012/03/28/169237.html</link><dc:creator>C++技术中?/dc:creator><author>C++技术中?/author><pubDate>Wed, 28 Mar 2012 00:49:00 GMT</pubDate><guid>http://www.shnenglu.com/API/archive/2012/03/28/169237.html</guid><wfw:comment>http://www.shnenglu.com/API/comments/169237.html</wfw:comment><comments>http://www.shnenglu.com/API/archive/2012/03/28/169237.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/API/comments/commentRss/169237.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/API/services/trackbacks/169237.html</trackback:ping><description><![CDATA[<div id="thf91hv" class="entry-content"> <p>安装crontab:<code><span style="color: #000000"> yum install crontabs</span> </code><br />说明Q?br /><code><span style="color: #000000">/sbin/service crond start //启动服务 <br />/sbin/service crond stop //关闭服务 <br />/sbin/service crond restart //重启服务 <br />/sbin/service crond reload //重新载入配置</span> </code><!--more--><br />查看crontab服务状态:(x)<code><span style="color: #000000"> service crond status</span> </code><br />手动启动crontab服务Q?code><span style="color: #000000"> service crond start</span> </code><br />查看crontab服务是否已设|ؓ(f)开机启动,执行命o(h)Q?code><span style="color: #000000"> ntsysv</span> </code><br />加入开动启?<code><span style="color: #000000"> chkconfig --level 35 crond on</span> </code> <p>1Qcrontab命o(h)</p> <p>功能说明Q设|计时器?/p> <p>语  法:(x)crontab [-u <用户名称>][配置文g] ?crontab [-u <用户名称>][-elr]</p> <p>补充说明Qcron是一个常L务,它提供计时器的功能,让用户在特定的时间得以执行预讄指o(h)或程序。只要用户会(x)~辑计时器的配置文gQ就可以?用计时器的功能。其配置文g格式如下Q?br />Minute Hour Day Month DayOFWeek Command</p> <p>参  敎ͼ(x)<br />-e  ~辑该用L(fng)计时器设|?br />-l  列出该用L(fng)计时器设|?br />-r  删除该用L(fng)计时器设|?br />-u<用户名称>  指定要设定计时器的用户名U?/p> <p>2Qcrontab 格式</p> <p><strong>基本格式 :</strong><br />* *  *  *  *  command<br />分 时 日 月 周  命o(h)</p> <p>W?列表C分??9 每分钟用*或?*/1表示<br />W?列表C小??3Q?表示0点)(j)<br />W?列表C日??1<br />W??表示月䆾1?2<br />W?列标识号星期0?Q?表示星期天)(j)<br />W?列要q行的命?br /><br /><br /><br /><strong>crontabҎ(gu)的符可明:(x)<br /><br /></strong>"*"代表所有的取D围内的数字。特别要注意哦!<br /><br />"/"代表每的意思,?*/5"表示?个单?br /><br />"-"代表从某个数字到某个数字<br /><br />","分散的数?br /></p> <p><br /><strong>crontab文g的一些例子:(x)</strong></p><code><span style="color: #000000">30 21 * * * /usr/local/etc/rc.d/lighttpd restart</span> </code><br />上面的例子表C每晚的21:30重启 apache? <p> </p><code><span style="color: #000000">45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart</span> </code><br />上面的例子表C每??10?2日的4 : 45重启apache? <p> </p><code><span style="color: #000000">10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart</span> </code><br />上面的例子表C每周六、周日的1 : 10重启apache? <p> </p><code><span style="color: #000000">0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart</span> </code><br />上面的例子表C在每天18 : 00?3 : 00之间每隔30分钟重启apache? <p> </p><code><span style="color: #000000">0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart</span> </code><br />上面的例子表C每星期六的11 : 00 pm重启apache? <p> </p><code><span style="color: #000000">* */1 * * * /usr/local/etc/rc.d/lighttpd restart</span> </code><br />每一时重启apache <p> </p><code><span style="color: #000000">* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart</span> </code><br />晚上11点到早上7点之_(d)?隔一时重启apache <p> </p><code><span style="color: #000000">0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart</span> </code><br />每月?号与每周一到周??1炚w启apache <p> </p><code><span style="color: #000000">0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart</span> </code><br />一月一L(fng)4炚w启apache <p> </p><code><span style="color: #000000">*/30 * * * * /usr/sbin/ntpdate 210.72.145.44</span> </code><br />每半时同步一下时? <p> <br /><br /></p> <p>-------------------------------- 如何查看crontab的日志记?--------------------------------------------------------</p> <p>昨天crontab中的同步d没有执行Q不知道是什么原因没有执行,貌似dhang住了(jin)Q想查询一下crontab到底问题出在哪里Q或者hang在了(jin)什么地斏V?br /> <br />1.  linux<br />?/var/log/cronq个文g可以,可以用tail -f /var/log/cron观察<br /> <br />2.  unix<br />?/var/spool/cron/tmp文g中,有croutXXX001864的tmp文gQtail q些文g可以看到正在执行的d?jin)?br /> <br />3. maild<br />?/var/spool/mail/root 文g中,有crontab执行日志的记录,用tail -f /var/spool/mail/root 卛_查看最q的crontab执行情况?/p> <p> </p></div> <div id="9b1lnrf" class="ggads"><script type="text/javascript"><!-- google_ad_client = "pub-2998969793692916"; /* 468x15, 创徏?11-2-26 */ google_ad_slot = "3030194908"; google_ad_width = 468; google_ad_height = 15; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script></div><img src ="http://www.shnenglu.com/API/aggbug/169237.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/API/" target="_blank">C++技术中?/a> 2012-03-28 08:49 <a href="http://www.shnenglu.com/API/archive/2012/03/28/169237.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vsftpd 讄http://www.shnenglu.com/API/archive/2012/03/27/169113.htmlC++技术中?/dc:creator>C++技术中?/author>Tue, 27 Mar 2012 03:18:00 GMThttp://www.shnenglu.com/API/archive/2012/03/27/169113.htmlhttp://www.shnenglu.com/API/comments/169113.htmlhttp://www.shnenglu.com/API/archive/2012/03/27/169113.html#Feedback0http://www.shnenglu.com/API/comments/commentRss/169113.htmlhttp://www.shnenglu.com/API/services/trackbacks/169113.html
    userlist_enable=YES
    /etc/vsftpd/user_list含有root名单
    2U解军_法:(x)


    (1)userlist_enable=NO

    • root从user_list中去?

    (2)
    root?etc/vsftpd/ftpusers中去掉?

    如果d出现
    [右] 500 OOPS: cannot change directory:/home/bluesky
    [右] q接p|

    作如下设|?

    setsebool -P ftp_home_dir=1

    service vsftpd restart



    ]]>
    Linux 限制和软限?/title><link>http://www.shnenglu.com/API/archive/2012/03/19/168289.html</link><dc:creator>C++技术中?/dc:creator><author>C++技术中?/author><pubDate>Mon, 19 Mar 2012 00:57:00 GMT</pubDate><guid>http://www.shnenglu.com/API/archive/2012/03/19/168289.html</guid><wfw:comment>http://www.shnenglu.com/API/comments/168289.html</wfw:comment><comments>http://www.shnenglu.com/API/archive/2012/03/19/168289.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/API/comments/commentRss/168289.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/API/services/trackbacks/168289.html</trackback:ping><description><![CDATA[<div> <p>q一部分的提出是Z(jin)防止失控的进E破坏系l的性能</p> <p>nuix和Linux跟踪q程使用的大部分资源Q允许用户和pȝ理员(sh)用对q程的资源限?/p> <p> 讄的限制有两种Q?限制和软限?/p> <p>限制是可以在Q何时候Q何进E中讄  但硬限制只能pU用h?/p> <p>软限制是内核实际执行的限ӞMq程都可以将软限制设|ؓ(f)L于{于对进E限制的限制的?/p> <p><br /></p> <p>———————以下内容{载(H然发现q方面有好资源便直接引用?jin)?j)—————————</p> <p>getrlimit和setrlimit函数 <br />  每个q程都有一l资源限Ӟ其中某一些可以用getrlimit和setrlimit函数查询和更攏V?/p> <p>#include <br />#include <br />int getrlimit(int resource,struct rlimit *rlptr);<br />int setrlimit(int resource,const struct rlimit rlptr);<br />Both return: 0 if OK,nonzero on error两个函数</p> <p>  q回Q若成功?Q出错ؓ(f)?</p> <p>  对这两个函数的每一ơ调用都指定一个资源以?qing)一个指向下列结构的指针?/p> <p>struct rlimit{<br />rlim rlim rlimit_ur;/* 软限Ӟ(x)当前限制 */<br />rlim rlim rlim_ax;Q? 限Ӟ(x)rlimcur的最大?*/<br />}Q?/p> <p>可用的?/p> <p>RLIMIT _AS                q程可用的内存的最大数量,包括堆栈、全局变量、动态内?/p> <p>RLIMIT _CORE           内核生成的core文g的最大大?/p> <p>RLIMIT _CPU             所用的全部cpu旉 以秒计算</p> <p>RLIMIT _DATA           数据存储的最大容量,以字节计,不包括程序分配的动态存储空?/p> <p>RLIMIT _FSIZE          打开文g的最大数?/p> <p>RLIMIT _MEMLOCK   </p> <p>RLIMIT _NOFILE       </p> <p>RLIMIT _NPROC       q程可以产生的最大子q程数量</p> <p>RLIMIT _RSS            可以随时使用的内存最大容?/p> <p>RLIMIT _STACK        堆栈存储区的最大容?/p> <p><br />  q两个函C属于POSIX.1Q但SVR4?.3+BSD提供它们。SVR4在上面的l构中用基本系l数据类型rlim。其它系l则这</p> <p>两个成员定义为整型或长整型?/p> <p>  q程的资源限刉常是在pȝ初启时由0#q程建立的,然后由后l进Eѝ在SVR4中,pȝ默认值可以查看文</p> <p>?etc/conf/cfd/mtune?.3+BSD中,pȝ默认值分散在多个头文件中?/p> <p>  在更改资源限制时Q须遵@下列三条规则Q?/p> <p>  1.M一个进E都可将一个Y限制更改为小于或{于其硬限制?br />  2.M一个进E都可降低其限制|但它必须大于或等于其软限制倹{这U降低,Ҏ(gu)通用戯(g)言是不可逆反的?br />  3.只有用户可以提高限制?/p> <p>  一个无限量的限制由常数RLIM NFINITY指定?/p> <p>  q两个函数的resource参数取下列g一。注意ƈ非所有资源限刉受到SVR4?.3+BSD的支持?/p> <p>  RLMITCOREQSVR4?.3+BSD)core文g的最大字节数Q若其gؓ(f)0则阻止创建core文g?br />  RLIMIT PU(SVR4?.3+BSD)CPU旉的最大量?U?Q当过此Y限止Ӟ向该q程发送SIGXCPU信号?br />  RLIMIT ATA(SVR4?.3+BSD)数据D늚最大字节长度。这是图7.3中初始化数据、非初始化数据以?qing)堆的d?br />  RLIMIT SIZE(SVR4?.3+BSD)可以创徏的一个文件的最大字节长度。当过此Y限制Ӟ则向该进E发送SIGFSZ信号?br />  RLIMIT EMLOCKQ?.3+BSD)锁定在存储器地址I间(末实现)?br />  RLIMIT OFILE(SVR4)每个q程最多打开的文件数。更Ҏ(gu)限制媄(jing)响到sysconf函数在参?sc-OPEN-MAX中返回的?2.5.4?/p> <p>)。见E序2.3?br />  RLIMIT PROC(4.3+BSD)每个实际用户ID所拥有的最大子q程数。更Ҏ(gu)限制媄(jing)响到sysconf函数在参?CHILDMAX中返回的</p> <p>?2.5.4??br />  RLIMIT FILE(4.3+BSD)与SVR4的RLIMIT OFILE相同?br />  RLIMIT SSQ?.3+BSD)最大驻内存集字节长?RSS)。如果物理存储器供子应求Q则pȝ核将从进E处取回过RSS的部分?br />  RLIMIT TACK(SVR4?.3+BSD)栈的最大字节长度。见?.3?br />  RLIMIT MEMQSVR4)可映照地址I间的最大字节长度。这影响到mmap函数(12.9??/p> <p>  资源限制影响到调用进Eƈ由其子进Eѝ这意味着Z(jin)影响一个用L(fng)所有后l进E,需资源限制设|构造在shell</p> <p>之中。确实,Bourne Shell和Kornshellh内部ulimit命o(h)QCShellh内部limit命o(h)?umask和chdir也必Lshell内部?</p> <p>?/p> <p>  较早的BourmeShellQ例如由贝克莱提供的一U,不支持ulimit命o(h)。较新的KornShell的ulimit命o(h)h-H?s选择,?/p> <p>分别(g)查和修改和软的限制Q但它们末~写入文档?/p> <p>?</p> <p>?单的用例Q?/p> <p>#include<sys/time.h><br />#include<sys/resource.h><br />#include<unistd.h><br />int main()<br />{<br />  struct rlimit limit;<br /> char p = '1';<br /> limit.rlim_cur = RLIM_INFINITY;<br /> limit.rlim_max = RLIM_INFINITY;<br /> if(setrlimit(RLIMIT_CORE, &limit))<br /> {<br />  printf("set limit failed/n");<br /> }</p> <p> printf("p = %s/n",p);<br />} <br /></p> <p><br /></p> <p><br /></p> <p>---------------------------------------------------------------------------------------------------------------------------------------------</p> <p>Ҏ(gu)个进E都有一l资源限Ӟ其中一些可以用getrlimit和setrlimit函数查询和更?</p> <p>getrlimit和setrlimitQ资源限?(getrlimit and setrlimit: Resource Limits) </p> <p>q两个系l函数是和resource limit相关的。你用过ulimit命o(h)吗?Q反正我没用q)(j) <br />对于每个资源来说有两个limitQ一个是hard limitQ一个是soft limitQ其中后者永q不能超q前者,q且只有拥有superuser权限的进E可以更改前者?<br />getrlimit和setrlimit的参数相同:(x)W一个参数是资源的类型,W二个参数是rlimitl构的指针,q个l构里面只有两个成员:(x)hard limit和soft limit <br />几个重要的资源类?<br />RLIMIT_CPUQ程序执行的最大CPU旉Q单位是U。超q之后程序中止,中止的信hSIGXCPU <br />RLIMIT_DATAQ程序执行的最大内?<br />RLIMIT_NPROCQ程序孵出的最大子q程数量 <br />RLIMIT_NOFILEQ程序打开的文件的最大数?br /><br /><br />--------------------<br />如果你碰到类似的错误提示<br />ulimit: max user processes: cannot modify limit: 不允许的操作 <br />ulimit: open files: cannot modify limit: 不允许的操作<br /><br />为啥root用户是可以的Q普通用户又?x)遇到这L(fng)问题Q?br />看一?etc/security/limits.conf大概׃(x)明白?br />linux对用h默认的ulimit限制Q而这个文件可以配|用L(fng)配|和软配|,配|是个上限?br />出上限的修改就?x)?#8220;不允许的操作”q样的错误?br /><br />在limits.conf加上<br />* soft noproc 10240<br />* hard noproc 10240<br />* soft nofile 10240<br />* hard nofile 10240<br />是限制?jin)Q意用L(fng)最大线E数和文件数?0240?/p></div><img src ="http://www.shnenglu.com/API/aggbug/168289.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/API/" target="_blank">C++技术中?/a> 2012-03-19 08:57 <a href="http://www.shnenglu.com/API/archive/2012/03/19/168289.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>查看pȝ版本http://www.shnenglu.com/API/archive/2011/06/15/148726.htmlC++技术中?/dc:creator>C++技术中?/author>Wed, 15 Jun 2011 10:21:00 GMThttp://www.shnenglu.com/API/archive/2011/06/15/148726.htmlhttp://www.shnenglu.com/API/comments/148726.htmlhttp://www.shnenglu.com/API/archive/2011/06/15/148726.html#Feedback0http://www.shnenglu.com/API/comments/commentRss/148726.htmlhttp://www.shnenglu.com/API/services/trackbacks/148726.html1.查看发行版本
    lsb_release -a

    2.查看内核版本
    uname -a


    ]]>
    linux命o(h)l极pdQawkQ?/title><link>http://www.shnenglu.com/API/archive/2011/04/24/144895.html</link><dc:creator>C++技术中?/dc:creator><author>C++技术中?/author><pubDate>Sun, 24 Apr 2011 04:18:00 GMT</pubDate><guid>http://www.shnenglu.com/API/archive/2011/04/24/144895.html</guid><wfw:comment>http://www.shnenglu.com/API/comments/144895.html</wfw:comment><comments>http://www.shnenglu.com/API/archive/2011/04/24/144895.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/API/comments/commentRss/144895.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/API/services/trackbacks/144895.html</trackback:ping><description><![CDATA[<span style="color: #000bba;">一.awk功能特点</span><br style="color: #000000;"><span style="color: #000000;">     awk是一个非帔R要的命o(h)或者认为是一U语a。因Z可以做数学运,程控制语句Q流控制Q还有样式装入的功能。反正是非常强大。awk是三位创编写的。把awk定义为:(x)样式扫描处理语言?/span><br style="color: #000000;"><span style="color: #000000;">   awk吸收?jin)C语言很多的特点,所以与C语言有点cL?/span><br style="color: #000000;"><br style="color: #000000;"><span style="color: #000bba;">?awk的调用方?/span><br style="color: #000000;"><span style="color: #000000;">    awk提供?jin)适应不同需要的多种Ҏ(gu)Q它们是Q?/span><br style="color: #000000;"><span style="color: #000000;">  1.awk命o(h)?/span><br style="color: #000000;"><span style="color: #000000;">         像普通的unix命o(h)一样用awk,当然可以在你的命令行中用awk设计语言。而且q可以在shell脚本中引用awk命o(h)或awkE序脚本?/span><br style="color: #000000;"><span style="color: #000000;">   2.使用-f选项调用awkE序?/span><br style="color: #000000;"><span style="color: #000000;">        awk可以一DawkE序脚本写入C个文本文Ӟ然后使用-f选项来指定执行这个awk语言脚本?/span><br style="color: #000000;"><span style="color: #000000;">  3.利用命o(h)解释器调用awkE序</span><br style="color: #000000;"><span style="color: #000000;">        利用unix支持的命令解释功能。可以将一DawkE序写入到文本文Ӟ然后在它的第一行加上:(x)</span><br style="color: #000000;"><span style="color: #000000;">      #!/bin/awk -f</span><br style="color: #000000;"><span style="color: #000000;">   qchmod u+x权限。这样以后,你就可以用以下命令格式来调用?jin)?/span><br style="color: #000000;"><span style="color: #000000;">   $awk 脚本文g?nbsp; 待处理的文g</span><br style="color: #000000;"><br style="color: #000000;"><span style="color: #000bba;">?awk语法</span><br style="color: #000000;"><span style="color: #000000;">  1.与其他的unix命o(h)一P它的语法如下Q?/span><br style="color: #000000;"><span style="color: #000000;">    </span><font style="color: #000000;" id="zoom" class="f14"><span id="bxpb1br" class="postbody">awk [ -F re] [parameter...] ['prog'] [-f progfile][in_file...] <br>   参数说明Q?br>     -F re,指定某字Wؓ(f)分隔W?br>    parameter:该参数帮助不同的变量赋?br>    'prog': awk的程序语句段。这个语句段必须??括v来。以防被shelll解释掉?jin)。它的标准Ş式如下:(x)<br>         'pattern {action}'<br>    其中pattern参数可以是grep正则表达式中的Q何一个,</span></font><font style="color: #000000;" id="zoom" class="f14"><span id="lld999z" class="postbody">它可以用语?re/再加上一些样式匹配技巧构?/span></font><font style="color: #000000;" id="zoom" class="f14"><span id="lbh59ht" class="postbody">Q也可以使用","分开两样式以选择某个范围?/span></font><font style="color: #000000;" id="zoom" class="f14"><span id="l191fnx" class="postbody">? action参数L被大括号包围Q它׃pȝawk语句l成Q各语句之间?;"分隔。awk解释它们Qƈ在patternl定的样式匹配的记录上执? 其操作。与shellcMQ你也可以?#8220;#”作ؓ(f)注释W,它“#”到行内容成ؓ(f)注释Q在解释执行Ӟ它们被忽略。你可以省略pattern? action之一Q但不能两者同时省略,当省略pattern时没有样式匹配,表示Ҏ(gu)有行Q记录)(j)均执行操作,省略action时执行缺省的操作——在 标准输出上显C?br><br>-f profile:</span></font><font style="color: #000000;" id="zoom" class="f14"><span id="bvlvnhj" class="postbody">允许awk调用q执行progfile指定E序文g。progfile是一个文本文Ӟ他必ȝ合awk的语?注意不是shell文g)?br><br> </span></font><span style="color: #000000;">in_file :awk的输入文Ӟ可以有多个。注意:(x)awk不会(x)修改输入文g。如果没有指定输入文Ӟ那么默认为标准输入(屏幕Q?/span><br style="color: #000000;"><br style="color: #000000;"><span style="color: #000bba;">? awk的记录,字段与内|变?/span><br style="color: #000000;"><span style="color: #000000;"> 1. 记录与字D?/span><br style="color: #000000;"><font style="color: #000000;" id="zoom" class="f14"><span id="njnjfpd" class="postbody">? awk中,~省的情况下L文本文件中的一行视Z个记录,而将一行中的某一部分作ؓ(f)记录中的一个字Dc(din)ؓ(f)?jin)操作这些不同的字段Qawk借用shell 的方法,?1,$2,$3...q样的方式来序地表CQ记录)(j)中的不同字段。特D地Qawk?0表示整个行(记录Q。不同的字段之间是用UC分隔 W的字符分隔开的。系l默认的分隔W是I格。awk允许在命令行中用-F re的Ş式来改变q个分隔W。事实上Qawk用一个内|的变量FS来记忆这个分隔符<br><br>  2. 内置变量<br>  </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="h1pxv1b" class="postbody">awk中有好几个这L(fng)内置变量Q例如,记录分隔W变量RS、当前工作的记录数NR{等?br><br></span></font><span style="color: #000000;">  CZQ显C文件本文gtestAwk中第3行到W?行,以字W?分隔的第一个字D,W三个字D:(x)</span><br style="color: #000000;"><span style="color: #000000;"> awk -F % 'NR==3,NR==6 {printf $1  $3}' testAwk</span><br style="color: #000000;">   <br>  CZQ杀ȝl中所有topq程<br>    <span style="color: #ff0000;">ps -ef|grep " top" |grep -v "grep"|awk '{printf $2}'|xargs kill -9</span><br>    ?br>    <span style="color: #ff0000;">kill -9 `ps -ef|grep " top" |grep -v "grep"|awk '{printf $2}'`</span><br style="color: #000000;"><br style="color: #000000;"><span style="color: #000bba;">? awk的内|函?/span><br style="color: #000000;"><span style="color: #000000;">  Q?  以上CZ?jin)printf函数Q它与E语言怼Q如下,昄testAwk文g中行号与W?个字D:(x)</span><br style="color: #000000;"><span style="color: #000000;">  </span><font style="color: #000000;" id="zoom" class="f14"><span id="nvztn73" class="postbody">$awk '{printf"%03d%s\n",NR,$1}' testAwk<br>  2. </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="9d5nnrf" class="postbody">昄文本文gmydoc匚wQ含有)(j)字符?sun"的所有行<br>   </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="p9vfldt" class="postbody">$awk '/sun/{print}' mydoc <br>  3.</span></font><font style="color: #000000;" id="zoom" class="f14"><span id="n1t11pd" class="postbody">׃昄整个记录Q全行)(j)是awk的缺省动作,因此可以省略action?br>   </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="nflpl1j" class="postbody">$awk '/sun/' mydoc <br><br>  4.</span></font><font style="color: #000000;" id="zoom" class="f14"><span id="df3nf3b" class="postbody">C第一个匹配Sun或sun的行与第一个匹配Moon或moon的行之间的行Qƈ昄到标准输Z</span></font><font style="color: #000000;" id="zoom" class="f14"><span id="tx5j1x9" class="postbody">Q?br>    </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="1pjdld7" class="postbody">$awk '/[Ss]un/,/[Mm]oon/ {print}' myfile <br><br>  5.</span></font><font style="color: #000000;" id="zoom" class="f14"><span id="z3p7h1h" class="postbody">下面的示例显CZ(jin)内置变量和内|函数l(f)engthQ)(j)的用:(x)<br>   </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="fhf9lpj" class="postbody">$awk 'length($0)>80 {print NR}' myfile <br><br>  6.</span></font><font style="color: #000000;" id="zoom" class="f14"><span id="1bhlhxl" class="postbody">UNIX中的用户q行安全性检查,Ҏ(gu)是考察/etc下的passwd文gQ检查其中的passwd字段Q第二字D)(j)是否?*"Q如不ؓ(f)"*"Q则表示该用h有设|密码,昄?gu)些用户名Q第一字段Q。我们可以用如下语句实现Q?<br>   </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="txzrlzl" class="postbody">#awk -F: '$2=="" {printf("%s no password!\n",$1' /etc/passwd<br>   </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="b1rfxj9" class="postbody">在这个示例中Qpasswd文g的字D分隔符?#8220;Q?#8221;Q因此,必须?FQ来更改默认的字D分隔符Q这个示例中也涉?qing)到了(jin)内|函数printf的?/span></font><br style="color: #000000;"><font style="color: #000000;" id="zoom" class="f14"><span id="tbjp1bn" class="postbody"> <br><span style="color: #000bba;"> ? </span></span></font><font style="color: #000000;" id="zoom" class="f14"><span id="bzrxtxl" class="postbody"><span style="color: #000bba;">awk的变?/span><br>   </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="zpjldb1" class="postbody">awk提供两种变量:<br>   (1) 内置变量<br>  在引用时Q不需要加$<br>   (2) </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="lh9xr3l" class="postbody">自定义变?br>       </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="1fnj1hj" class="postbody">awk中引用自定义变量必须在它前面加上标志W?$"</span></font><font style="color: #000000;" id="zoom" class="f14"><span id="h1t7lpp" class="postbody">。awkҎ(gu)其在awk中第一ơ出现的形式和上下文定其具体的数据cd。当变量cd不确定时Qawk默认其ؓ(f)字符串类型。这里有一个技巧:(x)如果你要让你的awkE序知道你所使用的变量的明确cdQ你应当在在E序中给它赋初倹{?/span></font><br style="color: #000000;"><font style="color: #000000;" id="zoom" class="f14"><span id="jlflvx1" class="postbody"> <br><span style="color: #000bba;">?</span></span></font><font style="color: #000000;" id="zoom" class="f14"><span id="vfzxr1z" class="postbody"><span style="color: #000bba;">q算与判?/span><br>    </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="hrvtzdf" class="postbody">awk 支持多种q算Q这些运与C语言提供的几本相同:(x)?????{等Q同Ӟawk也支持C语言中类?+?-?=?=?+?-之类的功 能,q给熟?zhn)C语言的用者编写awkE序带来?jin)极大的方便。作为对q算功能的一U扩展,awkq提供了(jin)一pd内置的运函敎ͼ如log、sqr? cos、sin{等Q和一些用于对字符串进行操作(q算Q的函数Q如length、substr{等Q。这些函数的引用大大的提高(sh)(jin)awk的运功能?<br><br>? 为对条g转移指o(h)的一部分Q关pd断是每种E序设计语言都具备的功能Qawk也不例外。awk中允许进行多U测试,如常用的==Q等于)(j)、!=Q不{? 于)(j)?gt;Q大于)(j)?lt;Q小于)(j)?gt;=Q大于等于)(j)?gt;=Q小于等于)(j){等Q同Ӟ作ؓ(f)样式匚wQ还提供?jin)~Q匹配于Q和Q~Q不 匚w于)(j)判断?<br><br>作ؓ(f)Ҏ(gu)试的一U扩充,awk也支持用逻辑q算W?!(??amp;&Q与Q、||Q或Q和括号Q)(j)q行多重判断Q这大大增强?jin)awk的功能。本文的附录中列Z(jin)awk所允许的运、判断以?qing)操作符的优先?<br><br><span style="color: #000bba;"> ? </span></span></font><font style="color: #000000;" id="zoom" class="f14"><span id="d1191fp" class="postbody"><span style="color: #000bba;">awk的流E控?</span><br>  1. </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="blf1ldf" class="postbody">BEGIN和END: <br>     </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="p9v7h1f" class="postbody">M在BEGIN之后列出的操作(在{}内)(j)在awk开始扫描输入之前执行,而END之后列出的操作将在扫描完全部的输入之后执行。因此,通常使用BEGIN来显C变量和预置Q初始化Q变量,使用END来输出最l结果?br>   </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="1b97jzd" class="postbody">例:(x)累计销售文件xs中的销售金额(假设销售金额在记录的第三字D)(j)Q?<br><br>$awk <br>>'BEGIN { FS=":";print "l计销售金?;total=0} <br>>{print $3;total=total+$3;} <br>>END {printf "销售金额总计Q?.2f",total}' sx <br>Q注Q?gt;是shell提供的第二提C符Q如要在shellE序awk语句和awk语言中换行,则需在行֊反斜杠\Q?<br><br>在这里,BEGIN预置?jin)内部变量FSQ字D分隔符Q和自定义变量total,同时在扫描之前显C出输出行头。而END则在扫描完成后打印出d计?</span></font><br style="color: #000000;"><font style="color: #000000;" id="zoom" class="f14"><span id="d9vr3pf" class="postbody"><br>  2. </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="bzd9xnp" class="postbody">程控制语句 <br>  (1) if .. else<br>  </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="dzfpx3x" class="postbody">if...else语句<br>    </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="9phzhz3" class="postbody">格式Q?<br>if(表达? <br>语句1 <br>else <br>语句2 <br>  <br>   </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="lv1brvl" class="postbody">if(表达?Q?<br>{if(表达?Q?<br>语句1 <br>else <br>语句2 <br>} <br>语句3 <br>else {if(表达?) <br>语句4 <br>else <br>语句5 <br>} <br>语句6 <br>  (2) </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="9hpv19h" class="postbody">while语句 <br>    </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="ld95fvx" class="postbody">格式? <br><br>while(表达? <br>语句 <br>  (3)do-while语句 <br>格式? <br>do <br>{ <br>语句 <br>}while(条g判断语句Q?/span></font><br style="color: #000000;"><font style="color: #000000;" id="zoom" class="f14"><span id="xfxvdfh" class="postbody"><br>   (4) </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="bnhn99n" class="postbody">for语句<br>    </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="tp1v9tv" class="postbody">for(初始表达?l止条g;步长表达? <br>{语句} <br><br>? awk? while、do-while和for语句中允怋用break,continue语句来控制流E走向,也允怋用exitq样的语句来退出。break 中断当前正在执行的@环ƈ跛_循环外执行下一条语句。continue从当前位|蟩到@环开始处执行。对于exit的执行有两种情况Q当exit语句不在 END中时QQ何操作中的exit命o(h)表现得如同到?jin)文件尾Q所有模式或操作执行停止,END模式中的操作被执行。而出现在END中的exit导致程序终止?</span></font><br style="color: #000000;"><br style="color: #000000;"><span style="color: #000bba;">?</span><font style="color: #000000;" id="zoom" class="f14"><span id="xv9z1xp" class="postbody"><span style="color: #000bba;">awk中的自定义函?/span><br>  </span></font><font style="color: #000000;" id="zoom" class="f14"><span id="pbvrl9l" class="postbody">原始的awkq不提供函数功能Q只有在nawk或较新的awk版本中才可以增加函数<br></span></font><font style="color: #000000;" id="zoom" class="f14"><span id="bzrlpdr" class="postbody">awk函数的定义方法如下:(x) <br><br>function 函数?参数?{ <br>函数?<br>} <br></span></font><font style="color: #000000;" id="zoom" class="f14"><span id="9f1vrrh" class="postbody">在gawk中允许将function省略为funcQ但其它版本的awk不允许?/span></font><font style="color: #000000;" id="zoom" class="f14"><span id="9zrbjlx" class="postbody">? awk中调用函数比较简单,其方法与C语言怼Q但awk比C语言更ؓ(f)灉|Q它不执行参数有效性检查。换句话_(d)在你调用函数Ӟ可以列出比函数预计(? 数定义中规定Q的多或的参数Q多余的参数?x)被awk所忽略Q而不的参数Qawk它们置为缺省?或空字符Ԍ具体|ؓ(f)何|取决于参数的用方 式?/span></font><font style="color: #000000;" id="zoom" class="f14"><span id="1tj1rtj" class="postbody">在函C使用形如Qreturn q回?格式的语句?br></span></font><font style="color: #000000;" id="zoom" class="f14"><span id="hdjtbdf" class="postbody">例:(x) 下面的例子演CZ(jin)函数的用。在q个CZ中,定义?jin)一个名为print_header的函敎ͼ该函数调用了(jin)两个参数FileName? PageNumQFileName参数传给函数当前使用的文件名QPageNum参数是当前页的页受这个函数的功能是打华ͼ昄Q出当前文g的文件名Q? 和当前页的页受完成这个功能后Q这个函数将q回下一늚号?<br>nawk <br>>'BEGIN{pageno=1;file=FILENAME <br>>pageno=print_header(fileQpageno)Q?调用函数print_header <br>>printf("当前页hQ?d\n",pageno); <br>>} <br>>#定义函数print_header <br>>function print_header(FileName,PageNum){ <br>>printf("%s %d\n",FileName,PageNum); >PageNum++;return PageNUm; <br>>} <br>>}' myfile <br>执行q个E序显C如下内容:(x) <br>myfile 1 <br>当前页hQ? </span></font><br style="color: #000000;"><font style="color: #000000;" id="zoom" class="f14"><span id="3fxrlnb" class="postbody"><br></span></font><font style="color: #000bba;" id="zoom" class="f14"><span id="hzpvrvh" class="postbody"> ?</span></font><font style="color: #000000;" id="zoom" class="f14"><span id="t11jl1x" class="postbody"><span style="color: #000bba;">awk高输入输出 </span><br></span></font><font style="color: #000000;" id="zoom" class="f14"><span id="lvpz9dt" class="postbody">1.d下一条记录:(x) <br>awk的next语句Dawkd下一个记录ƈ完成模式匚wQ然后立x(chng)行相应的操作。通常它用匚w的模式执行操作中的代码。nextDq个记录的Q何额外匹配模式被忽略?<br><br>2.单地d一条记?<br>awk ? getline语句用于单地d一条记录。如果用h一个数据记录类g个物理记录,那么getline尤其有用。它完成一般字D늚分离(讄字段? ?0 FNR NF NR)。如果成功则q回1Q失败则q回0Q到达文件尾Q。如果需单地d一个文Ӟ则可以编写以下代码:(x) <br>例:(x)CZgetline的?<br>{while(getline==1) <br>{ <br>#process the inputted fields <br>} <br>} <br>也可以getline保存输入数据在一个字D中Q而不是通过使用getline variable的Ş式处理一般字Dc(din)当使用q种方式ӞNF被置?QFNR和NR被增倹{?<br>? 户也可以使用getline<"filename"方式从一个给定的文g中输入数据,而不是从命o(h)行所列内容输入数据。此Ӟgetline完? 一般字D分(讄字段变量$0和NF)。如果文件不存在Q返?1,成功Q返?,q回0表示p|。用户可以从l定文g中读取数据到一个变量中Q也可以 用stdin(标准输入讑֤Q或一个包含这个文件名的变量代替filename。值得注意的是当用这U方式时不修改FNR和NR?<br><br>另一U用getline语句的方法是从UNIX命o(h)接受输入Q例如下面的例子: <br>例:(x)CZ从UNIX命o(h)接受输入 <br>{while("who -u"|getline) <br>{ <br>#process each line from the who command <br>} <br>} <br><br>当然Q也可以使用如下形式: <br>"command" | getline variable <br><br>3.关闭文g: <br>awk中允许在E序中关闭一个输入或输出文gQ方法是使用awk的close语句?<br>close("filename") <br>filename可以是getline打开的文Ӟ也可以是stdin,包含文g名的变量或者getline使用的确切命令)(j)。或一个输出文Ӟ可以是stdoutQ包含文件名的变量或使用道的确切命令)(j)?<br><br>4.输出C个文? <br>awk中允许用如下方式结果输出到一个文Ӟ(x) <br>printf("hello word!\n")>"datafile" <br>?<br>printf("hello word!\n")>>"datafile" <br><br>5.输出C个命?<br>awk中允许用如下方式结果输出到一个命令:(x) <br>printf("hello word!\n")|"sort-t','" </span></font><br style="color: #000000;"><font style="color: #000000;" id="zoom" class="f14"><span id="139xd1b" class="postbody"><br><span style="color: #000bba;">十一.</span></span></font><font style="color: #000000;" id="zoom" class="f14"><span id="3xd1rtj" class="postbody"><span style="color: #000bba;">awk与shell script混合~程</span><br></span></font><font style="color: #000000;" id="zoom" class="f14"><span id="pnrbvlz" class="postbody">? 为awk可以作ؓ(f)一个shell命o(h)使用Q因此awk能与shell批处理程序很好的融合在一Pq给实现awk与shellE序的؜合编E提供了(jin)可能? 实现混合~程的关键是awk与shell script之间的对话,换言之,是awk与shell script之间的信息交?awk从shell script中获取所需的信息(通常是变量的|(j)、在awk中执行shell命o(h)行、shell script命令执行的l果送给awk处理以及(qing)shell scriptdawk的执行结果等{?<br><br>1.awkdShell scriptE序变量 <br>在awk中我们可以通过“'$变量?”的方式读取sell scrpitE序中的变量?<br>例:(x)在下面的CZ中,我们读取sell scrpitE序中的变量NameQ该变量存放的是文本myfile的撰写者,awk打印出q个人名?<br>$cat writename <br>: <br># @(#) <br># <br>. <br>. <br>. <br>Name="张三" nawk 'BEGIN {name="'Name'";\ printf("\t%s\t撰写?s\n",FILENAME,name");}\ <br>{...}END{...}' myfile <br>. <br>. <br>. <br><br>2.shell命o(h)的执行结果送给awk处理 <br>作ؓ(f)信息传送的一U方法,我们可以一条shell命o(h)的结果通过道U(|Q传递给awk处理Q?<br>例:(x)CZawk处理shell命o(h)的执行结?<br>$who -u | awk '{printf("%s正在执行%s\n",$2,$1)}' <br>该命令将打印出注册终端正在执行的E序名?<br><br>3.shell scriptE序读awk的执行结?<br>? ?jin)实现shell scriptE序dawk执行的结果,我们可以采取一些特D的Ҏ(gu)Q例如我们可以用变量?`awk语句`的Ş式将awk执行的结果存攑օ一? shell script变量。当然也可以用管道线的方法将awk执行l果传递给shell scriptE序处理?<br>例:(x)作ؓ(f)传送消? 的机制之一QUNIX提供?jin)一个向其所有用户传送消息的命o(h)wallQ意思是write to all写给所有用P(j)Q该命o(h)允许向所有工作中的用Pl端Q发送消息。ؓ(f)此,我们可以通过一Dshell批处理程序wall.shell来模拟这一E序 Q事实上比较老的版本中wall是一Dshell批处理程序:(x) <br><br>$cat wall.shell <br>: <br># @(#) wall.shell:发送消息给每个已注册终?<br># <br>cat >/tmp/$$ <br>#用户录入消息文本 who -u | awk '{print $2}' | while read tty <br>do <br>cat /tmp/$$>$tty <br>done <br>? q个E序里,awk接受who -u命o(h)的执行结果,该命令打印出所有已注册l端的信息,其中W二个字D|已注册终端的讑֤名,因此用awk命o(h)析出该设备名Q然后用while read tty语句循环dq些文g名到变量Qshell script变量Qtty中,作ؓ(f)信息传送的l结地址?<br><br>4.在awk中执行shell命o(h)?---嵌入函数system() <br>system()是一个不适合字符或数字类型的嵌入函数Q该函数的功能是处理作ؓ(f)参数传递给它的字符丌Ӏsystem对这个参数的处理是其作ؓ(f)命o(h)处理Q也是说将其当作命令行一样加以执行。这使得用户在自qawkE序需要时可以灉|地执行命令或脚本?<br>例:(x)下面的程序将使用system嵌入函数打印用户~制好的报表文gQ这个文件存攑֜名ؓ(f)myreport.txt的文件中。ؓ(f)Uv见,我们只列Z(jin)其END部分Q?<br>. <br>. <br>. <br>END {close("myreport.txt");system("lp myreport.txt");} <br>在这个示例中Q我们首先用close语句关闭?jin)文件myreport.txt文gQ然后用system嵌入函数myreport.txt送入打印机打印?</span></font><br style="color: #000000;"><font style="color: #000000;" id="zoom" class="f14"><span id="19ddjzd" class="postbody"><br><span style="color: #000bba;">十二</span></span></font><font style="color: #000000;" id="zoom" class="f14"><span id="jzdlr1n" class="postbody"><span style="color: #000bba;">附录Q?</span><br><br>1.awk的常规表辑ּ元字W?<br>\ 换码序列 <br>^ 在字W串的开头开始匹?<br>$ 在字W串的结ּ始匹?<br>. 与Q何单个字W串匚w <br>[ABC] 与[]内的M字符匚w <br>[A-Ca-c] 与A-C?qing)a-c范围内的字符匚wQ按字母表顺序)(j) <br>[^ABC] 与除[]内的所有字W以外的M字符匚w <br>Desk|Chair 与Desk和Chair中的M个匹?<br>[ABC][DEF] 兌。与A、B、C中的M字符匚wQ且其后要跟D、E、F中的M个字W?<br>* 与A、B或C中Q一个出?ơ或多次的字W相匚w <br>+ 与A、B或C中Q何一个出?ơ或多次的字W相匚w <br>Q?与一个空串或A、B或C在Q何一个字W相匚w <br>QBlue|BlackQberry 合ƈ常规表达式,与Blueberry或Blackberry相匹?<br><br>2.awk术q算W?<br>q算W?用?<br>------------------ <br>x^y x的yơ幂 <br>x**y 同上 <br>x%y 计算x/y的余敎ͼ求模Q?<br>x+y x加y <br>x-y x减y <br>x*y x乘y <br>x/y x除y <br>-y 负y(y的开关符?;也称一目减 <br>++y y?后用y(前置加)(j) <br>y++ 使用y值后?Q后~加)(j) <br>--y y?后用y(前置减)(j) <br>y-- 使用后y?(后缀减)(j) <br>x=y y的Dlx <br>x+=y x+y的Dlx <br>x-=y x-y的Dlx <br>x*=y x*y的Dlx <br>x/=y x/y的Dlx x%=y x%y的Dlx <br>x^=y x^y的Dlx <br>x**=y x**y的Dlx <br><br>3.awk允许的测试:(x) <br>操作W?含义 <br>x==y x{于y <br>x!=y x不等于y <br>x>y x大于y <br>x>=y x大于或等于y <br>x<y x于y <br>x<=y x于或等于y? <br>x~re x匚w正则表达式re? <br>x!~re x不匹配正则表辑ּre? <br><br>4.awk的操作符(按优先升序排列) <br>= ?=?-=?*= ?= ?%= <br>|| <br>&& <br>> >= < <= == != ~ !~ <br>xy (字符串连l,'x''y'变成"xy"Q?<br>+ - <br>* / % <br>++ -- <br><br>5.awk内置变量Q预定义变量Q?<br>说明Q表中v表C第一个支持变量的工具Q下同)(j)QA=awkQN=nawk,P=POSIX awk,G=gawk <br>V 变量 含义 ~省?<br>-------------------------------------------------------- <br>N ARGC 命o(h)行参C?<br>G ARGIND 当前被处理文件的ARGV标志W?<br>N ARGV 命o(h)行参数数l?<br>G CONVFMT 数字转换格式 %.6g <br>P ENVIRON UNIX环境变量 <br>N ERRNO UNIXpȝ错误消息 <br>G FIELDWIDTHS 输入字段宽度的空白分隔字W串 <br>A FILENAME 当前输入文g的名?<br>P FNR 当前记录?<br>A FS 输入字段分隔W?I格 <br>G IGNORECASE 控制大小写敏?Q大写敏感Q?<br>A NF 当前记录中的字段个数 <br>A NR 已经d的记录数 <br>A OFMT 数字的输出格?%.6g <br>A OFS 输出字段分隔W?I格 <br>A ORS 输出的记录分隔符 新行 <br>A RS 输入的记录他隔符 新行 <br>N RSTART 被匹配函数匹配的字符串首 <br>N RLENGTH 被匹配函数匹配的字符串长?<br>N SUBSEP 下标分隔W?"\034" <br><br>6.awk的内|函?<br>V 函数 用途或q回?<br>------------------------------------------------ <br>N gsub(reg,string,target) 每次常规表达式reg匚w时替换target中的string <br>N index(search,string) q回string中search串的位置 <br>A length(string) 求串string中的字符个数 <br>N match(string,reg) q回常规表达式reg匚w的string中的位置 <br>N printf(format,variable) 格式化输出,按format提供的格式输出变量variable?<br>N split(string,store,delim) Ҏ(gu)分界Wdelim,分解string为store的数l元?<br>N sprintf(format,variable) q回一个包含基于format的格式化数据Qvariables是要攑ֈ串中的数?<br>G strftime(format,timestamp) q回一个基于format的日期或者时间串Qtimestmp是systime()函数q回的时?<br>N sub(reg,string,target) W一ơ当常规表达式reg匚wQ替换target串中的字W串 <br>A substr(string,position,len) q回一个以position开始len个字W的子串 <br>P totower(string) q回string中对应的写字符 <br>P toupper(string) q回string中对应的大写字符 <br>A atan(x,y) x的余?弧度) <br>N cos(x) x的余?弧度) <br>A exp(x) e的xq?<br>A int(x) x的整数部?<br>A log(x) x的自然对数?<br>N rand() 0-1之间的随机数 <br>N sin(x) x的正?弧度) <br>A sqrt(x) x的^Ҏ(gu) <br>A srand(x) 初始化随机数发生器。如果忽略xQ则使用system() <br>G system() q回?970q??日以来经q的旉Q按U计)(j) </span></font> <img src ="http://www.shnenglu.com/API/aggbug/144895.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/API/" target="_blank">C++技术中?/a> 2011-04-24 12:18 <a href="http://www.shnenglu.com/API/archive/2011/04/24/144895.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux命o(h)l极pdQgrepQ?/title><link>http://www.shnenglu.com/API/archive/2011/04/17/144418.html</link><dc:creator>C++技术中?/dc:creator><author>C++技术中?/author><pubDate>Sun, 17 Apr 2011 14:16:00 GMT</pubDate><guid>http://www.shnenglu.com/API/archive/2011/04/17/144418.html</guid><wfw:comment>http://www.shnenglu.com/API/comments/144418.html</wfw:comment><comments>http://www.shnenglu.com/API/archive/2011/04/17/144418.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/API/comments/commentRss/144418.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/API/services/trackbacks/144418.html</trackback:ping><description><![CDATA[<span style="color: #000000;">一.grep命o(h)常用参数</span><br style="color: #000000;"><span style="color: #000000;">Q?Q-A NUM</span><br style="color: #000000;"><span style="color: #000000;">       Qgrep -A 1 aa test.txt</span><br style="color: #000000;"><span style="color: #000000;">        说明Q从test.txt中搜Laa样式的行Qƈ昄该行的后1?/span><br style="color: #000000;"><span style="color: #000000;"> Q?Q?B NUM </span><br style="color: #000000;"><span style="color: #000000;">       Qgrep -B 1 aa test.txt</span><br style="color: #000000;"><span style="color: #000000;">        说明Q从test.txt中搜Laa样式的行Qƈ昄该行的前1?/span><br style="color: #000000;"><span style="color: #000000;">   (3) -C NUM</span><br style="color: #000000;"><span style="color: #000000;">        #grep -C 2 aa test.txt</span><br style="color: #000000;"><span style="color: #000000;">        说明Q列出file中除包含panda样式的行外ƈ列出其上??/span><br style="color: #000000;"><span style="color: #000000;">    (4) -a?-test</span><br style="color: #000000;"><span style="color: #000000;">        #grep -a aa *.tar.gz</span><br style="color: #000000;"><span style="color: #000000;">       说明Q如果不?aQ找到后Q一般会(x)昄“匚wCq制文g tp_smapi-0.40.tgz”Q找不到</span><br style="color: #000000;"><span style="color: #000000;">                 不显CZQ何内宏V加-a后,可将二进位档案视为文字档案搜寻,扑ֈ后,可以昄q{?/span><br style="color: #000000;"><span style="color: #000000;"> Q?Q?b, --byte-offset</span><br style="color: #000000;"><span style="color: #000000;">        Qgrep -b aa test.txt</span><br style="color: #000000;"><span style="color: #000000;">        说明Q列出样式查扑ֈ的位|到文g开始有多少个字节(也可以认为是偏移Q?/span><br style="color: #000000;"><span style="color: #000000;">  Q?Q?-binary-files=TYPE</span><br style="color: #000000;"><span style="color: #000000;">        说明Q?此参数TYPE预设为binary(二进?Q若以普通方式搜寻,只有2U结?</span><br style="color: #000000;"><span style="color: #000000;">                   *若有W合的地方:(x)昄Binary file 二进位档?matches</span><br style="color: #000000;"><span style="color: #000000;">                   *若没有符合的地方Q什麽都没有昄?nbsp;               </span><br style="color: #000000;"><span style="color: #000000;">                   *若TYPE为without-matchQ遇到此参数Qgrep?x)认为此二进位档案没?/span><br style="color: #000000;"><span style="color: #000000;">                     包含M搜寻样式Q与-I 参数相同?/span><br style="color: #000000;"><span style="color: #000000;">                   *若TPYE为text, grep?x)将此二q位档视为text档案Q与-a 参数相同?/span><br style="color: #000000;"><span style="color: #000000;">                    注意: --binary-files=text 若输Zؓ(f)l端机,可能?x)生一些不必要的输?/span><br style="color: #000000;"><span style="color: #000000;">     (7) -c ?-count</span><br style="color: #000000;"><span style="color: #000000;">         #grep -c aa test.txt</span><br style="color: #000000;"><span style="color: #000000;">         说明Q显C匹配到的总行?/span><br style="color: #000000;"><span style="color: #000000;">   Q?Q?d ACTION, --directories=ACTION</span><br style="color: #000000;"><span style="color: #000000;">           grep -d recurse aa *</span><br style="color: #000000;"><span style="color: #000000;">           说明Q将递归查找包含aa的文?/span><br style="color: #000000;"><span style="color: #000000;">                      若输入的档案是一个资料夹Q用ACTIONd理这个资料夹。ACTION可以Z下几U?/span><br style="color: #000000;"><span style="color: #000000;">                       *预设ACTION是read(d)Q也是说此资料夹会(x)被视Z般的档案Q?/span><br style="color: #000000;"><span style="color: #000000;">                       *若ACTION是skip(略过)Q资料夹?x)被grep略过Q?/span><br style="color: #000000;"><span style="color: #000000;">                       *若ACTION是recurse(?Qgrep?x)去d资料夹下所有的档案Q?/span><br style="color: #000000;"><span style="color: #000000;">                         此相当於-r 参数?/span><br style="color: #000000;"><span style="color: #000000;">  Q?Q?nbsp; -E, --extended-regexp</span><br style="color: #000000;"><span style="color: #000000;">         说明Q采用规则表C式去解释样式?/span><br style="color: #000000;"><span style="color: #000000;">    (10)  -e PATTERN, --regexp=PATTERN</span><br style="color: #000000;"><span style="color: #000000;">       把样式做Z个parternQ通常用在避免partern?开?/span><br style="color: #000000;"><span style="color: #000000;">    (11)   -f FILE, --file=FILE</span><br style="color: #000000;"><span style="color: #000000;">       事先要搜寻的样式写入到一个档案,一行一个样式?/span><br style="color: #000000;"><span style="color: #000000;">       然後采用档案搜寻?/span><br style="color: #000000;"><span style="color: #000000;">       I的档案表示没有要搜ȝ样式Q因此也׃?x)有MW合?/span><br style="color: #000000;"><span style="color: #000000;">       </span><br style="color: #000000;"><span style="color: #000000;">   ex: (newfile为搜L式档)</span><br style="color: #000000;"><span style="color: #000000;">       $grep -f newfile file    </span><br style="color: #000000;"><br style="color: #000000;"><span style="color: #000000;">   (12).  -G, --basic-regexp</span><br style="color: #000000;"><span style="color: #000000;">       样式视为基本的规则表示式解释?此ؓ(f)预设)</span><br style="color: #000000;"><br style="color: #000000;"><span style="color: #000000;">   (13).  -H, --with-filename</span><br style="color: #000000;"><span style="color: #000000;">       在每个符合样式行前加上符合的档案名称Q若有\径会(x)昄路径?/span><br style="color: #000000;"><span style="color: #000000;">       </span><br style="color: #000000;"><span style="color: #000000;">   ex: (在file与testfile中搜寻panda样式)   </span><br style="color: #000000;"><span style="color: #000000;">       $grep -H panda file ./testfile</span><br style="color: #000000;"><span style="color: #000000;">                file:panda</span><br style="color: #000000;"><span style="color: #000000;">                ./testfile:panda</span><br style="color: #000000;"><span style="color: #000000;">                $</span><br style="color: #000000;"><span style="color: #000000;">     </span><br style="color: #000000;"><span style="color: #000000;">   (14).  -h, --no-filename  </span><br style="color: #000000;"><span style="color: #000000;">               ?H参数相类|但在输出时不昄路径?/span><br style="color: #000000;"><br style="color: #000000;"><span style="color: #000000;">   (15).  -I</span><br style="color: #000000;"><span style="color: #000000;">               grep?x)强制认为此二进位档案没有包含Q何搜L式,</span><br style="color: #000000;"><span style="color: #000000;">               ?-binary-files=without-match参数相同?/span><br style="color: #000000;"><span style="color: #000000;">                   </span><br style="color: #000000;"><span style="color: #000000;">           ex:  $ grep -I  panda mv</span><br><br><span style="color: red;">   (16).  -i, --ignore-case       </span><br style="color: red;"><span style="color: red;">               忽略大小写,包含要搜ȝ样式?qing)被搜寻的档案?/span><br style="color: red;"><span style="color: red;">               </span><br style="color: red;"><span style="color: red;">           ex:  $ grep -i panda mv</span><br>                <br><span style="color: #000000;">   (17).  -L, --files-without-match </span><br style="color: #000000;"><span style="color: #000000;">               不显C^怸般的输出l果Q反而显C出没有W合的档案名U?/span><br><br><span style="color: red;">   (18).  -l, --files-with-matches               </span><br style="color: red;"><span style="color: red;">               不显C^怸般的输出l果Q只昄W合的档案名U?/span><br><br><span style="color: #000000;">   (19).  --mmap               </span><br style="color: #000000;"><span style="color: #000000;">               如果可能Q用mmappȝ呼叫去读取输入,而不是预讄readpȝ呼叫?</span><br style="color: #000000;"><span style="color: #000000;">               在某些状况,--mmap 能生较好的效能?然而,--mmap </span><br style="color: #000000;"><span style="color: #000000;">               如果q作中档案羃短,或I/O 错误发生Ӟ</span><br style="color: #000000;"><span style="color: #000000;">               可能造成未定义的行ؓ(f)(包含core dump)Q?/span><br>               <br><span style="color: red;">   (20).  -n, --line-number</span><br style="color: red;"><span style="color: red;">               在显C前,标上行号?/span><br style="color: red;"><span style="color: red;">               </span><br style="color: red;"><span style="color: red;">            ex:  $ grep -n  panda file  </span><br style="color: red;"><span style="color: red;">                昄l果怼g:</span><br style="color: red;"><span style="color: red;">                行号:W合行的内容</span><br><br><span style="color: #000000;">   (21).  -q, --quiet, --silent </span><br style="color: #000000;"><span style="color: #000000;">               不显CZQ何的一般输出。请参阅-s?-no-messages</span><br><br><span style="color: red;">   (22).  -r, --recursive</span><br style="color: red;"><span style="color: red;">       递地Q读取每个资料夹下的所有档案,此相当於 -d recsuse 参数?/span><br><br> <span style="color: red;">  (23).  -s, --no-messages</span><br style="color: red;"><span style="color: red;">       不显C关g存在或无法读取的错误讯息?/span><br>     <br> <span style="color: #000000;">? 不像GNU grepQ传l的grep不符合POSIX.2协定Q?/span><br style="color: #000000;"><span style="color: #000000;">       因ؓ(f)~Z-q参数Q且他的-s 参数表现像GNU grep?-q 参数?/span><br style="color: #000000;"><span style="color: #000000;">       Shell Script們֐传l的grepULQ避开-q?s参数Q?/span><br style="color: #000000;"><span style="color: #000000;">       且将输出限制?dev/null?/span><br style="color: #000000;"><span style="color: #000000;">    </span><br style="color: #000000;"><span style="color: #000000;">POSIX: 定义UNIX?qing)UNIX-likepȝ需要提供的功能?nbsp;             </span><br style="color: #000000;"><span style="color: #000000;">    </span><br style="color: #000000;"><span style="color: #000000;">   (24).  -V, --version</span><br style="color: #000000;"><span style="color: #000000;">  昄出grep的版本号到标准错误?/span><br style="color: #000000;"><span style="color: #000000;">  当?zhn)在回报有关grep的bugsӞgrep版本h必须要包含在内的?/span><br style="color: #000000;"><br><span style="color: red;">   (25).  -v, --invert-match</span><br style="color: red;"><span style="color: red;">  昄除搜L式行之外的全部?/span><br>                   <br><span style="color: red;">   (26).  -w, --word-regexp</span><br style="color: red;"><span style="color: red;">          搜L式视Z个字L寻,完全W合??的行才会(x)被列出?/span><br><br><span style="color: red;">   (27).  -x, --line-regexp</span><br style="color: red;"><span style="color: red;">  搜L式视Z行去搜寻Q完全符合该"?的行才会(x)被列?/span><br><br><br><span style="color: #000000;">? grep正则表达?/span><br style="color: #000000;"><span style="color: #000000;">( 1 ) grep正则表达式元字符集:(x)</span><br style="color: #000000;"><br><code><span style="color: #000000;">^ 锚定行的开?如:(x)<span style="color: #ff00ff;">'^grep'</span>匚w所有以grep开头的行?<br>$ 锚定行的l束 如:(x)<span style="color: #ff00ff;">'grep$'</span>匚w所有以grepl尾的行?<br><span style="color: #0000cc;">.</span> 匚w一个非换行W的字符 如:(x)<span style="color: #ff00ff;">'gr.p'</span>匚wgr后接一个Q意字W,然后是p?<br><span style="color: #0000cc;">*</span> 匚w零个或多个先前字W?如:(x)<span style="color: #ff00ff;">'*grep'</span>匚w所有一个或多个I格后紧跟grep的行?<span style="color: #0000cc;">.</span><span style="color: #0000cc;">*</span>一L(fng)代表L字符?br><span style="color: #0000cc;">[</span><span style="color: #0000cc;">]</span> 匚w一个指定范围内的字W,?span style="color: #ff00ff;">'[Gg]rep'</span>匚wGrep和grep?<br><span style="color: #0000cc;">[</span><span style="color: #0000cc;">^</span><span style="color: #0000cc;">]</span> 匚w一个不在指定范围内的字W,如:(x)<span style="color: #ff00ff;">'[^A-FH-Z]rep'</span>匚w不包含A<span style="color: #0000cc;">-</span>R和T<span style="color: #0000cc;">-</span>Z的一个字母开_(d)紧跟rep的行?<br>\<span style="color: #0000cc;">(</span><span style="color: #0000cc;">.</span><span style="color: #0000cc;">.</span><span style="color: #0000cc;">\</span><span style="color: #0000cc;">)</span> 标记匚w字符Q如<span style="color: #ff00ff;">'\(love\)'</span>Qlove被标Cؓ(f)1?<br>\<span style="color: #0000cc;"><</span> 锚定单词的开始,?span style="color: #0000cc;">:</span><span style="color: #ff00ff;">'\<grep'</span>匚w包含以grep开头的单词的行?<br>\<span style="color: #0000cc;">></span> 锚定单词的结束,?span style="color: #ff00ff;">'grep\>'</span>匚w包含以grepl尾的单词的行?<br>x\{m\} 重复字符xQmơ,如:(x)<span style="color: #ff00ff;">'0\{5\}'</span>匚w包含5个o的行?<br>x\{m<span style="color: #0000cc;">,</span><span style="color: #0000cc;">\</span><span style="color: #0000cc;">}</span> 重复字符x<span style="color: #0000cc;">,</span>臛_mơ,如:(x)<span style="color: #ff00ff;">'o\{5,\}'</span>匚w臛_?个o的行?<br>x\{m<span style="color: #0000cc;">,</span>n\}重复字符xQ至mơ,不多于nơ,如:(x)<span style="color: #ff00ff;">'o\{5,10\}'</span>匚w5<span style="color: #0000cc;">-</span><span style="color: #0000cc;">-</span>10个o的行?br>\w 匚w文字和数字字W,也就?span style="color: #0000cc;">[</span>A<span style="color: #0000cc;">-</span>Za<span style="color: #0000cc;">-</span>z0<span style="color: #0000cc;">-</span>9<span style="color: #0000cc;">]</span>Q如Q?span style="color: #ff00ff;">'G\w*p'</span>匚w以G后跟零个或多个文字或数字字符Q然后是p?br>\b 单词锁定W,?span style="color: #0000cc;">:</span> <span style="color: #ff00ff;">'\bgrep\b'</span>只匹配grep?br><br></span></code>(2) 实例Q?br><code><span style="color: #000000;">关于匚w的实例:(x)<br>grep <span style="color: #0000cc;">-</span>c <span style="color: #ff00ff;">"48"</span> <span style="color: #0000ff;">test</span><span style="color: #0000cc;">.</span>txt l计所有以“48”字符开头的行有多少<br>grep <span style="color: #0000cc;">-</span>i <span style="color: #ff00ff;">"May"</span> <span style="color: #0000ff;">test</span><span style="color: #0000cc;">.</span>txt 不区分大写查找“May”所有的行)(j)<br>grep <span style="color: #0000cc;">-</span>n <span style="color: #ff00ff;">"48"</span> <span style="color: #0000ff;">test</span><span style="color: #0000cc;">.</span>txt 昄行号Q显C匹配字W?#8220;48”的行?qing)行P相同?nl <span style="color: #0000ff;">test</span><span style="color: #0000cc;">.</span>txt <span style="color: #0000cc;">|</span>grep 48Q?br>grep <span style="color: #0000cc;">-</span>v <span style="color: #ff00ff;">"48"</span> <span style="color: #0000ff;">test</span><span style="color: #0000cc;">.</span>txt 昄输出没有字符“48”所有的行)(j)<br>grep <span style="color: #ff00ff;">"471"</span> <span style="color: #0000ff;">test</span><span style="color: #0000cc;">.</span>txt 昄输出字符“471”所在的行)(j)<br>grep <span style="color: #ff00ff;">"48<tab>;"</span> <span style="color: #0000ff;">test</span><span style="color: #0000cc;">.</span>txt 昄输出以字W?#8220;48”开_(d)q在字符“48”后是一个tab键所在的?br>grep <span style="color: #ff00ff;">"48[34]"</span> <span style="color: #0000ff;">test</span><span style="color: #0000cc;">.</span>txt 昄输出以字W?#8220;48”开_(d)W三个字W是“3”或是“4”的所有的行)(j)<br>grep <span style="color: #ff00ff;">"^[^48]"</span> <span style="color: #0000ff;">test</span><span style="color: #0000cc;">.</span>txt 昄输出行首不是字符“48”的行Q?br>grep <span style="color: #ff00ff;">"[Mm]ay"</span> <span style="color: #0000ff;">test</span><span style="color: #0000cc;">.</span>txt 讄大小写查找:(x)昄输出W一个字W以“M”?#8220;m”开_(d)以字W?#8220;ay”l束的行Q?br>grep <span style="color: #ff00ff;">"K…D"</span> <span style="color: #0000ff;">test</span><span style="color: #0000cc;">.</span>txt 昄输出W一个字W是“K”Q第二、三、四是Q意字W,W五个字W是“D”所在的行)(j)<br>grep <span style="color: #ff00ff;">"[A-Z][9]D"</span> <span style="color: #0000ff;">test</span><span style="color: #0000cc;">.</span>txt 昄输出W一个字W的范围?#8220;A<span style="color: #0000cc;">-</span>D”Q第二个字符?#8220;9”Q第三个字符的是“D”的所有的?br>grep <span style="color: #ff00ff;">"[35]..1998"</span> <span style="color: #0000ff;">test</span><span style="color: #0000cc;">.</span>txt 昄W一个字W是3?Q第二三个字W是LQ以1998l尾的所有行<br>grep <span style="color: #ff00ff;">"4\{2,\}"</span> <span style="color: #0000ff;">test</span><span style="color: #0000cc;">.</span>txt 模式出现几率查找Q显C出字W?#8220;4”臛_重复出现两次的所有行<br>grep <span style="color: #ff00ff;">"9\{3,\}"</span> <span style="color: #0000ff;">test</span><span style="color: #0000cc;">.</span>txt 模式出现几率查找Q显C出字W?#8220;9”臛_重复出现三次的所有行<br>grep <span style="color: #ff00ff;">"9\{2,3\}"</span> <span style="color: #0000ff;">test</span><span style="color: #0000cc;">.</span>txt 模式出现几率查找Q显C出字W?#8220;9”重复出现的次数在一定范围内Q重复出?ơ或3ơ所有行<br>grep <span style="color: #0000cc;">-</span>n <span style="color: #ff00ff;">"^$"</span> <span style="color: #0000ff;">test</span><span style="color: #0000cc;">.</span>txt 昄输出I的行?br>ls <span style="color: #0000cc;">-</span>l <span style="color: #0000cc;">|</span>grep <span style="color: #ff00ff;">"^d"</span> 如果要查询目录列表中的目?同:(x)ls <span style="color: #0000cc;">-</span>d <span style="color: #0000cc;">*</span><br>ls <span style="color: #0000cc;">-</span>l <span style="color: #0000cc;">|</span>grep <span style="color: #ff00ff;">"^[^d]"</span> 在一个目录中查询不包含目录的所有文?开头ؓ(f)非d)<br>ls <span style="color: #0000cc;">-</span>l <span style="color: #0000cc;">|</span>grpe <span style="color: #ff00ff;">"^d…..x..x"</span> 查询其他用户和用L(fng)成员有可执行权限的目录集?/span></code><br><br>   <br>                 <br><br> <img src ="http://www.shnenglu.com/API/aggbug/144418.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/API/" target="_blank">C++技术中?/a> 2011-04-17 22:16 <a href="http://www.shnenglu.com/API/archive/2011/04/17/144418.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Core文g配置http://www.shnenglu.com/API/archive/2011/04/16/144345.htmlC++技术中?/dc:creator>C++技术中?/author>Sat, 16 Apr 2011 02:43:00 GMThttp://www.shnenglu.com/API/archive/2011/04/16/144345.htmlhttp://www.shnenglu.com/API/comments/144345.htmlhttp://www.shnenglu.com/API/archive/2011/04/16/144345.html#Feedback0http://www.shnenglu.com/API/comments/commentRss/144345.htmlhttp://www.shnenglu.com/API/services/trackbacks/144345.html
    W一U方法是修改/etc/profileQ把ulimit那一行改?br>
    ulimit -S -c unlimited > /dev/null 2>&1

    q样讄后系l允许所有用L(fng)成没有大限制的core dump文g。这样做的优Ҏ(gu)不需要重L(fng)l,~点是无法控制只让某些用L(fng)成core dump文g?br>
    W二U方法是修改/etc/security/limits.conf文g。很多系l上限都可以通过修改q个文g改变Q如最大子q程个数Q最大打开文g数等{。这个文件有详细的注释,对如何修改这个文件做?jin)说明。如果想Ҏ(gu)有用h开core dumpQ可以加入一?br>
    * soft  core  0




    ]]>
    linux命o(h)l极pd之(find与xargsQ?/title><link>http://www.shnenglu.com/API/archive/2011/04/16/144344.html</link><dc:creator>C++技术中?/dc:creator><author>C++技术中?/author><pubDate>Sat, 16 Apr 2011 01:58:00 GMT</pubDate><guid>http://www.shnenglu.com/API/archive/2011/04/16/144344.html</guid><wfw:comment>http://www.shnenglu.com/API/comments/144344.html</wfw:comment><comments>http://www.shnenglu.com/API/archive/2011/04/16/144344.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/API/comments/commentRss/144344.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/API/services/trackbacks/144344.html</trackback:ping><description><![CDATA[<font id="1" size="4"><strong>一、find 命o(h)格式<br> </strong></font> <p><font id="1.1" size="3"><strong><br> 1、find命o(h)的一般Ş式ؓ(f)Q?br> </strong></font></p> <div id="llpnh3f" class="codeblock"><code>find pathname -options [-print -exec -ok ...]</code></div> <p><font id="1.2" size="3"><strong><br> 2、find命o(h)的参敎ͼ<br> </strong></font></p> <div id="pvpxfrh" class="codeblock"><code>pathname: find命o(h)所查找的目录\径。例如用.来表C当前目录,?来表C系l根目录?br>-printQ?find命o(h)匹配的文g输出到标准输出?br>-execQ?find命o(h)对匹配的文g执行该参数所l出的shell命o(h)。相应命令的形式?command' {  } \;Q注意{   }和\Q之间的I格?br>-okQ??exec的作用相同,只不q以一U更为安全的模式来执行该参数所l出的shell命o(h)Q在执行每一个命令之前,都会(x)l出提示Q让用户来确定是否执行?/code></div> <p><font id="1.3" size="3"><strong><br> 3、find命o(h)选项<br> </strong></font><br> </p> <div id="vh1pzbd" class="codeblock"><code>-name <br><br>按照文g名查找文件?br><br>-perm <br>按照文g权限来查找文件?br><br>-prune <br>使用q一选项可以使find命o(h)不在当前指定的目录中查找Q如果同时?depth选项Q那?prune被find命o(h)忽略?br><br>-user <br>按照文g属主来查找文件?br><br>-group <br>按照文g所属的l来查找文g?br><br>-mtime -n +n <br>按照文g的更Ҏ(gu)间来查找文gQ?- n表示文g更改旉距现在n天以内,+ n表示文g更改旉距现在n天以前。find命o(h)q有-atime?ctime 选项Q但它们都和-m time选项?br><br>-nogroup <br>查找无有效所属组的文Ӟ卌文g所属的l在/etc/groups中不存在?br><br>-nouser <br>查找无有效属ȝ文gQ即该文件的属主?etc/passwd中不存在?br>-newer file1 ! file2 <br><br>查找更改旉比文件file1C比文件file2旧的文g?br>-type <br><br>查找某一cd的文Ӟ诸如Q?br><br>b - 块设备文件?br>d - 目录?br>c - 字符讑֤文g?br>p - 道文g?br>l - W号链接文g?br>f - 普通文件?br><br>-size nQ[c] 查找文g长度为n块的文gQ带有c时表C文仉度以字节计?br>-depthQ在查找文gӞ首先查找当前目录中的文gQ然后再在其子目录中查找?br>-fstypeQ查找位于某一cd文gpȝ中的文gQ这些文件系l类型通常可以在配|文?etc/fstab中找刎ͼ该配|文件中包含?jin)本pȝ中有x(chng)件系l的信息?br><br>-mountQ在查找文g时不跨越文gpȝmount炏V?br>-followQ如果find命o(h)遇到W号链接文gQ就跟踪至链接所指向的文件?br>-cpioQ对匚w的文件用cpio命o(h)Q将q些文g备䆾到磁带设备中?/code></div> <p>另外,下面三个的区?<br> </p> <div id="xjpv91t" class="codeblock"><code>   -amin n<br>  查找pȝ中最后N分钟讉K的文?br><br>  -atime n<br>  查找pȝ中最后n*24时讉K的文?br><br>  -cmin n<br>  查找pȝ中最后N分钟被改变文件状态的文g<br><br>  -ctime n<br>  查找pȝ中最后n*24时被改变文件状态的文g<br><br>    -mmin n<br>  查找pȝ中最后N分钟被改变文件数据的文g<br><br>  -mtime n<br>  查找pȝ中最后n*24时被改变文件数据的文g</code></div> <p><font id="1.4" size="3"><strong><br> 4、用exec或ok来执行shell命o(h)<br> </strong></font></p> <p> 使用findӞ只要把想要的操作写在一个文仉Q就可以用exec来配合find查找Q很方便?/p> <p> 在有些操作系l中只允?exec选项执行诸如l s或ls -lq样的命令。大多数用户使用q一选项是ؓ(f)?jin)查找旧文gq删除它们。徏议在真正执行rm命o(h)删除文g之前Q最好先用ls命o(h)看一下,认它们是所要删除的文g?/p> <p> exec选项后面跟随着所要执行的命o(h)或脚本,然后是一对儿{ }Q一个空格和一个\Q最后是一个分受ؓ(f)?jin)用exec选项Q必要同时使用print选项。如果验证一下find命o(h)Q会(x)发现该命令只输出从当前\径v的相对\径及(qing)文g名?/p> <p> 例如Qؓ(f)?jin)用ls -l命o(h)列出所匚w到的文gQ可以把ls -l命o(h)攑֜find命o(h)?exec选项?/p> <div id="p3p7nd1" class="codeblock"><code># find . -type f -exec ls -l {  } \;<br>-rw-r--r--    1 root     root        34928 2003-02-25  ./conf/httpd.conf<br>-rw-r--r--    1 root     root        12959 2003-02-25  ./conf/magic<br>-rw-r--r--    1 root     root          180 2003-02-25  ./conf.d/README</code></div> <p>上面的例子中Qfind命o(h)匚wC(jin)当前目录下的所有普通文Ӟq在-exec选项中用ls -l命o(h)它们列出?br> ?logs目录中查找更Ҏ(gu)间在5日以前的文gq删除它们:(x)</p> <div id="vt13txz" class="codeblock"><code>$ find logs -type f -mtime +5 -exec rm {  } \;</code></div> <p> <strong>CQ?/strong>在shell中用M方式删除文g之前Q应当先查看相应的文Ӟ一定要心(j)Q当使用诸如mv或rm命o(h)Ӟ可以使用-exec选项的安全模式。它?yu)在?gu)个匹配到的文件进行操作之前提CZ?/p> <p>在下面的例子中, find命o(h)在当前目录中查找所有文件名?LOGl尾、更Ҏ(gu)间在5日以上的文gQƈ删除它们Q只不过在删除之前先l出提示?/p> <div id="htphn1b" class="codeblock"><code>$ find . -name "*.conf"  -mtime +5 -ok rm {  } \;<br>< rm ... ./conf/httpd.conf > ? n</code></div> <p>按y键删除文Ӟ按n键不删除?/p> <p>M形式的命令都可以?exec选项中用?/p> <p>在下面的例子中我们用grep命o(h)。find命o(h)首先匚w所有文件名?#8220; passwd*”的文Ӟ例如passwd、passwd.old、passwd.bakQ然后执行grep命o(h)看看在这些文件中是否存在一个sam用户?/p> <div id="bhztppr" class="codeblock"><code># find /etc -name "passwd*" -exec grep "sam" {  } \;<br>sam:x:501:501::/usr/sam:/bin/bash</code></div> <p><font id="2" size="4"><strong><br> 二、find命o(h)的例子;<br> </strong></font></p> <p><font id="2.1" size="3"><strong><br> 1、查扑ֽ前用户主目录下的所有文Ӟ(x)<br> </strong></font></p> <p>下面两种Ҏ(gu)都可以?/p> <div id="rvn1npr" class="codeblock"><code>$ find $HOME -print<br>$ find ~ -print</code></div> <br> <font id="2.2" size="3"><strong><br> 2、让当前目录中文件属d有读、写权限Qƈ且文件所属组的用户和其他用户hL限的文gQ?br> </strong></font> <div id="z9hrzrt" class="codeblock"><code>$ find . -type f -perm 644 -exec ls -l {  } \;</code></div> <p><font id="2.3" size="3"><strong><br> 3、ؓ(f)?jin)查扄l中所有文仉度ؓ(f)0的普通文Ӟq列出它们的完整路径Q?br> </strong></font></p> <div id="rp9ph9t" class="codeblock"><code>$ find / -type f -size 0 -exec ls -l {  } \;</code></div> <p><font id="2.4" size="3"><strong><br> 4、查?var/logs目录中更Ҏ(gu)间在7日以前的普通文Ӟq在删除之前询问它们Q?br> </strong></font></p> <div id="xhnztvl" class="codeblock"><code>$ find /var/logs -type f -mtime +7 -ok rm {  } \;</code></div> <p><font id="2.5" size="3"><strong><br> 5、ؓ(f)?jin)查扄l中所有属于rootl的文gQ?br> </strong></font></p> <div id="dr99h9x" class="codeblock"><code>$find . -group root -exec ls -l {  } \;<br>-rw-r--r--    1 root     root          595 10?31 01:09 ./fie1</code></div> <p><font id="2.6" size="3"><strong><br> 6、find命o(h)删除当目录中访问时间在7日以来、含有数字后~的admin.log文g?br> </strong></font></p> <p>该命令只(g)查三位数字,所以相应文件的后缀不要过999。先建几个admin.log*的文?Q才能用下面这个命?/p> <div id="ztzf1rj" class="codeblock"><code>$ find . -name "admin.log[0-9][0-9][0-9]" -atime -7  -ok<br>rm {  } \;<br>< rm ... ./admin.log001 > ? n<br>< rm ... ./admin.log002 > ? n<br>< rm ... ./admin.log042 > ? n<br>< rm ... ./admin.log942 > ? n</code></div> <p><font id="2.7" size="3"><strong><br> 7、ؓ(f)?jin)查扑ֽ前文件系l中的所有目录ƈ排序Q?br> </strong></font></p> <div id="pbrb19z" class="codeblock"><code>$ find . -type d | sort</code></div> <p><font id="2.8" size="3"><strong><br> 8、ؓ(f)?jin)查扄l中所有的rmt带讑֤Q?br> </strong></font></p> <div id="tz9fndr" class="codeblock"><code>$ find /dev/rmt -print</code></div> <p><font id="3" size="4"><strong><br> 三、xargs<br> </strong></font></p> <p>xargs - build and execute command lines from standard input</p> <p>在用find命o(h)?exec选项处理匚w到的文gӞ find命o(h)所有匹配到的文件一起传递给exec执行。但有些pȝ对能够传递给exec的命令长度有限制Q这样在find命o(h)q行几分钟之后,׃(x)出现 溢出错误。错误信息通常?#8220;参数列太?#8221;?#8220;参数列溢?#8221;。这是xargs命o(h)的用处所在,特别是与find命o(h)一起用?/p> <p> find命o(h)把匹配到的文件传递给xargs命o(h)Q而xargs命o(h)每次只获取一部分文g而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文gQ然后是下一批,q如此l下厅R?/p> <p> 在有些系l中Q?exec选项?x)?f)处理每一个匹配到的文件而发起一个相应的q程Qƈ非将匚w到的文g全部作ؓ(f)参数一ơ执行;q样在有些情况下׃(x)出现q程q多Q系l性能下降的问题,因而效率不高;</p> <p> 而用xargs命o(h)则只有一个进E。另外,在用xargs命o(h)ӞI竟是一ơ获取所有的参数Q还是分批取得参敎ͼ以及(qing)每一ơ获取参数的数目都会(x)Ҏ(gu)该命令的选项?qing)系l内怸相应的可调参数来定?/p> <p>来看看xargs命o(h)是如何同find命o(h)一起用的Qƈl出一些例子?/p> <p>下面的例子查扄l中的每一个普通文Ӟ然后使用xargs命o(h)来测试它们分别属于哪cL?/p> <div id="f3pn3dr" class="codeblock"><code>#find . -type f -print | xargs file<br>./.kde/Autostart/Autorun.desktop: UTF-8 Unicode English text<br>./.kde/Autostart/.directory:      ISO-8859 text\<br>......</code></div> <p>在整个系l中查找内存?sh)息转储文g(core dump) Q然后把l果保存?tmp/core.log 文g中:(x)</p> <div id="blfd1hl" class="codeblock"><code>$ find / -name "core" -print | xargs echo "" >/tmp/core.log</code></div> <p>上面q个执行太慢Q我Ҏ(gu)在当前目录下查找</p> <div id="nt9nvz1" class="codeblock"><code>#find . -name "file*" -print | xargs echo "" > /temp/core.log<br># cat /temp/core.log<br>./file6</code></div> <p>在当前目录下查找所有用户具有读、写和执行权限的文gQƈ收回相应的写权限Q?/p> <div id="1xfpz1x" class="codeblock"><code># ls -l<br>drwxrwxrwx    2 sam      adm          4096 10?30 20:14 file6<br>-rwxrwxrwx    2 sam      adm             0 10?31 01:01 http3.conf<br>-rwxrwxrwx    2 sam      adm             0 10?31 01:01 httpd.conf<br><br># find . -perm -7 -print | xargs chmod o-w<br># ls -l<br>drwxrwxr-x    2 sam      adm          4096 10?30 20:14 file6<br>-rwxrwxr-x    2 sam      adm             0 10?31 01:01 http3.conf<br>-rwxrwxr-x    2 sam      adm             0 10?31 01:01 httpd.conf</code></div> <p>用grep命o(h)在所有的普通文件中搜烦(ch)hostnameq个词:(x)</p> <div id="1hxrxz1" class="codeblock"><code># find . -type f -print | xargs grep "hostname"<br>./httpd1.conf:#     different IP addresses or hostnames and have them handled by the<br>./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames<br>on your</code></div> <p>用grep命o(h)在当前目录下的所有普通文件中搜烦(ch)hostnamesq个词:(x)</p> <div id="1bvd3rf" class="codeblock"><code># find . -name \* -type f -print | xargs grep "hostnames"<br>./httpd1.conf:#     different IP addresses or hostnames and have them handled by the<br>./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames<br>on your</code></div> <p>注意Q在上面的例子中Q?\用来取消find命o(h)中的*在shell中的Ҏ(gu)含义?/p> <p>find命o(h)配合使用exec和xargs可以使用户对所匚w到的文g执行几乎所有的命o(h)?/p> <p><font id="4" size="4"><strong><br> 四、find 命o(h)的参?br> </strong></font></p> <p>下面是find一些常用参数的例子Q有用到的时候查查就行了(jin)Q像上面前几个脓(chung)子,都用C(jin)其中的的一些参敎ͼ也可以用man或查看论坛里其它贴子有find的命令手?/p> <p><font id="4.1" size="3"><strong><br> 1、用name选项<br> </strong></font></p> <p>文g名选项是find命o(h)最常用的选项Q要么单独用该选项Q要么和其他选项一起用?/p> <p>可以使用某种文g名模式来匚w文gQ记住要用引号将文g名模式引h?/p> <p>不管当前路径是什么,如果惌在自q根目?HOME中查找文件名W合*.txt的文Ӟ使用~作ؓ(f) 'pathname'参数QL号~代表?jin)你?HOME目录?/p> <div id="zxdnf13" class="codeblock"><code>$ find ~ -name "*.txt" -print</code></div> <p>惌在当前目录及(qing)子目录中查找所有的‘ *.txt’文gQ可以用Q?/p> <div id="l9lpxbt" class="codeblock"><code>$ find . -name "*.txt" -print</code></div> <p>惌的当前目录及(qing)子目录中查找文g名以一个大写字母开头的文gQ可以用Q?/p> <div id="xtblf3r" class="codeblock"><code>$ find . -name "[A-Z]*" -print</code></div> <p>惌?etc目录中查找文件名以host开头的文gQ可以用Q?/p> <div id="dptdtxx" class="codeblock"><code>$ find /etc -name "host*" -print</code></div> <p>惌查找$HOME目录中的文gQ可以用Q?/p> <div id="ndh1pdr" class="codeblock"><code>$ find ~ -name "*" -print 或find . -print</code></div> <p>要想让系l高负荷q行Q就从根目录开始查找所有的文g?/p> <div id="ttxtlbp" class="codeblock"><code>$ find / -name "*" -print</code></div> <p>如果惛_当前目录查找文g名以两个写字母开_(d)跟着是两个数字,最后是.txt的文Ӟ下面的命令就能够q回名ؓ(f)ax37.txt的文Ӟ(x)</p> <div id="v1lflzn" class="codeblock"><code>$find . -name "[a-z][a-z][0--9][0--9].txt" -print</code></div> <p><font id="4.2" size="3"><strong><br> 2、用perm选项<br> </strong></font></p> <p>按照文g权限模式?perm选项,按文件权限模式来查找文g的话。最好用八q制的权限表C法?/p> <p>如在当前目录下查找文件权限位?55的文Ӟx(chng)件属d以读、写、执行,其他用户可以诅R执行的文gQ可以用Q?/p> <div id="pxrpjzb" class="codeblock"><code>$ find . -perm 755 -print</code></div> <p>q有一U表达方法:(x)在八q制数字前面要加一个横?Q表C都匚wQ如-007q当于777Q?006相当?66</p> <div id="dnd1zdt" class="codeblock"><code># ls -l<br>-rwxrwxr-x    2 sam      adm             0 10?31 01:01 http3.conf<br>-rw-rw-rw-    1 sam      adm         34890 10?31 00:57 httpd1.conf<br>-rwxrwxr-x    2 sam      adm             0 10?31 01:01 httpd.conf<br>drw-rw-rw-    2 gem      group        4096 10?26 19:48 sam<br>-rw-rw-rw-    1 root     root         2792 10?31 20:19 temp<br><br># find . -perm 006<br># find . -perm -006<br>./sam<br>./httpd1.conf<br>./temp</code></div> <p>-perm mode:文g许可正好W合mode</p> <p>-perm +mode:文g许可部分W合mode</p> <p>-perm -mode: 文g许可完全W合mode</p> <p><font id="4.3" size="3"><strong><br> 3、忽略某个目?br> </strong></font></p> <p>如果在查找文件时希望忽略某个目录Q因Z知道那个目录中没有你所要查扄文gQ那么可以?prune选项来指出需要忽略的目录。在使用-prune选项时要当心(j)Q因为如果你同时使用?depth选项Q那?prune选项׃(x)被find命o(h)忽略?/p> <p>如果希望?apps目录下查找文Ӟ但不希望?apps/bin目录下查找,可以用:(x)</p> <div id="bb9lt1j" class="codeblock"><code>$ find /apps -path "/apps/bin" -prune -o -print</code></div> <p><font id="4.4" size="3"><strong><br> 4、用find查找文g的时候怎么避开某个文g目录<br> </strong></font></p> <p>比如要在/usr/sam目录下查找不在dir1子目录之内的所有文?/p> <div id="vrh11tf" class="codeblock"><code>find /usr/sam -path "/usr/sam/dir1" -prune -o -print </code></div> <div id="3bjp91v" class="codeblock"><code>find [-path ..] [expression] 在\径列表的后面的是表达?/code></div> <p>-path "/usr/sam" -prune -o -print ?-path "/usr/sam" -a -prune -o<br> -print 的简写表辑ּ按顺序求? -a ?-o 都是短\求|?shell ?&& ?|| cM如果 -path "/usr/sam" 为真Q则求?-prune , -prune q回真,与逻辑表达式ؓ(f)真;否则不求?-pruneQ与逻辑表达式ؓ(f)假。如? -path "/usr/sam" -a -prune 为假Q则求?-print Q?printq回真,或逻辑表达式ؓ(f)真;否则不求? -printQ或逻辑表达式ؓ(f)真?/p> <p>q个表达式组合特例可以用伪码写ؓ(f)</p> <div id="jhpj3ft" class="codeblock"><code>if -path "/usr/sam"  then<br>          -prune<br>else<br>          -print</code></div> <p>避开多个文g?/p> <div id="nz9rzpp" class="codeblock"><code>find /usr/sam \( -path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -print</code></div> <p>圆括可C辑ּ的结合?br> </p> <div id="n1p9drh" class="codeblock"><code>\ 表示引用Q即指示 shell 不对后面的字W作Ҏ(gu)解释Q而留l?find 命o(h)去解释其意义?/code></div> <p>查找某一定文gQ?name{选项加在-o 之后</p> <div id="r9lhndh" class="codeblock"><code>#find /usr/sam  \(-path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -name "temp" -print</code></div> <p><font id="4.5" size="3"><strong><br> 5、用user和nouser选项<br> </strong></font></p> <p>按文件属L找文Ӟ如在$HOME目录中查找文件属Mؓ(f)sam的文Ӟ可以用:(x)</p> <div id="n1bjr1j" class="codeblock"><code>$ find ~ -user sam -print</code></div> <p>?etc目录下查找文件属Mؓ(f)uucp的文Ӟ(x)</p> <div id="ttx1vnr" class="codeblock"><code>$ find /etc -user uucp -print</code></div> <p>Z(jin)查找属主帐户已经被删除的文gQ可以?nouser选项。这样就能够扑ֈ那些属主?etc/passwd文g中没有有效帐L(fng)文g。在使用-nouser选项Ӟ不必l出用户名; find命o(h)能够Z完成相应的工作?/p> <p>例如Q希望在/home目录下查找所有的q类文gQ可以用Q?br> </p> <div id="dlpbj13" class="codeblock"><code>$ find /home -nouser -print</code></div> <p><font id="4.6" size="3"><strong><br> 6、用group和nogroup选项<br> </strong></font></p> <p>像user和nouser选项一P针对文g所属于的用L(fng)Q?find命o(h)也具有同L(fng)选项Qؓ(f)?jin)?apps目录下查扑ֱ于gem用户l的文gQ可以用Q?/p> <div id="jjb1bfj" class="codeblock"><code>$ find /apps -group gem -print</code></div> <p>要查找没有有效所属用L(fng)的所有文Ӟ可以使用nogroup选项。下面的find命o(h)从文件系l的根目录处查找q样的文?/p> <div id="1bv1pp1" class="codeblock"><code>$ find / -nogroup-print</code></div> <p><font id="4.7" size="3"><strong><br> 7、按照更Ҏ(gu)间或讉K旉{查找文?br> </strong></font></p> <p>如果希望按照更改旉来查找文Ӟ可以使用mtime,atime或ctime选项。如果系l突然没有可用空间了(jin)Q很有可能某一个文件的长度在此期间增长q速,q时可以用mtime选项来查找这L(fng)文g?/p> <p>用减?来限定更Ҏ(gu)间在距今n日以内的文gQ而用加号+来限定更Ҏ(gu)间在距今n日以前的文g?/p> <p>希望在系l根目录下查找更Ҏ(gu)间在5日以内的文gQ可以用Q?/p> <div id="flrvdr3" class="codeblock"><code>$ find / -mtime -5 -print</code></div> <p>Z(jin)?var/adm目录下查找更Ҏ(gu)间在3日以前的文gQ可以用Q?/p> <div id="r9h1pr9" class="codeblock"><code>$ find /var/adm -mtime +3 -print</code></div> <p><font id="4.8" size="3"><strong><br> 8、查找比某个文g新或旧的文g<br> </strong></font></p> <p>如果希望查找更改旉比某个文件新但比另一个文件旧的所有文Ӟ可以使用-newer选项。它的一般Ş式ؓ(f)Q?/p> <div id="vbrx3lz" class="codeblock"><code>newest_file_name ! oldest_file_name</code></div> <p>其中Q!是逻辑非符受?/p> <p>查找更改旉比文件samC比文件temp旧的文gQ?/p> <p>例:(x)有两个文?/p> <div id="f9t9zfh" class="codeblock"><code>-rw-r--r--    1 sam      adm             0 10?31 01:07 fiel<br>-rw-rw-rw-    1 sam      adm         34890 10?31 00:57 httpd1.conf<br>-rwxrwxr-x    2 sam      adm             0 10?31 01:01 httpd.conf<br>drw-rw-rw-    2 gem      group        4096 10?26 19:48 sam<br>-rw-rw-rw-    1 root     root         2792 10?31 20:19 temp<br><br># find -newer httpd1.conf  ! -newer temp -ls<br>1077669    0 -rwxrwxr-x   2 sam      adm             0 10?31 01:01 ./httpd.conf<br>1077671    4 -rw-rw-rw-   1 root     root         2792 10?31 20:19 ./temp<br>1077673    0 -rw-r--r--   1 sam      adm             0 10?31 01:07 ./fiel</code></div> <p>查找更改旉在比temp文g新的文gQ?/p> <div id="tvnv1xl" class="codeblock"><code>$ find . -newer temp -print</code></div> <br> <font id="4.9" size="3"><strong><br> 9、用type选项<br> </strong></font> <p>?etc目录下查找所有的目录Q可以用Q?/p> <div id="t1hz1b1" class="codeblock"><code>$ find /etc -type d -print</code></div> <p>在当前目录下查找除目录以外的所有类型的文gQ可以用Q?br> </p> <div id="1xnjdf1" class="codeblock"><code>$ find . ! -type d -print</code></div> <p>?etc目录下查找所有的W号链接文gQ可以用<br> </p> <div id="rpjpxzb" class="codeblock"><code>$ find /etc -type l -print</code></div> <p><font id="4.10" size="3"><strong><br> 10、用size选项<br> </strong></font></p> <p>可以按照文g长度来查找文Ӟq里所指的文g长度既可以用块(blockQ来计量Q也可以用字节来计量。以字节计量文g长度的表辑Ş式ؓ(f)N cQ以块计量文仉度只用数字表C即可?/p> <p>在按照文仉度查找文件时Q一般用这U以字节表示的文仉度,在查看文件系l的大小Q因时用块来计量更Ҏ(gu)转换?br> 在当前目录下查找文g长度大于1 M字节的文Ӟ(x)<br> </p> <div id="1lb1vxz" class="codeblock"><code>$ find . -size +1000000c -print</code></div> <p>?home/apache目录下查找文仉度恰好ؓ(f)100字节的文Ӟ(x)</p> <div id="9lpjnpp" class="codeblock"><code>$ find /home/apache -size 100c -print</code></div> <p>在当前目录下查找长度过10块的文gQ一块等?12字节Q:(x) </p> <div id="ndh1zbf" class="codeblock"><code>$ find . -size +10 -print</code></div> <p><font id="4.11" size="3"><strong><br> 11、用depth选项<br> </strong></font></p> <p>在用find命o(h)Ӟ可能希望先匹配所有的文gQ再在子目录中查找。用depth选项可以find命o(h)q样做。这样做的一个原因就是,当在使用find命o(h)向磁带上备䆾文gpȝӞ希望首先备䆾所有的文gQ其ơ再备䆾子目录中的文件?/p> <p>在下面的例子中, find命o(h)从文件系l的根目录开始,查找一个名为CON.FILE的文件?/p> <p>它将首先匚w所有的文g然后再进入子目录中查找?/p> <div id="lpxp3pd" class="codeblock"><code>$ find / -name "CON.FILE" -depth -print</code></div> <p><font id="4.12" size="3"><strong><br> 12、用mount选项<br> </strong></font></p> <p>在当前的文gpȝ中查找文Ӟ不进入其他文件系l)(j)Q可以用find命o(h)的mount选项?/p> <p>从当前目录开始查找位于本文gpȝ中文件名以XCl尾的文Ӟ(x)</p> <div id="d31fxdd" class="codeblock"><code>$ find . -name "*.XC" -mount -print</code></div> <p><br></p><img src ="http://www.shnenglu.com/API/aggbug/144344.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/API/" target="_blank">C++技术中?/a> 2011-04-16 09:58 <a href="http://www.shnenglu.com/API/archive/2011/04/16/144344.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux中的Crontabhttp://www.shnenglu.com/API/archive/2011/04/16/144341.htmlC++技术中?/dc:creator>C++技术中?/author>Sat, 16 Apr 2011 00:26:00 GMThttp://www.shnenglu.com/API/archive/2011/04/16/144341.htmlhttp://www.shnenglu.com/API/comments/144341.htmlhttp://www.shnenglu.com/API/archive/2011/04/16/144341.html#Feedback0http://www.shnenglu.com/API/comments/commentRss/144341.htmlhttp://www.shnenglu.com/API/services/trackbacks/144341.html1.crontab命o(h)选项:
    -u指定一个用?
    -l列出某个用户的Q务计?
    -r删除某个用户的Q?
    -e~辑某个用户的Q?/p>

    2.cron配置文gQ文件位|:(x)/etc/crontabQ语?
    ?nbsp;     时   ?nbsp;      ?nbsp;      星期     命o(h)
    0-59   0-23   1-31   1-12     0-6     command     (取D?0表示周日一般一行对应一个Q?

    3.C几个Ҏ(gu)W号的含?
    “*”代表取D围内的数?
    “/”代表”?#8221;,
    “-”代表从某个数字到某个数字,
    “,”分开几个L的数?/p>

    4.配置文g的写?/strong>
    可以使用crontab -e命o(h)来编?也可以直接修?etc/crontab文g
    具体格式如下Q?br> Minute Hour Day Month Dayofweek   command
    分钟      时   ?nbsp;       ?nbsp;      天每星期       命o(h)
    每个字段代表的含义如下:(x)
    Minute             每个时的第几分钟执行该d
    Hour               每天的第几个时执行该Q?br> Day                 每月的第几天执行该Q?br> Month             每年的第几个月执行该d
    DayOfWeek     每周的第几天执行该Q?br> Command       指定要执行的E序
    在这些字D里Q除?#8220;Command”是每ơ都必须指定的字D以外,其它字段皆ؓ(f)可选字D,可视需要决定。对于不指定的字D,要用“*”来填补其位置?br> 举例如下Q?br> 5     *    *     *         *      ls             指定每小时的W?分钟执行一ơls命o(h)
    30       5       *         *     *      ls             指定每天?5:30 执行ls命o(h)
    30       7       8         *     *      ls             指定每月8L(fng)7Q?0分执行ls命o(h)
    30       5       8         6     *      ls             指定每年???Q?0执行ls命o(h)
    30       6       *         *     0      ls             指定每星期日?:30执行ls命o(h)[?0表示星期天,1表示星期1Q以此类推,也可以用英文:sun表示周天Qmon表示周一{。]
    30       3       10,20  *     *      ls     每月10号及(qing)20L(fng)3Q?0执行ls命o(h)[注:(x)“Q?#8221;用来q接多个不连l的时段]
    25       8-11  *         *     *      ls       每天8-11点的W?5分钟执行ls命o(h)[注:(x)“-”用来q接q箋的时D]
    */15   *       *         *     *      ls         ?5分钟执行一ơls命o(h) [x(chng)个小时的W? 15 30 45 60分钟执行ls命o(h) ]
    30      6       */10    *     *    ls       每个月中Q每?0?:30执行一ơls命o(h)[x(chng)月的1?1?1?1日是?Q?0执行一ơls命o(h)?]
    50      7       *          *    *     root     run-parts     /etc/cron.daily   每天7Q?0以root w䆾执行/etc/cron.daily目录中的所有可执行文g

                                                          [ 注:(x)run-parts参数表示Q执行后面目录中的所有可执行文g?/p>


    下面是Linux 上crontab手册中的知识点:(x)

    1. crontab文g“正式?#8221;的开?/strong>

    I、以I格或?#8220;tab”开行的行,被cron(daemon)忽略?/p>

    ?开始的行,作ؓ(f)注释被cron(daemon)忽略?/p>

    “注释”不允怸“命o(h)”攑֜同一行(作ؓ(f)命o(h)的注释)(j)Q会(x)被作?#8220;W六D?#8221;Q被cron(daemon)执行?/p>

    同样的,也不能放在设|环境变量的同一行?/p>

    2. 在crontab文g中指定环境变?/strong>

    讄变量使用

    name = value

    q样的格式,”=”号左右的I格不是必须的?/p>

    几个变量默认已经被设|,比如Q?/p>

    SHELL=/bin/sh
    HOEM=/home/nnix
    LOGNAME=nnix

    其中SHELL和HOME可以重新讑֮QLOGNAME则不可(大概跟确定crontab文g的位|有养I(j)?/p>

    默认Qcrontab?x)把执行的输出发送给crontab的所有者,除非重新讑֮变量Q?/p>

    MAILTO=other_or_email

    另外Q当crontab发送输入时的邮件编码,可以通过讄变量 CONTENT_TYPE ?CONTENT_TRANSFER_ENCODING 来用正的~码来发送邮件?/p>

    3. crontab 文g的分D?/strong>

    依次分别?/p>

    • 分(0-59Q?/li>
    • Ӟ0-23Q?/li>
    • 日(1-31Q?/li>
    • 月(1-23Q或者英文名Q?/li>
    • 周(0-6Q或者英文名Q?表示周日Q?/li>
    • 要执行的内容

    4. 前五D:(x)旉和日?/strong>

    1Q表CZQ意:(x)* 可C?“L”Qfirst-last)?/p>

    2Q指定数字,表示指定的时间?/p>

    3Q指定段Q表C?#8220;开?l束”内包含的敎ͼ(x)比如3-6,表示3Q?Q?Q?

    4Q指定列表:(x)比如 “1,2,3,4″,”0-4,8-12″

    5Q指?#8220;步长”Q?-14/2 表示8Q?0Q?2Q?4

    5. 模糊的第六段Q?/strong>

    1Q除d五段Q从W六D开始到换行W或?#8220;%”为止Qؓ(f)要执行的命o(h)?/p>

    2Q默认第六段被/bin/sh执行Q除非在crontab文g中指定了(jin)?bin/sh的SHELL变量?/p>

    3Q第六段中的”%”P除非前面?#8221;\”可{交,否则Q?#8220;%”号将l束命o(h)行、换行的意义Qƈ且其后的内容?x)被做?f)标准输入发送给前面的命令?/p>

    6. 冲突的逻辑

    日期可以用月限定Q也可以?#8220;星期”指定Q如果两个段有冲H(比如q两D不同时?#8220;*”Q,那么Q第六段的命令将在匹配Q何一个的情况下运行,比如

    “30 4 1,15 * 5″Q将在每月的1号和15??每个周五Q上?Q?0q行?/p>

    7. crontab文g中的密W号“%”

    可能?x)遇到的一个问题是Q在W六D中需要用date生成日志文g名,比如Q?/p>

    0 4 * * * /opt/cron/mysql_dump.sh > /srv/logs/`date +%y-%m-%d`.dump.log

    q时?x)发现crontab怎么也不q行q个mysql_dump.shQ也看不到有日志生成。这是因为在crontab文g中,”%”是有Ҏ(gu)含义 的。假如不需?#8220;%”的特D作用,需要用{义符转义。上面应该写成:(x)

    0 4 * * * /opt/cron/mysql_dump.sh > /srv/logs/`date +\%y-\%m-\%d`.dump.log

    “%”在crontab文g中,?#8220;l束命o(h)?#8221;?#8220;换行”?#8220;重定?#8221;的作用,比如Q?/p>

    0 22 * * 1-5 mail -s “It’s 10:00 pm” joe%Joe,%%Where are your kids?%

    会(x)在周一臛_五的22:00发送一分内容ؓ(f)Q?/p>

    Joe,<换行>
    <换行>
    Where are your kids?<换行>

    8. 不能理解的特D用?/strong>

    @reboot : Run once, at startup.

    Z(jin)辑ֈ在开机后q行Q且只运行一ơ的目的Q除?jin)这个,恐怕无法通过前五D늚讄来实现吧Q?/p>

    cron是linux下定时执行工P可在完全无h工干预的情况下作业。可以用一下命令来手动开启或关闭该Q务:(x)

    /sbin/service crond start 启动服务
    /sbin/service crond stop 关闭服务
    /sbin/service crond restart 重新启动服务
    /sbin/service crond reload 重新加蝲服务
    你也可以这个服务在pȝ启动的时候自动启?

      ?etc/rc.d/rc.localq个脚本的末֊?

      /sbin/service crond start

     现在Cronq个服务已经在进E里面了(jin)Q我们就可以用这个服务了(jin)

    crontab -u root -e可以~辑制定用户

    每次~辑完某个用L(fng)cron讄后,cron自动?var/spool /cron下生成一个与此用户同名的文gQ此用户的cron信息都记录在q个文g中,q个文g是不可以直接~辑的,只可以用crontab -e 来编辑。cron启动后每q一份钟Mơ这个文Ӟ(g)查是否要执行里面的命令。因此此文g修改后不需要重新启动cron服务?/font>

      2.~辑/etc/crontab 文g配置cron

      cron服务每分钟不仅要M?var/spool/cron内的所有文 Ӟq需要读一?etc/crontab,因此我们配置q个文g也能q用cron服务做一些事情。用crontab配置是针Ҏ(gu)个用L(fng)Q而编? /etc/crontab是针对系l的d。此文g的文件格式是:

      SHELL=/bin/bash

      PATH=/sbin:/bin:/usr/sbin:/usr/bin

      MAILTO=root //如果出现错误Q或者有数据输出Q数据作为邮件发l这个帐?/font>

      HOME=/ //使用者运行的路径,q里是根目录

      # run-parts

      01 * * * * root /home/bluesky/test.sh>>test.log //每小时执?/font>test.sh的脚?/font>

      02 4 * * * root  /home/bluesky/test.sh//每天执行test.sh内的脚本

      22 4 * * 0 root  /home/bluesky/test.sh //每星期执?/font>test.sh内的脚本

      42 4 1 * * root run-parts /home/bluesky/test.sh //每月L?/font>test.sh内的脚本

      大家注意"run-parts"q个参数?jin),如果Lq个参数的话Q后面就可以写要q行的某个脚本名Q而不是文件夹名了(jin)?/font>





    ]]>
    fedora自动挂蝲windows分区http://www.shnenglu.com/API/archive/2011/04/10/143863.htmlC++技术中?/dc:creator>C++技术中?/author>Sun, 10 Apr 2011 04:00:00 GMThttp://www.shnenglu.com/API/archive/2011/04/10/143863.htmlhttp://www.shnenglu.com/API/comments/143863.htmlhttp://www.shnenglu.com/API/archive/2011/04/10/143863.html#Feedback0http://www.shnenglu.com/API/comments/commentRss/143863.htmlhttp://www.shnenglu.com/API/services/trackbacks/143863.html 一.h
        自己的T400上装windows7用了(jin)一D|_(d)发现l常卡,特别是那个IE8Q^时我喜欢装上杂七杂八的Y件?br>可能软g装太多,pȝ自启动的E序也太多,不用的Y仉挂在后台Q占用了(jin)大量的CPU与内存资源。所?br>?j)血来潮Q准备以后用fedorapȝ?jin)。不q最主要的原因是׃自己的工作{向了(jin)windowsq_的开发,担心(j)
    多年U篏的linux 知识l忘掉了(jin)。所以我的个人电(sh)脑上以后都用fedora?jin)。因为我装的是双pȝ。我划了(jin)30G
    的分区给fedora14。其他的windows 分区q是保留着的。在feodra下,是可以直接访问windows的ntfs分区?br>       但是每次在fedora点击q入windows分区Ӟl常要输入root密码。这是因为当你点击windows分区的图标时
    做了(jin)cM的mount命o(h)Q这个命令只有root才有权限?nbsp; q样每次用v来就不大方便?jin)(其实我还有另一个不?br>方便的原因,q里׃告诉你了(jin)Q哈哈)(j)?br>      今天我们的核?j)问题是如何在fedora 启动时就挂蝲好了(jin)windows分区?br>
    ?其中的一个方?br>   1. q里介绍一下mount命o(h)。比如,我要挂蝲一个分区。可以用以下命o(h)看到Q?br>
           cd /dev
           ls 

          我这里可以有看到sda1,sda2,sda3..,q就是所谓的分区。假设我挂蝲sda5分区Q挂载到/media/Install目录,
          命o(h)如下Q?br>
           mkdir /media/Install/
           mount 
    /dev/sda5 /media/Install/ -t ntfs -umask=0000 -o uid=500 -o case_sensitive=false -o nls=gb2312
          先创Z?media/Install目录Q把sda5分区Q挂载到q个Install目录下?br>   2.我们来看看,q些参数Q?br>      -t代表要挂载的分区格式Q这里是ntfs
         -o umask=000表示Q这个大家可以了(jin)解一下chmodQchmod的含义是可以拥用的权限。但是umask正好相反Q?br>                                    表示不可以有某权限。在linux下权限可以表CZؓ(f):rwxrwxrwxQ有三组rwxQ分别代?br>                                    拥用者权限,所属组权限Q其他用h限。rwx分别代表可读Q可写,可执行。rwxgؓ(f)
                                        4,2,1。然后如果只有可d执行Q那么就?+1=5. 假设用chmod表示一个拥有者,
                                        所属组Q其他用h用可d写不可执行。那么gؓ(f)770Q而对应的umask应该?00?br>                                    所以这里的umask=007表示M用户都有权限d但不能执行?br>    -o uid=500表示Q挂载文件的归属用户。uid可以?etc/passwd文g中查?br>   -o case_sensitive=false表示Q?/span>希望Linux对于NTFS卷具有和W(xu)indows相同的表玎ͼ那么应case_sensitive选项?br>                                              |ؓ(f)false。将选项讄为true驱动h和LinuxcM的表玎ͼ默认讄Q?br>   -o nls=gb2312表示Q决定字W是如何被显C的

      3. 现在知道?jin)命令的使用Q如何让pȝ启动的时候运行该命o(h)呢。可以执行以下命?br>     先切换到root用户?
    su - root

        然后
    vi /etc/rc.d/rc.local

        在文件尾加入Q?br>      mount /dev/sda5 /media/Install/ -t ntfs -umask=0000 -o uid=500 -o case_sensitive=false -o nls=gb2312
       注意Q先?media下徏立Install目录?br>
    ?q样挂蝲是有问题的。这是ؓ(f)什么呢。因里挂载的sda5假设对应的是windows下的D盘。但也有可能变成E盘。这?br>    因ؓ(f)
    装置档案名称有时?x)因?BIOS 的设定或插入ơ序而改变,引v混ؕ。所以,必须用一个唯一可以标识的值来标识Q那
       是UUID。当然UUID其实也是可以Zؓ(f)更改的。注意以下命令都要在root下运?
       1. 查看分区的UUID
    blkid -s UUID


    df   #df命o(h)可以查看的所有的已经挂蝲的分?br>

       2. 改变UUID
    讑֮ UUID 可以使用命o(h)?code>tune2fs -U UUID 装置档案?
    
    
    tune2fs -U 51f7e9a4-5154-4e29-a7a6-208417290b85 /dev/sda

    -U 的参数如果ؓ(f) random 表示直接产生一个随意的?UUIDQ?

    
    
    tune2fs -U random /dev/sda

    -U 的参数如果ؓ(f) time 表示直接依当前时间生一个新?UUIDQ?

    tune2fs -U time /dev/sda1

    -U 的参数如果ؓ(f) clear 表示清除档案pȝ?UUIDQ?

    tune2fs -U clear /dev/sda1

      3.那么我可以修改上面的mount命o(h)Q用以下:(x)
     
    mount -U 26A41C22A41BF353 /media/Install/ -t ntfs -umask=0000 -o uid=500 -o case_sensitive=false -o nls=gb2312








    ]]>
    þ޾ƷƷ| ƷþþĻ| þþþƷ鶹| þùƷ-þþƷ| ƷþþþþþҹƬ | þþþþҹӰԺ| þ99Ʒ鶹լլ| þþƷhþþƷ帣ӰԺ1421 | 99Ʒþþþþþ| þþþþþۺձ| þ޾Ʒϵַ | ޷AVþò| ƷȾþëƬ| ޡvþþ뾫Ʒ| þAVԴվ| ƷëƬþþþþþ| ޾þһ| ޹þ| ҹþþӰԺ| ŷƷƵһþþþƷ| þһҹ| þҹɫƷ| þ99Ʒþþþþ| þþƷþһ| þùƷ͵99| ŷƷþþ | 97Ʒþ찴Ħ| Ʒľþþþþþ| ݾƷŮ˾þþþþ| ƷŮþþþ| һɫۺþ| þɫۺϼ| þùƷһ| þerƷѹۿ2| ޹Ʒþ98| ƷһþþƷɬ| þĻƷһ| ݺɫ˾þþƷۺ | Ʒξþþþ99վ| ڵСþþþþþ| պŷۺϾþ|