<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[Crontab实例]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[生活笔记]]></category>
<pubDate>Tue, 01 Jul 2008 03:01:20 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	cron是一个linux下的定时执行工具，可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务，但它不自动起来，可以用以下的方法启动、关闭这个服务： <br/><br/><br/> <br/><br/>/sbin/service crond start //启动服务 <br/>/sbin/service crond stop //关闭服务 <br/>/sbin/service crond restart //重启服务 <br/>/sbin/service crond reload //重新载入配置 <br/><br/>你也可以将这个服务在系统启动的时候自动启动： <br/>在/etc/rc.d/rc.local这个脚本的末尾加上： <br/>/sbin/service crond start <br/><br/>现在Cron这个服务已经在进程里面了，我们就可以用这个服务了，Cron服务提供以下几种接口供大家使用： <br/><br/>1、直接用crontab命令编辑 <br/><br/>cron服务提供crontab命令来设定cron服务的，以下是这个命令的一些参数与说明： <br/><br/>crontab -u //设定某个用户的cron服务，一般root用户在执行这个命令的时候需要此参数 <br/>crontab -l //列出某个用户cron服务的详细内容 <br/>crontab -r //删除某个用户的cron服务 <br/>crontab -e //编辑某个用户的cron服务 <br/><br/><br/>比如说root查看自己的cron设置：crontab -u root -l <br/>再例如，root想删除fred的cron设置：crontab -u fred -r <br/>在编辑cron服务时，编辑的内容有一些格式和约定，输入：crontab -u root -e <br/>进入vi编辑模式，编辑的内容一定要符合下面的格式：*/1 * * * * ls &gt;&gt; /tmp/ls.txt <br/><br/>这个格式的前一部分是对时间的设定，后面一部分是要执行的命令，如果要执行的命令太多，可以把这些命令写到一个脚本里面，然后在这里直接调用这个脚本就可以了，调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定，前面五个*号代表五个数字，数字的取值范围和含义如下： <br/><br/>分钟　（0-59） <br/>小時　（0-23） <br/>日期　（1-31） <br/>月份　（1-12） <br/>星期　（0-6）//0代表星期天 <br/><br/>除了数字还有几个个特殊的符号就是&quot;*&quot;、&quot;/&quot;和&quot;-&quot;、&quot;,&quot;，*代表所有的取值范围内的数字，&quot;/&quot;代表每的意思,&quot;*/5&quot;表示每5个单位，&quot;-&quot;代表从某个数字到某个数字,&quot;,&quot;分开几个离散的数字。以下举几个例子说明问题： <br/><br/>每天早上6点 <br/><br/>0 6 * * * echo &quot;Good morning.&quot; &gt;&gt; /tmp/test.txt //注意单纯echo，从屏幕上看不到任何输出，因为cron把任何输出都email到root的信箱了。 <br/><br/>每两个小时 <br/><br/>0 */2 * * * echo &quot;Have a break now.&quot; &gt;&gt; /tmp/test.txt <br/><br/>晚上11点到早上8点之间每两个小时，早上八点 <br/><br/>0 23-7/2，8 * * * echo &quot;Have a good dream：）&quot; &gt;&gt; /tmp/test.txt <br/><br/>每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 <br/><br/>0 11 4 * 1-3 command line <br/><br/>1月1日早上4点 <br/><br/>0 4 1 1 * command line <br/><br/>每次编辑完某个用户的cron设置后，cron自动在/var/spool/cron下生成一个与此用户同名的文件，此用户的cron信息都记录在这个文件中，这个文件是不可以直接编辑的，只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件，检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。 <br/><br/>2、编辑/etc/crontab 文件配置cron <br/><br/>cron服务每分钟不仅要读一次/var/spool/cron内的所有文件，还需要读一次/etc/crontab,因此我们配置这个文件也能运用 cron服务做一些事情。用crontab配置是针对某个用户的，而编辑/etc/crontab是针对系统的任务。此文件的文件格式是： <br/><br/>SHELL=/bin/bash <br/><br/>PATH=/sbin:/bin:/usr/sbin:/usr/bin <br/><br/><br/> <br/><br/>MAILTO=root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//如果出现错误，或者有数据输出，数据作为邮件发给这个帐号 <br/><br/>HOME=/&nbsp;&nbsp;&nbsp;&nbsp;//使用者运行的路径,这里是根目录 <br/><br/># run-parts <br/><br/>01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本 <br/>02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本<br/>22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本 <br/>42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本 <br/><br/>大家注意&quot;run-parts&quot;这个参数了，如果去掉这个参数的话，后面就可以写要运行的某个脚本名，而不是文件夹名了。<br/><br/>--------------------------------------<br/>基本格式 :<br/>*　　*　　*　　*　　*　　command<br/>分　时　日　月　周　命令<br/><br/>第1列表示分钟1～59 每分钟用*或者 */1表示<br/>第2列表示小时1～23（0表示0点）<br/>第3列表示日期1～31<br/>第4列表示月份1～12<br/>第5列标识号星期0～6（0表示星期天）<br/>第6列要运行的命令<br/><br/>crontab文件的一些例子：<br/><br/>30 21 * * * /usr/local/etc/rc.d/lighttpd restart<br/>上面的例子表示每晚的21:30重启lighttpd 。<br/><br/>45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart<br/>上面的例子表示每月1、10、22日的4 : 45重启lighttpd 。<br/><br/>10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart<br/>上面的例子表示每周六、周日的1 : 10重启lighttpd 。<br/><br/>0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart<br/>上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启lighttpd 。<br/><br/>0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart<br/>上面的例子表示每星期六的11 : 00 pm重启lighttpd 。<br/><br/>* */1 * * * /usr/local/etc/rc.d/lighttpd restart<br/>每一小时重启lighttpd <br/><br/>* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart<br/>晚上11点到早上7点之间，每隔一小时重启lighttpd <br/><br/>0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart<br/>每月的4号与每周一到周三的11点重启lighttpd <br/><br/>0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart<br/>一月一号的4点重启lighttpd <br/>
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] Crontab实例]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>