Skip to content

Latest commit

 

History

History
60 lines (42 loc) · 2.34 KB

12.1crontab-ji-hua-ren-wu.md

File metadata and controls

60 lines (42 loc) · 2.34 KB
description
计划任务:就是有计划的让系统去自动执行某项操作,而无需人工干预

12.1:crontab 计划任务

crontab 是系统自带的计划任务,系统安装完后,该包就自动被安装在系统里了。我们先来看下主配置文件写法:

[root@xb-db-074-010 ~ 13:12:17]#cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

*/5 * * * *    root   /sbin/ntpdate   s2m.time.edu.cn

说明:

* * * * * 分别代表:分、时、日、月、周

crontab -e 和 /etc/crontab 的区别:

crontab -e 是用户级别的:默认情况下执行crontab -e 会在 /var/spool/cron 目录下生成一个以当前用户命名的文件, 内 容就是使用 crontab -e 里面写的计划内容。如下:

我在 xinbo 用户下建了一个计划任务,每天0点0分执行tomcat 日志切割脚本:

[xinbo@xb-cj-034-030 ~ 13:04:43]$crontab -l
# 每天定时切割日志,并保留7天日志
0 0 * * *    /bin/bash  /home/xinbo/tomcat-log.sh

此时,我们切换到 root 用户下去查看 /var/spool/cron 目录是否有xinbo 这个文件,且内容是否是上面写的计划任务内容:

[root@xb-cj-034-030 ~ 13:03:20]#cat /var/spool/cron/xinbo
# 每天定时切割日志,并保留7天日志
0 0 * * *    /bin/bash  /home/xinbo/tomcat-log.sh

注:使用 crontab -e 写的计划任务,无需在任务内容中注明用户,因为它本身就是以当前用户命名,所以,它只会在当前用户下执行。如果在其中指定了运行的用户,该计划任务反而不会执行!

**/etc/crontab 是系统级别的:**就是说写在这个配置文件里面的计划任务列表,不管是root 用户还是其他普通用户的,都会执行。注:使用该配置文件写的计划任务,必须指定执行计划的用户,否则计划任务会执行失败,在 /var/log/cron 日志文件中输出:

ERROR (getpwnam() failed)