crontab介绍
crontab命令的功能是在一定的时间间隔调度一些命令的执行.当安装完操作系统之后,默认便会启动此任务调度命令.crontab命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作.使用权限 : 所有使用者
cron 服务每分钟不仅要读一次/var/spool/cron目录内的所有文件,还需要读一次/etc/crontab文件,因此我们配置这个文件也能运用cron服务做一些事情.用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务.
1.、/etc/crontab文件说明
在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序;每个用户可以建立自己的crontab调度,这些文件在/var/spool/cron目录下.
2、/var/spool/cron/文件说明
每个系统用户都可以有自己的crontab文件,在/var/spool/cron/目录下.如果你是root用户,那下面有个root文件,建议日常备份,避免误删除导致crontab 文件丢失
二.日志文件位置
默认情况下,crontab中执行的日志写在/var/log下,如:
#ls /var/log/cron*
/var/log/cron /var/log/cron.1 /var/log/cron.2 /var/log/cron.3 /var/log/cron.4
crontab的日志比较简单,当crond执行任务失败时会给用户发一封邮件。
三、使用方法
在"crontab -e"命令格式任何值中星号(*)可以用来代表所有有效的值,例如:月份值中的星号(*)意味着在满足其它制约条件后每月都执行该命令.
整数间的短线(-)指定一个整数范围,例如:1-5意味着整数1,2,3,4,5.
用逗号(,)隔开的一系列值指定一个列表,例如:2,3,5,8,9表明这5个指定的整数.
正斜线(/)可以用来指定间隔频率,在范围后加上/意味着在范围内可以跳过integer,例如:0-59/2可以用来在分钟字段定义每两分钟.
间隔频率值还可以和星号一起使用,例如:*/3的值可以用在月份字段中表示每三个月运行一次任务.
开头为井号(#)的行是注释,不会被处理.
如当前是root身份,要查看/编辑/删除某用户的crontab,只需在相应的命令后加上-u USERNAME(如编辑用户tom的crontab # crontab -e -u tom)即可.
注意 :
当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上 > /dev/null 2>&1 即可,如下
18 1 * * * root tar cf /home/Sunrier/bak/bak.tar /home/Sunrier/log >> /dev/null 2>&1
上面这句将在每天的凌晨1点18分(01:18)运行tar备份命令
相关知识
1)默认地,标准的输入为键盘,但是也可以来自文件或管道(pipe |)。
2)默认地,标准的输出为终端(terminal),但是也可以重定向到文件,管道或后引号(backquotes `)。
3) 默认地,标准的错误输出到终端,但是也可以重定向到文件。
4)标准的输入,输出和错误输出分别表示为STDIN,STDOUT,STDERR,也可以用0,1,2来表示。
5)其实除了以上常用的3中文件描述符,还有3~9也可以作为文件描述符。3~9你可以认为是执行某个地方的文件描述符,常被用来作为临时的中间描述符。
“&1 file"与 "> file 2>&1"区别
1)cat food 2>&1 >file :错误输出到终端,标准输出被重定向到文件file。
2)cat food >file 2>&1 :标准输出被重定向到文件file,然后错误输出也重定向到和标准输出一样,所以也错误输出到文件file。
http://www.cnblogs.com/itech/archive/0001/01/01/1525590.html
http://blog.csdn.net/sunrier/article/details/7848225
原文地址:http://kekuk.blog.51cto.com/326101/1637520