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

Linux定时任务操作指令 - crontab

2016-04-12 22:17 549 查看
Linux系统中的crontab命令,用于向系统中添加需要定时执行的任务,它可以在用户指定的时间去执行用户设定的操作。

通常将需要加入任务列表的操作写入到一个文件,然后使用crontab加入到任务列表中。

需要注意的是,最近一次添加的任务会覆盖上一次添加的任务,所以有多个任务需要加入到执行列表中时,需要写在同一个文件中加入,或使用”crontab -e“加入。

设置crontab任务的文件格式如下:

*  *  *  *  * [user-name]  command to be executed


第1个*号表示分钟,范围为(0-59);

第2个*号表示小时,范围为(0-23);

第3个*号表示日期,范围为(1-31);

第4个*号表示月份,范围为(1-12),也可以使用英文简写jan,fed,mar等;

第5个*号表示星期,范围为(0-6),也可以使用英文简写sun,mon,tue等;

[user-name]为可选项,表示任务所属用户,可不写,则默认属于当前登录的用户;

最后就是需要执行的操作了。

来看一个例子,每隔2分钟执行一次“/usr/bin/php /root/a.php”,文件名设置为cronfile,内容为:

*/2 * * * * /usr/bin/php /root/a.php


crontab命令支持下列参数:

-u <user>  为指定的用户设定任务,该任务只会在指定的用户登录时执行,需要注意用户权限的问题;
-e         编辑任务,所编辑的任务属于当前登录的用户;
-l         显示当前登录用户所属的任务列表;
-r         删除当前登录用户的任务;
-n <host>  在集群中设置主机去执行用户的任务;
-c         获取集群中运行用户任务的主机;
-s         获取Linux进程环境
-x <mask>  启用调试


想要将上面设置的cronfile加入到任务列表中,需要执行:

crontab cronfile


如果需要修改任务,可以通过”crontab -e“来进行,默认使用的是vi编辑器;

如果需要显示当前的任务列表,可以使用”crontab -l“来进行获取;

如果需要删除当前的任务,可以使用”crontab -r“来清空任务列表。

crontab将所有的任务信息都保存在”/var/spool/cron/“目录下,每个用户的任务都是以用户名来进行命名的。

Linux后台默认会启动crond进程,这是crontab的守护进程,它会定时去检查看有没有需要执行的任务。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息