linux cron学习体系

长平狐 发布于 2012/09/19 13:56
阅读 320
收藏 1


  linux有个服务,叫cron,提供例行性作业调度。


  crontab是一个命令,用于设置周期性被执行的作业。该词源于希腊语 chronos(χρόνος),原意是时间,而crond正是它的守护进程。

  linux系统原本就有非常多的例行性工作,因此这个服务默认是启动的。可通过service crond status,来瞧瞧先。为了安全性的问题,可在/etc/cron.deny中,将不可以使用crontab的用户记录。一个用户一行。


  当think使用crontab命令后,他的工作会被记录到/var/spool/cron/think。同时,linux系统会将cron执行的每一项作业记录到/var/log/cron这个日志文件。

  crontab语法如下:
  crontab  [-u username]  [-l|-e|-r]
  参数:
  -u:只有root才能进行这个任务,即帮其他用户新建/删除作业调度
  -l:查阅crontab的作业内容
  -e:编辑crontab的作业内容
  -r:删除crontab的全部作业内容,删除一项,请用-e


  例子:
  1)用think的身份在每天的12:00发信给自己
  crontab -e
  #此时会进入vi的编辑界面让你编辑工作,注意,每项作业都是一行,而且,最好使用绝对路径
  0 12 * * * mail think -s "at 12:00" < /home/think/.bashrc
  #分 时 日 月 周 |《=============命令串=============》|
  编辑完,输入":wq"保存离开vi即可。

  2)假若你的女朋友生日是 5 月 2 日,你想要在 5 月 1 日的 23:59 發一封信給他,這封信的內容已經寫在 /home/dmtsai/lover.txt 內了,該如何進行?
  解:59 23 1 5 * mail kiki < /home/dmtsai/lover.txt

  3)假如每五分鐘需要執行 /home/dmtsai/test.sh 一次,又該如何?
  解:*/5 * * * * /home/dmtsai/test.sh

  以上谈的都是基于用户,那么基于系统呢?直接修改/etc/crontab这个文件即可。
  有三种类型:
  其一,命令型
  0 1 * * * think mail -s "testing" water < /home/dmtsai/test.txt
  让think每小时给water发邮件
  其二,目录型
  */2 * * * * root run-parts /root/runcron
  让root每2分钟去执行/root/runcron下的所有可执行文件
  其三,程序型
  */5 * * * * root /bin/mrtg /etc/mrtg/mrtg.cfg
  让root每5分钟去运行/etc/mrtg/下的mrtg程序

 

扩展阅读:

http://linux.vbird.org/linux_basic/0430cron.php#cron

http://www.cn-java.com/www1/?uid-560221-action-viewspace-itemid-8377

http://blog.csdn.net/sipsir/article/details/3973713

 


原文链接:http://blog.csdn.net/linwaterbin/article/details/7661552
加载中
返回顶部
顶部