linux 定时命令crotab详解

crontab命令是linux系统中的一个系统服务crond来处理的,crond是一个守护进程,默认会开启及启动,crond进程除了给系统执行周期性的任务外也给使用用户提供了crontab命令来执行一些定时任务。

crontab 命令是用于执行周期性的一些定时任务,可以定时执行一些命令或shell脚本,比如定时备份数据库,清理php session缓存文件,定期重启服务器,定期清理log文件登。

crond进程全局配置文件在linux的/etc目录中:
cron.daily 文件夹是每天执行一次的任务
cron.weekly 文件夹是每个星期执行一次的任务
cron.monthly 文件夹是每月执行一次的任务
cron.hourly 文件夹是每个小时执行一次的任务
cron.d 文件夹是系统自动定期需要做的任务
crontab 文件是设定定时任务执行文件
cron.deny 文件就是用于禁止指定的用户使用Crontab

#系统任务
 [root@localhost etc]# cat /etc/crontab
 SHELL=/bin/bash
 PATH=/sbin:/bin:/usr/sbin:/usr/bin
 MAILTO=rootFor 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

创建定时任务,用户创建后定时任务会生成一个文件在/var/spool/cron/目录中,文件名以用户名命名。

查看当前用户的任务
crontab -l

创建任务
crontab -e
命令执行后会创建一个文件,编写定时代码
代码格式:

*       *      *      *        command

格式说明:

*       *      *      *        command

minute hour day month week command

分 时 天 月 星期 命令

minute: 分钟,可以是从0到59之间的任何整数。
hour:小时,可以是从0到23之间的任何整数。
day:日期,可以是从1到31之间的任何整数。
month:月份,可以是从1到12之间的任何整数。
week:星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,统命令或自己编写的脚本文件(脚本文件需要添加执行权限chmod +x 脚本文件名)。

以上的*后面可以带上的参数:

星号(*):代表所有可能的值。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

删除当前用户的定时任务
crontab -r

查看当前用户crontab运行实时日志
tail -f /var/log/cron

示例:

0 */2 * * * /usr/local/test.sh //每两小时执行一次脚本
 0 0 * * * /usr/local/test.sh //每天半夜执行一次脚本