您的位置:首页 > 运维架构 > Linux

Linux定时任务crontab

2015-08-19 16:08 561 查看
cron是linux下的定时执行工具,并提供crontab命令来设定cron服务。

service crond status //查看cron运行状态

service crond start //启动cron服务

service crond stop //停止cron服务

service crond restart //重启cron服务

1.配置用户级cron

1)crontab参数:

crontab -e //编辑某个用户的cron服务。
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //查看某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务


2)增加某个用户的cron服务

假如当前登录用户为root,则使用crontab -e命令为root用户创建一个定时任务。

3)定时任务格式说明

* * * * * file/comand [arg1,arg2,...]


前半部分为时间设定,前5个*代表5个数值,其取值范围及含义如下:

*:分钟(0-59)

*:小时(0-23)

*:日期(1-31)

*:月份(1-12)

*:星期(0-6),0表示星期天

除了数字,还有一些特殊符号可能会运用在上面5个地方,如:

“*”表示取值范围内的任意数值;

“/”表示每的意思,表示间隔;

“-“表示从某个数字到某个数字

举例说明:

0 6 * * * echo "Good morning." //每天早上6点执行命令

0 */2 * * * echo "Have a break now." >> /tmp/test.txt //每2小时执行命令
0 4 1 1 * command line //1月1号早上4点执行命令


后半部分为需要执行的脚本或者脚本文件及相应的参数。

如:

10 22 * * 5 /home/mysqldump/datashuo_fast_backup.sh market market_weixin datashuo_fast_backup.log 2>&1


上面一行表示:每个星期五22点10分执行脚本文件datashuo_fast_backup.sh,同时传送2个参数market和market_weixin,并将执行过程信息输出到对应的日志文件中。

2>&1表示错误信息重定向到标准信息,即不管是错误信息还是标准信息都输出到日志文件中。

4)使用crontab -e编辑任务并保存后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,该文件记录了某个用户的cron信息。

该文件不可被编辑,只能查看。

5)cron会每过一分钟读一次这个文件,检查是否要执行里面的命令。所以在使用crontab -e编辑任务后,无需重启crond

2.配置系统级cron

cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab文件。

用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。

此文件格式为:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
HOME=/ //使用者运行的路径,这里是根目录

#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


如,vi /etc/crontab,增加如下信息:

01 * * * * root run-parts /etc/cron.hourly //root用户每小时执行/etc/cron.hourly内的脚本
02 4 * * * root run-parts /etc/cron.daily //root用户每天执行/etc/cron.daily内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly //root用户每星期执行/etc/cron.weekly内的脚本
42 4 1 * * root run-parts /etc/cron.monthly //root用户每月去执行/etc/cron.monthly内的脚本


注:

如果去掉参数”run-parts”,那么后面直接跟需要执行的命令或者脚本文件即可。

如果使用参数”run -parts”,后面接脚本文件所在的路径。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux crontab