1、什么是crontab
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。
计划任务分2种:
1、 例外性:按一定的周期循环来执行工作,如每月发薪水、每天一次的工作报告、每天需要的打卡等等;
2、 临时性:指定时间执行的命令,这次做完下次不必做的,如领导检查工作等;
这些计划任务的工作 Linux也都可以帮助我们,如:每天早6:00要叫我起床(当然是通过音频设备了);下班之前发送一份Email给自己,提醒别忘记发日报等;
对于周期性的任务用cron命令; -- 周期性计划任务
对于临时性的任务用 at 命令; -- 一次性计划任务
at命令:在指定的时间执行指定的命令,执行完之后就从系统中取消该命令;
cron命令:在指定的时间周期性的执行指定的命令;
安装crontab:
yum install crontabs
说明:
/etc/init.d/crond start 启动服务
/etc/init.d/crond stop 关闭服务
/etc/init.d/crond restart 重启服务
/etc/init.d/crond reload 重新载入配置
查看crontab服务状态: /etc/init.d/crondd status
查看crontab服务是否已设置为开机启动,执行命令:ntsysv
加入开机自启动: chkconfig –level 35 crond on
2、 crontab命令
使用权限:
root用户和crontab文件的所有者
语法:
crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]
说明:
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。
参数:
-e [UserName]: 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe),编辑定时任务
-r [UserName]: 删除目前的时程表 删除定时任务
-l [UserName]: 列出目前的时程表 查询定时任务
-v [UserName]:列出用户cron作业的状态 查看定时任务的执行状态或过程
crontab命令格式:
基本格式: * * * * * command
分 时 日 月 周 命令
第1列表示:分钟1~~59 每分钟用*或*/1表示
第2列表示:小时1~~23 (0 表示0点)
第3列表示:日期1~~31
第4列表示:月份1~~12
第5列表示:星期0~~6 (0 表示 星期天)
第6列表示:运行的命令
crontab命令特殊符号:
3、 案例
30 21 * * * /etc/init.d/nginx restart 每晚21:30 重启nginx
45 4 1,10,22 * * /etc/init.d/nginx restart 每月1、10、22日的4:45分 重启nginx
10 1 * * 6,0/etc/init.d/nginx restart 每周六日的1:10 重启nginx
0,30 18-23 * * * /etc/init.d/nginx restart 18点至23点之间每隔30分钟重启nginx
0 23 * * 6 /etc/init.d/nginx restart 每周六的23点重启nginx
* */1 * * * /etc/init.d/nginx restart 每一小时重启nginx
* 23-7/1 * * * /etc/init.d/nginx restart 晚上23点到早上7点之间,每小时重启nginx
0 11 4 * mon-wed /etc/init.d/nginx restart 每月4号的周一到周三 11点重启nginx
0 4 1 jan * /etc/init.d/nginx restart 一月1号的4点重启nginx
*/30 * * * * /usr/sbin/ntpdate 210.72.145.20 每30分钟同步一次时间
本文转自 linuxzkq 51CTO博客,原文链接:http://blog.51cto.com/linuxzkq/1659565