0430cron.htm
来自「鸟哥LINUX 学习课本」· HTM 代码 · 共 652 行 · 第 1/3 页
HTM
652 行
<==窥视一下你(test)目前有多少工作?</font></font><br><font size="-1" color="#ffffff" face="SimSun">5      2002-05-30 12:00 a test</font><br><font size="-1" color="#ffffff" face="SimSun">8      2002-05-30 17:00 a rest</font></p><p><font size="-1" face="SimSun"><font color="#ffffff">[test @testtest]# </font><font color="#ffff00">atrm 5</font><font color="#ff9900"><==删除第5 号工作</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[test @testtest]# </font><font color="#ffff00">atq</font></font><br><font size="-1" color="#ffffff" face="SimSun">8      2002-05-30 17:00 a rest</font></p></td></tr></tbody></table><p>请注意!在 at 下达之后,便进入指令列下达的模式!在这里你可以重复的输入指令,但是离开的时候请下达『[Ctrl] + D 』就可以离开了!离开之后,系统会告诉你这个工作排程的号码与使用者是谁!呵呵!很简单吧!</p></blockquote><hr width="100%"><a name="crontab"></a><font size="+1" color="#000099">循环执行的例行性命令</font><blockquote>这个循环的例行性命令其实就是 cron 这个服务啦 (crond)!当你下达crontab 的指令之后,会将你的命令写入<font color="#3333ff"> </font><b><font color="#000099">/var/spool/cron</font></b>这个目录当中呦!例如test 下达了他的 crontab 命令,那么就会自动产生 /var/spool/cron/test 这个档案!『<font color="#3333ff">但请注意,这个档案不能直接编辑!</font>』然后执行的指令记录会放置在/var/log/cron 这个档案中!所以,『<font color="#3333ff">如果您的 Linux系统不知道是否被木马入侵时,可以搜寻一下 /var/log/cron 这个记录挡,视察看看有没有被搞鬼</font>?』</blockquote><blockquote>好了!我们来看一下 crontab 的指令语法吧!<br> <table bgcolor="#000000" border="1" cols="1" width="650"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[test @testtest]# </font><font color="#ffff00">crontab [-u user] [-l | -e | -r]</font></font><br><font size="-1" color="#ffffcc" face="SimSun">参数说明:</font><br><font size="-1" color="#ff9900" face="SimSun">-u user :只有root 能下达的参数,视察或编译其它使用者的 crontab 内容</font><br><font size="-1" color="#ff9900" face="SimSun">-l     :列出 crontab 的内容</font><br><font size="-1" color="#ff9900" face="SimSun">-e     :编辑 crontab 的内容</font><br><font size="-1" color="#ff9900" face="SimSun">-r     :删除 crontab 的内容</font><br><font size="-1" color="#ffffcc" face="SimSun">范例:</font><br><font size="-1" color="#ffffcc" face="SimSun">一般使用者test 要在每天的 12:00 发信给自己:</font><p><font size="-1" face="SimSun"><font color="#ffffff">[test @testtest]# </font><font color="#ffff00">crontab -e</font><font color="#ffffff"></font><font color="#ff9900"><==自己编辑自己的 crontab 内容</font></font></p><p><font size="-1" color="#ffffcc" face="SimSun">进入 crontab编辑内容,使用 vi 呦!</font></p><p><font size="-1" color="#ffff00" face="SimSun">0 12 * * * mailtest < /home/test/test.txt</font><br><font size="-1" color="#ff9900" face="SimSun">分时日月周|========指令列===============|</font></p></td></tr></tbody></table><p>上面的例子是说:假如你需要在每天的正午 12:00 发一封信给你自己,而且信的内容已经写好了,那要怎样作呢?而且,另一个假设是,你在Linux Server 中的权限仅止于一般使用者,并不是 root (管理员)身份,那要怎样设定你的例行性命令呢?哈哈!那就使用crontab 这个指令吧!你只要执行『 <b>crontab -e </b>』就可以进入 vi 的编辑画面来编辑你的例行性命令说!</p></blockquote><blockquote>在上面的例子中,输入 crontab -e 时,会出现一个 <a href="http://linux.vbird.org//linux_basic/38vi.html">vi</a>画面,然后你在 vi 画面中输入上面的一行字,之后按<font color="#3333ff">:wq</font>储存后离开!即可完成编辑!容易吧!那上面那一行字代表什么意义呢?你可以看到,在真正执行命令之前(就是mail test < /home/test/test.txt )总共有五个数字,这五个数字分别代表:<blockquote><font color="#000099" face="SimSun">分 (0-59)</font><br><font color="#000099" face="SimSun">小时 (0-23)</font><br><font color="#000099" face="SimSun">日期 (1-31)</font><br><font color="#000099" face="SimSun">月份 (1-12)</font><br><font color="#000099" face="SimSun">周 (0-6)</font><table border="1" cols="6" width="550"><tbody><tr><td bgcolor="#ffffcc" width="120"><center>数字代表的意义</center></td><td width="70"><center>分钟</center></td><td width="70"><center>小时</center></td><td width="70"><center>日期</center></td><td width="70"><center>月份</center></td><td width="150"><center>周</center></td></tr><tr><td bgcolor="#ffffcc"><center>范围</center></td><td><center>0-59</center></td><td><center>0-23</center></td><td><center>1-31</center></td><td><center>1-12</center></td><td><center>0-6 (0为星期天)</center></td></tr></tbody></table></blockquote>另外,如果是『 *  』的时候,代表所有数字都适用的意思。所以,你就可以知道我上面那一行写的意义为何了!那就是『<font color="#3333ff" face="SimSun">不论何月、何日、星期几的12 点 0 分时,执行 mail test < /home/test/test.txt 这个命令</font>』!还不了解?没关系,我们这里作几个例子!<br> <table bgcolor="#000000" border="1" cols="1" width="650"><tbody><tr><td><font size="-1" color="#ffffcc" face="SimSun">例题一:假如你的女朋友生日是5 月 2 日,你想要在 5 月 1 日的 23:59 发一封信给他,</font><br><font size="-1" color="#ffffcc" face="SimSun"> 这封信的内容已经写在/home/test/lover.txt 中了</font><p><font size="-1" face="SimSun"><font color="#ffffff">[test @testtest]# </font><font color="#ffff00">crontab -e</font></font></p><p><font size="-1" color="#ffffff" face="SimSun">59 23 1 5 *mail pigpp < /home/test/lover.txt</font></p></td></tr></tbody></table>那样的话,每年 pigpp 都会收到你的这封信喔!(当然啰,信的内容就要每年变一变啦!)<br> <table bgcolor="#000000" border="1" cols="1" width="650"><tbody><tr><td><font size="-1" color="#ffffcc" face="SimSun">例题二:假如你每隔五分钟要去check 你的一个名为 test.sh 的批次档一次,则:</font><p><font size="-1" face="SimSun"><font color="#ffffff">[test @testtest]#</font><font color="#ffff00"> crontab -e</font></font></p><p><font size="-1" face="SimSun"><font color="#ffffff">59 23 1 5 *mail pigpp < /home/test/lover.txt </font><font color="#ff9900"><==刚刚的那个指令还存在呦!</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">*/5 * * * */home/test/test.sh </font><font color="#ff9900"> <==新加入的一个排程!</font></font></p></td></tr></tbody></table>注意到呦!那个 crontab 每个人都只有一个档案,就是在 /var/spool/cron 里面的档案啦!还有两件事要注意一下:<blockquote>(1) 指令的路径最好是下达<a href="http://linux.vbird.org//linux_basic/0220filemanager.php#abslut_relate">绝对路径</a>,这样比较不会找不到执行的档案喔;<br>(2) 第一个数字 <font color="#3333ff">*/5 </font>表示『每五分钟执行一次』的意思!</blockquote><table bgcolor="#000000" border="1" cols="1" width="650"><tbody><tr><td><font size="-1" color="#ffffcc" face="SimSun">例题三:假如你每个礼拜的星期五下午4:30 要告诉朋友星期六的约会不要忘记,则:</font><p><font size="-1" face="SimSun"><font color="#ffffff">[test @testtest]# </font><font color="#ffff00">crontab -e</font></font></p><p><font size="-1" color="#ffffff" face="SimSun">59 23 1 5 *mail pigpp < /home/test/lover.txt </font><br><font size="-1" color="#ffffff" face="SimSun">*/5 * * * */home/test/test.sh</font><br><font size="-1" face="SimSun"><font color="#ffffff">30 16 * * 5mail frend@test.domain.name < /home/test/frend.txt</font><font color="#ff9900"><==新加入的!</font></font></p></td></tr></tbody></table>呵呵!这样很简单吧!如此就可以轻易的达到您所需要的例行性工作排程的安排啰!</blockquote><blockquote>好了!那么我们要如何来查看使用者目前的 crontab 的工作排程呢?<br> <table bgcolor="#000000" border="1" cols="1" width="650"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[test @testtest]# </font><font color="#ffff00">crontab -l</font><font color="#ffffff"></font><font color="#ff9900"><==这个 -l 是 L 的小写</font></font><br><font size="-1" color="#ffffff" face="SimSun"># DO NOT EDITTHIS FILE - edit the master and reinstall.</font><br><font size="-1" color="#ffffff" face="SimSun"># (/tmp/crontab.27683installed on Thu May 30 13:38:38 2002)</font><br><font size="-1" color="#ffffff" face="SimSun"># (Cron version-- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)</font><br><font size="-1" color="#ffffff" face="SimSun">59 23 1 5 *mail pigpp < /home/test/lover.txt</font><br><font size="-1" color="#ffffff" face="SimSun">*/5 * * * */home/test/test.sh</font><br><font size="-1" color="#ffffff" face="SimSun">30 16 * * 5mail frend@test.domain.name < /home/test/frend.txt</font></td></tr></tbody></table>呵呵呵!其实这个显示的内容就是 /var/spool/cron/test 档案的内容啦!那么如何删除排程呢?<br> <table bgcolor="#000000" border="1" cols="1" width="650"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[test @testtest]#</font><font color="#ffff00"> crontab -r</font></font><br><font size="-1" face="SimSun"><font color="#ffffff">[test @testtest]# </font><font color="#ffff00">crontab -l</font></font><br><font size="-1" color="#ffffff" face="SimSun">no crontabfor test</font></td></tr></tbody></table>看到了吗? crontab 『整个内容都不见了!』所以请注意:『<font color="#3333ff">如果只是要删除某个crontab 的工作项目,那么请使用 crontab -e 来重新编辑即可!</font>』如果使用-r 的参数,是会将所有的 crontab 数据内容都删掉的!千万注意了!</blockquote><hr width="100%"><a name="etc-crontab"></a><font size="+1" color="#000099">系统的crontab 设定</font><blockquote>这个『 crontab -e 』是针对使用者的 cron 来设计的,如果是『系统的例行性任务』时,该怎么办呢?是否还是需要以crontab -e 来管理你的例行性命令呢?当然不需要,你只要编辑<b><font color="#3333ff">/etc/crontab</font></b>这个档案就可以啦!有一点需要特别注意喔!那就是crontab -e 这个 crontab 其实是 /usr/bin/crontab 这个执行档,但是 /etc/crontab可是一个『纯文字文件』喔!你可以 root 的身份编辑一下这个档案哩!</blockquote>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?