??xml version="1.0" encoding="utf-8" standalone="yes"?> yum -y install gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake groupadd mysql useradd -r -g mysql mysql 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
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协议?
]]>
[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
]]>
localhost.localdomain
其中localhost表示L?/a>,localdomain为域?q是一个完全域?FQDN,?L?/a>.域名")的Ş?br />
]]>
选择源代码版QGeneric Linux ...Compressed TAR ArchiveQ?br />
2.安装必要的组?nbsp;
3.
passwd mysql
tar -zxvf mysql*.tar.gz
cd mysql-5.6.13
cmake .
make;make install
4.安装路径默认?usr/local/mysql?br />
....................
chkconfig -add mysql
chkconfig mysql on
service mysql start
]]>
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>
装了(jin)Windows和linux双系l的朋友Q在后期要删除linux是个比较头痛的问题,因ؓ(f)MBR已经被linux接管Q本文的目的是如何在windows 和linux双系l下Q简单,完美地卸载linux?/p>
不用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ȝ….
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
2) 安装安装termcap库(gdb需要)(j)sudo apt-get install libncurses5-dev
(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>
安装crontab: yum install crontabs
说明Q?br />/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
查看crontab服务状态:(x) service crond status
手动启动crontab服务Q?code> service crond start
查看crontab服务是否已设|ؓ(f)开机启动,执行命o(h)Q?code> ntsysv
加入开动启? chkconfig --level 35 crond on
1Qcrontab命o(h)
功能说明Q设|计时器?/p>
语 法:(x)crontab [-u <用户名称>][配置文g] ?crontab [-u <用户名称>][-elr]
补充说明Qcron是一个常L务,它提供计时器的功能,让用户在特定的时间得以执行预讄指o(h)或程序。只要用户会(x)~辑计时器的配置文gQ就可以?用计时器的功能。其配置文g格式如下Q?br />Minute Hour Day Month DayOFWeek Command
参 敎ͼ(x)
-e ~辑该用L(fng)计时器设|?br />-l 列出该用L(fng)计时器设|?br />-r 删除该用L(fng)计时器设|?br />-u<用户名称> 指定要设定计时器的用户名U?/p>
2Qcrontab 格式
基本格式 :
* * * * * command
分 时 日 月 周 命o(h)
W?列表C分??9 每分钟用*或?*/1表示
W?列表C小??3Q?表示0点)(j)
W?列表C日??1
W??表示月䆾1?2
W?列标识号星期0?Q?表示星期天)(j)
W?列要q行的命?br />
crontabҎ(gu)的符可明:(x)
"*"代表所有的取D围内的数字。特别要注意哦!
"/"代表每的意思,?*/5"表示?个单?br />
"-"代表从某个数字到某个数字
","分散的数?br />
crontab文g的一些例子:(x)
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
*/30 * * * * /usr/sbin/ntpdate 210.72.145.44
-------------------------------- 如何查看crontab的日志记?--------------------------------------------------------
昨天crontab中的同步d没有执行Q不知道是什么原因没有执行,貌似dhang住了(jin)Q想查询一下crontab到底问题出在哪里Q或者hang在了(jin)什么地斏V?br />
1. linux
?/var/log/cronq个文g可以,可以用tail -f /var/log/cron观察
2. unix
?/var/spool/cron/tmp文g中,有croutXXX001864的tmp文gQtail q些文g可以看到正在执行的d?jin)?br />
3. maild
?/var/spool/mail/root 文g中,有crontab执行日志的记录,用tail -f /var/spool/mail/root 卛_查看最q的crontab执行情况?/p>
(1)userlist_enable=NO
(2)
root?etc/vsftpd/ftpusers中去掉?
如果d出现
[右] 500 OOPS: cannot change directory:/home/bluesky
[右] q接p|
作如下设|?
setsebool -P ftp_home_dir=1
service vsftpd restart
q一部分的提出是Z(jin)防止失控的进E破坏系l的性能
nuix和Linux跟踪q程使用的大部分资源Q允许用户和pȝ理员(sh)用对q程的资源限?/p>
讄的限制有两种Q?限制和软限?/p>
限制是可以在Q何时候Q何进E中讄 但硬限制只能pU用h?/p>
软限制是内核实际执行的限ӞMq程都可以将软限制设|ؓ(f)L于{于对进E限制的限制的?/p>
———————以下内容{载(H然发现q方面有好资源便直接引用?jin)?j)—————————
getrlimit和setrlimit函数
每个q程都有一l资源限Ӟ其中某一些可以用getrlimit和setrlimit函数查询和更攏V?/p>
#include
#include
int getrlimit(int resource,struct rlimit *rlptr);
int setrlimit(int resource,const struct rlimit rlptr);
Both return: 0 if OK,nonzero on error两个函数
q回Q若成功?Q出错ؓ(f)?
对这两个函数的每一ơ调用都指定一个资源以?qing)一个指向下列结构的指针?/p>
struct rlimit{
rlim rlim rlimit_ur;/* 软限Ӟ(x)当前限制 */
rlim rlim rlim_ax;Q? 限Ӟ(x)rlimcur的最大?*/
}Q?/p>
可用的?/p>
RLIMIT _AS q程可用的内存的最大数量,包括堆栈、全局变量、动态内?/p>
RLIMIT _CORE 内核生成的core文g的最大大?/p>
RLIMIT _CPU 所用的全部cpu旉 以秒计算
RLIMIT _DATA 数据存储的最大容量,以字节计,不包括程序分配的动态存储空?/p>
RLIMIT _FSIZE 打开文g的最大数?/p>
RLIMIT _MEMLOCK
RLIMIT _NOFILE
RLIMIT _NPROC q程可以产生的最大子q程数量
RLIMIT _RSS 可以随时使用的内存最大容?/p>
RLIMIT _STACK 堆栈存储区的最大容?/p>
q两个函C属于POSIX.1Q但SVR4?.3+BSD提供它们。SVR4在上面的l构中用基本系l数据类型rlim。其它系l则这
两个成员定义为整型或长整型?/p>
q程的资源限刉常是在pȝ初启时由0#q程建立的,然后由后l进Eѝ在SVR4中,pȝ默认值可以查看文
?etc/conf/cfd/mtune?.3+BSD中,pȝ默认值分散在多个头文件中?/p>
在更改资源限制时Q须遵@下列三条规则Q?/p>
1.M一个进E都可将一个Y限制更改为小于或{于其硬限制?br /> 2.M一个进E都可降低其限制|但它必须大于或等于其软限制倹{这U降低,Ҏ(gu)通用戯(g)言是不可逆反的?br /> 3.只有用户可以提高限制?/p>
一个无限量的限制由常数RLIM NFINITY指定?/p>
q两个函数的resource参数取下列g一。注意ƈ非所有资源限刉受到SVR4?.3+BSD的支持?/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>
)。见E序2.3?br /> RLIMIT PROC(4.3+BSD)每个实际用户ID所拥有的最大子q程数。更Ҏ(gu)限制媄(jing)响到sysconf函数在参?CHILDMAX中返回的
?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>
资源限制影响到调用进Eƈ由其子进Eѝ这意味着Z(jin)影响一个用L(fng)所有后l进E,需资源限制设|构造在shell
之中。确实,Bourne Shell和Kornshellh内部ulimit命o(h)QCShellh内部limit命o(h)?umask和chdir也必Lshell内部?
?/p>
较早的BourmeShellQ例如由贝克莱提供的一U,不支持ulimit命o(h)。较新的KornShell的ulimit命o(h)h-H?s选择,?/p>
分别(g)查和修改和软的限制Q但它们末~写入文档?/p>
?
?单的用例Q?/p>
#include<sys/time.h>
#include<sys/resource.h>
#include<unistd.h>
int main()
{
struct rlimit limit;
char p = '1';
limit.rlim_cur = RLIM_INFINITY;
limit.rlim_max = RLIM_INFINITY;
if(setrlimit(RLIMIT_CORE, &limit))
{
printf("set limit failed/n");
}
printf("p = %s/n",p);
}
---------------------------------------------------------------------------------------------------------------------------------------------
Ҏ(gu)个进E都有一l资源限Ӟ其中一些可以用getrlimit和setrlimit函数查询和更?
getrlimit和setrlimitQ资源限?(getrlimit and setrlimit: Resource Limits)
q两个系l函数是和resource limit相关的。你用过ulimit命o(h)吗?Q反正我没用q)(j)
对于每个资源来说有两个limitQ一个是hard limitQ一个是soft limitQ其中后者永q不能超q前者,q且只有拥有superuser权限的进E可以更改前者?
getrlimit和setrlimit的参数相同:(x)W一个参数是资源的类型,W二个参数是rlimitl构的指针,q个l构里面只有两个成员:(x)hard limit和soft limit
几个重要的资源类?
RLIMIT_CPUQ程序执行的最大CPU旉Q单位是U。超q之后程序中止,中止的信hSIGXCPU
RLIMIT_DATAQ程序执行的最大内?
RLIMIT_NPROCQ程序孵出的最大子q程数量
RLIMIT_NOFILEQ程序打开的文件的最大数?br />
--------------------
如果你碰到类似的错误提示
ulimit: max user processes: cannot modify limit: 不允许的操作
ulimit: open files: cannot modify limit: 不允许的操作
为啥root用户是可以的Q普通用户又?x)遇到这L(fng)问题Q?br />看一?etc/security/limits.conf大概׃(x)明白?br />linux对用h默认的ulimit限制Q而这个文件可以配|用L(fng)配|和软配|,配|是个上限?br />出上限的修改就?x)?#8220;不允许的操作”q样的错误?br />
在limits.conf加上
* soft noproc 10240
* hard noproc 10240
* soft nofile 10240
* hard nofile 10240
是限制?jin)Q意用L(fng)最大线E数和文件数?0240?/p>
^ 锚定行的开?如:(x)'^grep'匚w所有以grep开头的行?
$ 锚定行的l束 如:(x)'grep$'匚w所有以grepl尾的行?
. 匚w一个非换行W的字符 如:(x)'gr.p'匚wgr后接一个Q意字W,然后是p?
* 匚w零个或多个先前字W?如:(x)'*grep'匚w所有一个或多个I格后紧跟grep的行?.*一L(fng)代表L字符?br>[] 匚w一个指定范围内的字W,?span style="color: #ff00ff;">'[Gg]rep'匚wGrep和grep?
[^] 匚w一个不在指定范围内的字W,如:(x)'[^A-FH-Z]rep'匚w不包含A-R和T-Z的一个字母开_(d)紧跟rep的行?
\(..\) 标记匚w字符Q如'\(love\)'Qlove被标Cؓ(f)1?
\< 锚定单词的开始,?span style="color: #0000cc;">:
'\<grep'匚w包含以grep开头的单词的行?关于匚w的实例:(x)
grep -c "48" test.txt l计所有以“48”字符开头的行有多少
grep -i "May" test.txt 不区分大写查找“May”所有的行)(j)
grep -n "48" test.txt 昄行号Q显C匹配字W?#8220;48”的行?qing)行P相同?nl test.txt |grep 48Q?br>grep -v "48" test.txt 昄输出没有字符“48”所有的行)(j)
grep "471" test.txt 昄输出字符“471”所在的行)(j)
grep "48<tab>;" test.txt 昄输出以字W?#8220;48”开_(d)q在字符“48”后是一个tab键所在的?br>grep "48[34]" test.txt 昄输出以字W?#8220;48”开_(d)W三个字W是“3”或是“4”的所有的行)(j)
grep "^[^48]" test.txt 昄输出行首不是字符“48”的行Q?br>grep "[Mm]ay" test.txt 讄大小写查找:(x)昄输出W一个字W以“M”?#8220;m”开_(d)以字W?#8220;ay”l束的行Q?br>grep "K…D" test.txt 昄输出W一个字W是“K”Q第二、三、四是Q意字W,W五个字W是“D”所在的行)(j)
grep "[A-Z][9]D" test.txt 昄输出W一个字W的范围?#8220;A-D”Q第二个字符?#8220;9”Q第三个字符的是“D”的所有的?br>grep "[35]..1998" test.txt 昄W一个字W是3?Q第二三个字W是LQ以1998l尾的所有行
grep "4\{2,\}" test.txt 模式出现几率查找Q显C出字W?#8220;4”臛_重复出现两次的所有行
grep "9\{3,\}" test.txt 模式出现几率查找Q显C出字W?#8220;9”臛_重复出现三次的所有行
grep "9\{2,3\}" test.txt 模式出现几率查找Q显C出字W?#8220;9”重复出现的次数在一定范围内Q重复出?ơ或3ơ所有行
grep -n "^$" test.txt 昄输出I的行?br>ls -l |grep "^d" 如果要查询目录列表中的目?同:(x)ls -d *
ls -l |grep "^[^d]" 在一个目录中查询不包含目录的所有文?开头ؓ(f)非d)
ls -l |grpe "^d…..x..x" 查询其他用户和用L(fng)成员有可执行权限的目录集?/span>
1、find命o(h)的一般Ş式ؓ(f)Q?br>
find pathname -options [-print -exec -ok ...]
2、find命o(h)的参敎ͼ
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>
3、find命o(h)选项
-name
按照文g名查找文件?br>
-perm
按照文g权限来查找文件?br>
-prune
使用q一选项可以使find命o(h)不在当前指定的目录中查找Q如果同时?depth选项Q那?prune被find命o(h)忽略?br>
-user
按照文g属主来查找文件?br>
-group
按照文g所属的l来查找文g?br>
-mtime -n +n
按照文g的更Ҏ(gu)间来查找文gQ?- n表示文g更改旉距现在n天以内,+ n表示文g更改旉距现在n天以前。find命o(h)q有-atime?ctime 选项Q但它们都和-m time选项?br>
-nogroup
查找无有效所属组的文Ӟ卌文g所属的l在/etc/groups中不存在?br>
-nouser
查找无有效属ȝ文gQ即该文件的属主?etc/passwd中不存在?br>-newer file1 ! file2
查找更改旉比文件file1C比文件file2旧的文g?br>-type
查找某一cd的文Ӟ诸如Q?br>
b - 块设备文件?br>d - 目录?br>c - 字符讑֤文g?br>p - 道文g?br>l - W号链接文g?br>f - 普通文件?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>
-mountQ在查找文g时不跨越文gpȝmount炏V?br>-followQ如果find命o(h)遇到W号链接文gQ就跟踪至链接所指向的文件?br>-cpioQ对匚w的文件用cpio命o(h)Q将q些文g备䆾到磁带设备中?/code>
另外,下面三个的区?
-amin n
查找pȝ中最后N分钟讉K的文?br>
-atime n
查找pȝ中最后n*24时讉K的文?br>
-cmin n
查找pȝ中最后N分钟被改变文件状态的文g
-ctime n
查找pȝ中最后n*24时被改变文件状态的文g
-mmin n
查找pȝ中最后N分钟被改变文件数据的文g
-mtime n
查找pȝ中最后n*24时被改变文件数据的文g
4、用exec或ok来执行shell命o(h)
使用findӞ只要把想要的操作写在一个文仉Q就可以用exec来配合find查找Q很方便?/p>
在有些操作系l中只允?exec选项执行诸如l s或ls -lq样的命令。大多数用户使用q一选项是ؓ(f)?jin)查找旧文gq删除它们。徏议在真正执行rm命o(h)删除文g之前Q最好先用ls命o(h)看一下,认它们是所要删除的文g?/p>
exec选项后面跟随着所要执行的命o(h)或脚本,然后是一对儿{ }Q一个空格和一个\Q最后是一个分受ؓ(f)?jin)用exec选项Q必要同时使用print选项。如果验证一下find命o(h)Q会(x)发现该命令只输出从当前\径v的相对\径及(qing)文g名?/p>
例如Qؓ(f)?jin)用ls -l命o(h)列出所匚w到的文gQ可以把ls -l命o(h)攑֜find命o(h)?exec选项?/p>
# find . -type f -exec ls -l { } \;
-rw-r--r-- 1 root root 34928 2003-02-25 ./conf/httpd.conf
-rw-r--r-- 1 root root 12959 2003-02-25 ./conf/magic
-rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README
上面的例子中Qfind命o(h)匚wC(jin)当前目录下的所有普通文Ӟq在-exec选项中用ls -l命o(h)它们列出?br> ?logs目录中查找更Ҏ(gu)间在5日以前的文gq删除它们:(x)
$ find logs -type f -mtime +5 -exec rm { } \;
CQ?/strong>在shell中用M方式删除文g之前Q应当先查看相应的文Ӟ一定要心(j)Q当使用诸如mv或rm命o(h)Ӟ可以使用-exec选项的安全模式。它?yu)在?gu)个匹配到的文件进行操作之前提CZ?/p>
在下面的例子中, find命o(h)在当前目录中查找所有文件名?LOGl尾、更Ҏ(gu)间在5日以上的文gQƈ删除它们Q只不过在删除之前先l出提示?/p>
按y键删除文Ӟ按n键不删除?/p>
M形式的命令都可以?exec选项中用?/p>
在下面的例子中我们用grep命o(h)。find命o(h)首先匚w所有文件名?#8220; passwd*”的文Ӟ例如passwd、passwd.old、passwd.bakQ然后执行grep命o(h)看看在这些文件中是否存在一个sam用户?/p>
下面两种Ҏ(gu)都可以?/p>
该命令只(g)查三位数字,所以相应文件的后缀不要过999。先建几个admin.log*的文?Q才能用下面这个命?/p>
xargs - build and execute command lines from standard input 在用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>
find命o(h)把匹配到的文件传递给xargs命o(h)Q而xargs命o(h)每次只获取一部分文g而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文gQ然后是下一批,q如此l下厅R?/p>
在有些系l中Q?exec选项?x)?f)处理每一个匹配到的文件而发起一个相应的q程Qƈ非将匚w到的文g全部作ؓ(f)参数一ơ执行;q样在有些情况下׃(x)出现q程q多Q系l性能下降的问题,因而效率不高; 而用xargs命o(h)则只有一个进E。另外,在用xargs命o(h)ӞI竟是一ơ获取所有的参数Q还是分批取得参敎ͼ以及(qing)每一ơ获取参数的数目都会(x)Ҏ(gu)该命令的选项?qing)系l内怸相应的可调参数来定?/p>
来看看xargs命o(h)是如何同find命o(h)一起用的Qƈl出一些例子?/p>
下面的例子查扄l中的每一个普通文Ӟ然后使用xargs命o(h)来测试它们分别属于哪cL?/p>
在整个系l中查找内存?sh)息转储文g(core dump) Q然后把l果保存?tmp/core.log 文g中:(x) 上面q个执行太慢Q我Ҏ(gu)在当前目录下查找 在当前目录下查找所有用户具有读、写和执行权限的文gQƈ收回相应的写权限Q?/p>
用grep命o(h)在所有的普通文件中搜烦(ch)hostnameq个词:(x) 用grep命o(h)在当前目录下的所有普通文件中搜烦(ch)hostnamesq个词:(x) 注意Q在上面的例子中Q?\用来取消find命o(h)中的*在shell中的Ҏ(gu)含义?/p>
find命o(h)配合使用exec和xargs可以使用户对所匚w到的文g执行几乎所有的命o(h)?/p>
下面是find一些常用参数的例子Q有用到的时候查查就行了(jin)Q像上面前几个脓(chung)子,都用C(jin)其中的的一些参敎ͼ也可以用man或查看论坛里其它贴子有find的命令手?/p>
文g名选项是find命o(h)最常用的选项Q要么单独用该选项Q要么和其他选项一起用?/p>
可以使用某种文g名模式来匚w文gQ记住要用引号将文g名模式引h?/p>
不管当前路径是什么,如果惌在自q根目?HOME中查找文件名W合*.txt的文Ӟ使用~作ؓ(f) 'pathname'参数QL号~代表?jin)你?HOME目录?/p>
惌在当前目录及(qing)子目录中查找所有的‘ *.txt’文gQ可以用Q?/p>
惌的当前目录及(qing)子目录中查找文g名以一个大写字母开头的文gQ可以用Q?/p>
惌?etc目录中查找文件名以host开头的文gQ可以用Q?/p>
惌查找$HOME目录中的文gQ可以用Q?/p>
要想让系l高负荷q行Q就从根目录开始查找所有的文g?/p>
如果惛_当前目录查找文g名以两个写字母开_(d)跟着是两个数字,最后是.txt的文Ӟ下面的命令就能够q回名ؓ(f)ax37.txt的文Ӟ(x) 按照文g权限模式?perm选项,按文件权限模式来查找文g的话。最好用八q制的权限表C法?/p>
如在当前目录下查找文件权限位?55的文Ӟx(chng)件属d以读、写、执行,其他用户可以诅R执行的文gQ可以用Q?/p>
q有一U表达方法:(x)在八q制数字前面要加一个横?Q表C都匚wQ如-007q当于777Q?006相当?66 -perm mode:文g许可正好W合mode -perm +mode:文g许可部分W合mode -perm -mode: 文g许可完全W合mode 如果在查找文件时希望忽略某个目录Q因Z知道那个目录中没有你所要查扄文gQ那么可以?prune选项来指出需要忽略的目录。在使用-prune选项时要当心(j)Q因为如果你同时使用?depth选项Q那?prune选项׃(x)被find命o(h)忽略?/p>
如果希望?apps目录下查找文Ӟ但不希望?apps/bin目录下查找,可以用:(x) 比如要在/usr/sam目录下查找不在dir1子目录之内的所有文?/p>
-path "/usr/sam" -prune -o -print ?-path "/usr/sam" -a -prune -o q个表达式组合特例可以用伪码写ؓ(f) 避开多个文g?/p>
圆括可C辑ּ的结合?br>
查找某一定文gQ?name{选项加在-o 之后 按文件属L找文Ӟ如在$HOME目录中查找文件属Mؓ(f)sam的文Ӟ可以用:(x) ?etc目录下查找文件属Mؓ(f)uucp的文Ӟ(x) Z(jin)查找属主帐户已经被删除的文gQ可以?nouser选项。这样就能够扑ֈ那些属主?etc/passwd文g中没有有效帐L(fng)文g。在使用-nouser选项Ӟ不必l出用户名; find命o(h)能够Z完成相应的工作?/p>
例如Q希望在/home目录下查找所有的q类文gQ可以用Q?br>
像user和nouser选项一P针对文g所属于的用L(fng)Q?find命o(h)也具有同L(fng)选项Qؓ(f)?jin)?apps目录下查扑ֱ于gem用户l的文gQ可以用Q?/p>
要查找没有有效所属用L(fng)的所有文Ӟ可以使用nogroup选项。下面的find命o(h)从文件系l的根目录处查找q样的文?/p>
如果希望按照更改旉来查找文Ӟ可以使用mtime,atime或ctime选项。如果系l突然没有可用空间了(jin)Q很有可能某一个文件的长度在此期间增长q速,q时可以用mtime选项来查找这L(fng)文g?/p>
用减?来限定更Ҏ(gu)间在距今n日以内的文gQ而用加号+来限定更Ҏ(gu)间在距今n日以前的文g?/p>
希望在系l根目录下查找更Ҏ(gu)间在5日以内的文gQ可以用Q?/p>
Z(jin)?var/adm目录下查找更Ҏ(gu)间在3日以前的文gQ可以用Q?/p>
如果希望查找更改旉比某个文件新但比另一个文件旧的所有文Ӟ可以使用-newer选项。它的一般Ş式ؓ(f)Q?/p>
其中Q!是逻辑非符受?/p>
查找更改旉比文件samC比文件temp旧的文gQ?/p>
例:(x)有两个文?/p>
查找更改旉在比temp文g新的文gQ?/p>
?etc目录下查找所有的目录Q可以用Q?/p>
在当前目录下查找除目录以外的所有类型的文gQ可以用Q?br>
?etc目录下查找所有的W号链接文gQ可以用 可以按照文g长度来查找文Ӟq里所指的文g长度既可以用块(blockQ来计量Q也可以用字节来计量。以字节计量文g长度的表辑Ş式ؓ(f)N cQ以块计量文仉度只用数字表C即可?/p>
在按照文仉度查找文件时Q一般用这U以字节表示的文仉度,在查看文件系l的大小Q因时用块来计量更Ҏ(gu)转换?br>
在当前目录下查找文g长度大于1 M字节的文Ӟ(x) ?home/apache目录下查找文仉度恰好ؓ(f)100字节的文Ӟ(x) 在当前目录下查找长度过10块的文gQ一块等?12字节Q:(x) 在用find命o(h)Ӟ可能希望先匹配所有的文gQ再在子目录中查找。用depth选项可以find命o(h)q样做。这样做的一个原因就是,当在使用find命o(h)向磁带上备䆾文gpȝӞ希望首先备䆾所有的文gQ其ơ再备䆾子目录中的文件?/p>
在下面的例子中, find命o(h)从文件系l的根目录开始,查找一个名为CON.FILE的文件?/p>
它将首先匚w所有的文g然后再进入子目录中查找?/p>
在当前的文gpȝ中查找文Ӟ不进入其他文件系l)(j)Q可以用find命o(h)的mount选项?/p>
从当前目录开始查找位于本文gpȝ中文件名以XCl尾的文Ӟ(x)$ find . -name "*.conf" -mtime +5 -ok rm { } \;
< rm ... ./conf/httpd.conf > ? n# find /etc -name "passwd*" -exec grep "sam" { } \;
sam:x:501:501::/usr/sam:/bin/bash
二、find命o(h)的例子;
1、查扑ֽ前用户主目录下的所有文Ӟ(x)
$ find $HOME -print
$ find ~ -print
2、让当前目录中文件属d有读、写权限Qƈ且文件所属组的用户和其他用户hL限的文gQ?br>
$ find . -type f -perm 644 -exec ls -l { } \;
3、ؓ(f)?jin)查扄l中所有文仉度ؓ(f)0的普通文Ӟq列出它们的完整路径Q?br>
$ find / -type f -size 0 -exec ls -l { } \;
4、查?var/logs目录中更Ҏ(gu)间在7日以前的普通文Ӟq在删除之前询问它们Q?br>
$ find /var/logs -type f -mtime +7 -ok rm { } \;
5、ؓ(f)?jin)查扄l中所有属于rootl的文gQ?br>
$find . -group root -exec ls -l { } \;
-rw-r--r-- 1 root root 595 10?31 01:09 ./fie1
6、find命o(h)删除当目录中访问时间在7日以来、含有数字后~的admin.log文g?br>
$ find . -name "admin.log[0-9][0-9][0-9]" -atime -7 -ok
rm { } \;
< rm ... ./admin.log001 > ? n
< rm ... ./admin.log002 > ? n
< rm ... ./admin.log042 > ? n
< rm ... ./admin.log942 > ? n
7、ؓ(f)?jin)查扑ֽ前文件系l中的所有目录ƈ排序Q?br>
$ find . -type d | sort
8、ؓ(f)?jin)查扄l中所有的rmt带讑֤Q?br>
$ find /dev/rmt -print
三、xargs
#find . -type f -print | xargs file
./.kde/Autostart/Autorun.desktop: UTF-8 Unicode English text
./.kde/Autostart/.directory: ISO-8859 text\
......$ find / -name "core" -print | xargs echo "" >/tmp/core.log
#find . -name "file*" -print | xargs echo "" > /temp/core.log
# cat /temp/core.log
./file6# ls -l
drwxrwxrwx 2 sam adm 4096 10?30 20:14 file6
-rwxrwxrwx 2 sam adm 0 10?31 01:01 http3.conf
-rwxrwxrwx 2 sam adm 0 10?31 01:01 httpd.conf
# find . -perm -7 -print | xargs chmod o-w
# ls -l
drwxrwxr-x 2 sam adm 4096 10?30 20:14 file6
-rwxrwxr-x 2 sam adm 0 10?31 01:01 http3.conf
-rwxrwxr-x 2 sam adm 0 10?31 01:01 httpd.conf# find . -type f -print | xargs grep "hostname"
./httpd1.conf:# different IP addresses or hostnames and have them handled by the
./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames
on your# find . -name \* -type f -print | xargs grep "hostnames"
./httpd1.conf:# different IP addresses or hostnames and have them handled by the
./httpd1.conf:# VirtualHost: If you want to maintain multiple domains/hostnames
on your
四、find 命o(h)的参?br>
1、用name选项
$ find ~ -name "*.txt" -print
$ find . -name "*.txt" -print
$ find . -name "[A-Z]*" -print
$ find /etc -name "host*" -print
$ find ~ -name "*" -print 或find . -print
$ find / -name "*" -print
$find . -name "[a-z][a-z][0--9][0--9].txt" -print
2、用perm选项
$ find . -perm 755 -print
# ls -l
-rwxrwxr-x 2 sam adm 0 10?31 01:01 http3.conf
-rw-rw-rw- 1 sam adm 34890 10?31 00:57 httpd1.conf
-rwxrwxr-x 2 sam adm 0 10?31 01:01 httpd.conf
drw-rw-rw- 2 gem group 4096 10?26 19:48 sam
-rw-rw-rw- 1 root root 2792 10?31 20:19 temp
# find . -perm 006
# find . -perm -006
./sam
./httpd1.conf
./temp
3、忽略某个目?br>
$ find /apps -path "/apps/bin" -prune -o -print
4、用find查找文g的时候怎么避开某个文g目录
find /usr/sam -path "/usr/sam/dir1" -prune -o -print
find [-path ..] [expression] 在\径列表的后面的是表达?/code>
-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>
if -path "/usr/sam" then
-prune
else
-printfind /usr/sam \( -path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -print
\ 表示引用Q即指示 shell 不对后面的字W作Ҏ(gu)解释Q而留l?find 命o(h)去解释其意义?/code>
#find /usr/sam \(-path /usr/sam/dir1 -o -path /usr/sam/file1 \) -prune -o -name "temp" -print
5、用user和nouser选项
$ find ~ -user sam -print
$ find /etc -user uucp -print
$ find /home -nouser -print
6、用group和nogroup选项
$ find /apps -group gem -print
$ find / -nogroup-print
7、按照更Ҏ(gu)间或讉K旉{查找文?br>
$ find / -mtime -5 -print
$ find /var/adm -mtime +3 -print
8、查找比某个文g新或旧的文g
newest_file_name ! oldest_file_name
-rw-r--r-- 1 sam adm 0 10?31 01:07 fiel
-rw-rw-rw- 1 sam adm 34890 10?31 00:57 httpd1.conf
-rwxrwxr-x 2 sam adm 0 10?31 01:01 httpd.conf
drw-rw-rw- 2 gem group 4096 10?26 19:48 sam
-rw-rw-rw- 1 root root 2792 10?31 20:19 temp
# find -newer httpd1.conf ! -newer temp -ls
1077669 0 -rwxrwxr-x 2 sam adm 0 10?31 01:01 ./httpd.conf
1077671 4 -rw-rw-rw- 1 root root 2792 10?31 20:19 ./temp
1077673 0 -rw-r--r-- 1 sam adm 0 10?31 01:07 ./fiel$ find . -newer temp -print
9、用type选项
$ find /etc -type d -print
$ find . ! -type d -print
$ find /etc -type l -print
10、用size选项
$ find . -size +1000000c -print
$ find /home/apache -size 100c -print
$ find . -size +10 -print
11、用depth选项
$ find / -name "CON.FILE" -depth -print
12、用mount选项
$ find . -name "*.XC" -mount -print
]]>
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>
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>
tune2fs -U 51f7e9a4-5154-4e29-a7a6-208417290b85 /dev/sda
-U 的参数如果ؓ(f) random 表示直接产生一个随意的?UUIDQ?
tune2fs -U random /dev/sda
-U 的参数如果ؓ(f) time 表示直接依当前时间生一个新?UUIDQ?
-U 的参数如果ؓ(f) clear 表示清除档案pȝ?UUIDQ?