crontab定时任务配置记录,crontab任务一、前言今天简单记录下crontab的配置
二、crontab目录 /etc/crontab 文件 这是系统运行的调度任务 /var/spool/cron 目录 用户自定义的crontab任务放在此目录下 ls –lrt /etc/cron* /etc/cron.deny 表示不能使用crontab命令的用户 /etc/cron.allow 表示能使用crontab命令的用户 默认情况下,cron.allow不存在,如果都存在,cron.allow优先
三、crontab命令语法具体可 crontab --help 或者 man crontab|morecrontab –l //查看当前用户的定时任务 crontab –e //编辑当前用户的定时任务crontab –r //删除当前用户的定时任务
四、crontab任务格式59 23 * * * /home/xxx/crontab/test.sh > /dev/null 2>&1 &前6列暂且用c1 - c6表示c1 分 (1-59)c2 时 (1-23,0表示子夜)c3 日 (1-31)c4 月 (1-12)c5 星期 (0-6,0表示星期天,1表示星期一,以此类推)c6 要运行的命令前5列表示 命令执行的频率,最小频率是每分钟一次,其中cn的值可用四种形式表示:* , */n , t1-t2 , a,b,c 当c1 为 * 时,表示每分钟都要执行命令当c1 为 */n时,表示每隔n分钟执行一次命令当c1 为 t1-t2时,表示从 t1分钟 到 t2分钟时间内都要执行命令当c1 为 a,b,c 时,表示第 a,b,c 分钟都要执行命令示例调用:12 12 * * * /home/xxx/crontab/test.sh >/dev/null 2>&1 表示每天的12点12分 执行脚本*/2 * * * * /home/xxx/crontab/test.sh >/dev/null 2>&1表示每隔2分钟 执行一次脚本0 23 * * 1-5 /home/xxx/crontab/test.sh >/dev/null 2>&1表示每周一到周五的23点 执行一次脚本0 19 * * 0 mail -s xxx xxx@mail.com &1 的解释0表示键盘输入1表示标准输出2表示错误输出1.创建test.sh,内容如下#! /bin/bashecho time is `date`2.添加定时任务* * * * * /home/xxx/crontab/test.sh > /home/xxx/crontab/test.log & 默认是1,和下面方法一致* * * * * /home/xxx/crontab/test.sh 1> /home/xxx/crontab/test.log &* * * * * /home/xxx/crontab/test.sh > /home/xxx/crontab/test.log 2>&1 &3.说明1代表,标准输出,所以上述命令会将脚本的输出结果,输出到后面指定的log文件中,而不是打印到屏幕;2代表,错误输出,&1表示文件的描述,这里表示脚本执行的错误信息重定向到1(标准输出)而1已经重定向到指定的log文件中,所以信息都会输出到log文件不能写成 2>1 ,缺少&,会认为是错误信息输出到名称为 1 文件中
六、注意事项1.shell中需设置必要的环境变量 crontab的环境变量默认不包含系统当前用户的环境,所以需添加必要的环境变量2.尽量采用完整路径方法,避免使用相对路径3.避免脚本的重复执行 if(exec(ps -ef |grep 'php'|grep 'updatescript'|grep -v 'grep' |wc -l ) > 2){ die(); } grep -v 'grep' 表示结果去过滤掉 grep 那一行 wc -l 表示统计满足条件的行数 这样就可以判断 php进程中,名为 updatescript 的脚本 是否已经执行了
七、参考资料http://www.cnblogs.com/kerrycode/p/3238346.htmlhttp://www.cnblogs.com/hazir/p/sudo_command.html
http://www.bkjia.com/phpjc/1048757.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/1048757.htmltecharticlecrontab定时任务配置记录,crontab任务 一、前言 今天简单记录下crontab的配置 二、crontab目录 /etc/crontab 文件 这是系统运行的调度任务 /var/sp...