让你学会Linux计划任务(2)

  二、cron服务

  上面已经简单介绍了cron的一些进程和控制。下面我们来看看cron怎么实现。

  相对与at,cron的优点就是能够周期性的执行某个命令,at却只能执行一次

  cron的后台进程名字是crond ,cron也是system V的服务,所以我们可以service crond start|stop 来启动和关闭此服务,也可以使用chkconfig或者ntsysv来选择cron服务的默认开启,这些命令在以前我们都讲过的

  #crontab -e 编辑当前用户的cron表

  #crontab -l 查看当前用户的cron表

  #crontab -r 删除当前用户的cron进程

  #crontab -u 用户名 以某用户的身份来控制cron表

  还有个重要的知识点,就是当用户的计划任务建立后是存放在/var/spool/cron这个目录

  当使用crontab -e编辑当前用户的cron表后,会出现一个vi文件,cron的格式是这样的。分成两列,左边是时间,右边是运行的命令。时间是由5个部分组成。

  例:

  * * * * * wall hello everyone

  5个星号分别代表:minute hour day-of-month month-of-year day-of-week 分时日月周 ,而wall hello everyone 这是命令内容。上面的意识是每分每小时每天每月每周广播hello everyone。具体时间大家可以自己定义。如果要每两分钟发送就用*/2代替第一个*。也可以是用具体时间来表示。

  Crontab –e 编辑的任务不要加入用户名

  第一个*星号代表个小时的第几分钟:minute 范围是从0-59

  第二个*星号代表每天的第几个小时:hour 范围是从0-23

  第三个*星号代表每月的第几个日:day-of-month 范围从1-31

  第四个*星号代表没年的第几个月:month-of-year 范围从1-12

  第五个*星号代表每周的星期几:day-of-week 范围从0-6,其中0表示星期日

  用户名:也就是执行程序要通过哪个用户来执行,这个一般可以省略;

  命令:执行的命令和参数。

  如果我要表示9月10日25分执行ls var/spool/cron任务怎么表示?

  25 * 10 9 * ls var/spool/cron

  */1 * * * 0 wall Hello redking.blog.51cto.com

  */ 表示每多少分钟执行一次哈~

  当制定了cron任务后,可以用crontab -l查看, 也可以到/var/spool/cron/目录查看。里面的文件名字就是对应用户的cron任务

  可以使用crontab -r 来删除当前用户的cron

  vim /etc/crontab 与crontab -e写入的定时运行有什么区别?

  vim /etc/crontab:是系统级别定义的crontab,/etc/crontab的所有者和组都是root

  crontab -e :是用户自定义的crontab,是所有的用户都可以写入的

  两种方法记录的位置不一样,一个在/etc/ 另一个在/var/ 里面。都被cron服务调用哈~

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/27392.html