语法介绍

使用权限 : root用户和crontab文件的所有者   

 

Linux 定时执行命令 crontab_定时执行命令

crontab格式

语法: crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]   

说明 : crontab 是用来让使用者在固定时间或固定间隔执行程式之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。   

参数 :   

-e [UserName]: 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文

-r [UserName]: 删除目前的时程表   

-l [UserName]: 列出目前的时程表   

-v [UserName]:列出用户cron作业的状态 。

使用方法:

a b c d e program

    其中 a 是表示分钟,b 表示小时,c 表示一个月份中的第几日,d 表示月份,e 表示一个星期中的第几天。program 表示要执行的程式。

    当 a 为 * 时表示每分钟都要执行 program,b 为 * 时表示每小时都要执行程式,其余类推

  当 a 为 a1-b2 时表示从第 a1 分钟到第 a2 分钟这段时间内要执行,b 为 b1-b2 时表示从第 b1 到第 b2 小时都要执行,其余类推   

    当 a 为 */n 时表示每 n 分钟个时间间隔执行一次,b 为 */n 表示每 n 小时个时间间隔执行一次,其余类推   

    当 a 为 a1, a2, a3,... 时表示第 a1, a2, a3,... 分钟要执行,b 为 b1, b2, b3,... 时表示第 b1, b2, b3...个小时要执行,其余类推   

使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。

例子:

0 */2 * * * /usr/local/test.sh

该命令行表示每两小时执行一次test.sh脚本

0 9 * * 1  /usr/local/test.sh

该命令表示每周一9点执行该程序,如果将0 改为* 则在9点至十点的每一分钟都会执行该程序,(0-6)表示周几 ,0表示周日,6表示周六。

如果设置好自动执行想查看程序是否执行可查看log日志:

tail -f /var/log/cron 

 

列出crontab文件内容

  为了列出crontab文件,可以用:   $crontab -l

编辑crontab文件

  如果希望添加、删除或编辑crontab文件中的条目,而EDITOR环境变量又设置为vi,那么就可以用vi来编辑crontab文件,相应的命令为:   

$ crontab -e   

可以像使用vi编辑其他任何文件那样修改crontab文件并退出。

删除crontab文件

  为了删除crontab文件,可以用:   $ crontab -r

恢复丢失的crontab文件

  如果不小心误删了crontab文件,假设你在自己的$HOME目录下还有一个备份,那么可以将其拷贝到/var/spool/cron/<username>,其中<username >是用户名。如果由于权限问题无法完成拷贝,可以用:   $ crontab <filename>   其中,<filename>是你在$HOME目录中副本的文件名。

参考来源:http://baike.baidu.com/view/1229061.htm