CentOS crontab定时任务不执行的解决
2016-09-13 11:33
295 查看
crontab 配置文件 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # .- minute (0 59) # |.- hour (0 23) # ||.- day of month (1 31) # |||.- month (1 12) OR jan,feb,mar,apr # ||||.- day of week (0 6) (Sunday=0 or 7)OR
crontab 配置文件 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # .—————- minute (0 – 59) # | .————- hour (0 – 23) # | | .———- day of month (1 – 31) # | | | .——- month (1 – 12) OR jan,feb,mar,apr … # | | | | .—- day of week (0 – 6) (Sunday=0 or 7) OR #sun,mon,tue,wed,thu,fri,sat # | | | | | # m h dom mon dow command # * * * * * command will be executed 例如: */5 * * * * root /usr/libexec/atrun minute(m) : 代表一小时内的第几分,范围 0-59。 hour (h) : 代表一天中的第几小时,范围 0-23。 mday (dom) : 代表一个月中的第几天,范围 1-31。 month(mon) : 代表一年中第几个月,范围 1-12。 wday (dow) : 代表星期几,范围 0-7 (0及7都是星期天)。 who : 要使用什么身份执行该指令,当您使用 crontab -e 时,不必加此字段。 command(command):所要执行的指令。 crond 开机启动 crond 启动/关闭脚本 /etc/init.d/crond help Usage: /etc/init.d/crond {start|stop|status|restart|condrestart|try-restart|reload|force-reload} crond 加入到开机启动 chkconfig crond on crontab定时任务不执行问题 排查原因步骤如下: 首先,确认服务器是否开启定时任务计划服务,只有root用户才能对crond服务进行开启和关闭 [root@mimvp-bj script]# service crond status crond is stopped [root@mimvp-bj script]# service crond start Starting crond: [ OK ] [root@mimvp-bj script]# service crond status crond (pid 24577) is running… 请确保crond状态为 is running… 如果crond状态为 crond is stopped ,则定时任务服务不会生效故无法执行,我遇到的crontab不执行就是这个原因 crontab 常见错误的几个问题 编辑 crontab : crontab -e # m h dom mon dow command SHELL=/bin/bash 30 * * * * cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.sh Ctrl + O (写入)——》 Enter键(保存文件名)——》 Ctrl + X(退出) 输入查看命令: crontab -l # m h dom mon dow command SHELL=/bin/bash 30 * * * * cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.sh(推荐用此方式) 如果遇到shell语法错误 <code style="padding: 0px; margin: 0px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif;"><span class="typ" style="padding: 0px; margin: 0px; color: rgb(102, 0, 102); border: 0px; vertical-align: baseline;"><span class="typ" style="padding: 0px; margin: 0px;">Syntax</span></span><span class="pln" style="padding: 0px; margin: 0px; border: 0px; vertical-align: baseline;"><span class="pln" style="padding: 0px; margin: 0px;"> error</span></span><span class="pun" style="padding: 0px; margin: 0px; color: rgb(102, 102, 0); border: 0px; vertical-align: baseline;"><span class="pun" style="padding: 0px; margin: 0px;">:</span></span><span class="pln" style="padding: 0px; margin: 0px; border: 0px; vertical-align: baseline;"><span class="pln" style="padding: 0px; margin: 0px;"> </span></span><span class="str" style="padding: 0px; margin: 0px; color: rgb(0, 136, 0); border: 0px; vertical-align: baseline;"><span class="str" style="padding: 0px; margin: 0px;">"("</span></span><span class="pln" style="padding: 0px; margin: 0px; border: 0px; vertical-align: baseline;"><span class="pln" style="padding: 0px; margin: 0px;"> unexpected </span></span></code> 解决方法: 需指定shell解释器命令:SHELL=/bin/bash(请参见上面 crontab编辑示例SHELL=/bin/bash) 或者参见: LINUX – BASH Syntax Error 如果遇到路径错误 在 /var/spool/crontab/yanggang 中,添加了如下命令,在日志文件 /var/spool/mail/yanggang 中提示找不到 xxx.sh 路径 30 * * * * /home/barry/top800/top10/top10_fruits/top10_all.sh 或 30 * * * * bash /home/barry/top800/top10/top10_fruits/top10_all.sh 这是因为你在crontab中使用了绝对路径执行脚本 top10_all.sh,因此在脚本 top10_all.sh 中引用的其它脚本也都需要使用绝对路径,才能被crontab找到并执行。 那么该如何避免绝对路径呢,推荐采用如下格式: 30 * * * * cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.sh(推荐用此方式) 先进入该目录,然后在执行脚本;否则,执行脚本中的其它脚本都需要加绝对路径 原文:http://blog.mimvp.com/2015/03/centos-crontab-task-does-not-regularly-perform-solution/ 转载请保留固定链接: http://www.linuxeye.com/Linux/2248.html |
相关文章推荐
- CentOS 7通过Firewall开放防火墙端口
- CentOS7 安装svn
- CP复制命令详解
- linux 0号进程和1号init进程
- SELinux策略语言--类型强制(编写TE规则)
- linux系统性能调优第一步——性能分析(vmstat)
- linux下常用文件传输命令(转)
- linux下socket编程实现一个服务器连接多个客户端
- 【原】CentOS7安装Xwiki8.2.1
- [linux]常见问题
- Hadoop伪分布式搭建CentOS
- linux ftp 命令详解和自动上传脚本实现
- CentOS 6.3配置Storm1.0.2
- 初识linux,下载linux
- linux中fork()函数详解
- Centos6.5 64位 安装Hadoop2.7.0, MapReduce日志分析, Hive2.1.0, JDBC连接Hive查询 (4)
- Linux 查看某个目录下文件的大小
- 菜鸟学Linux 第003篇笔记 Linux操作系统和常用命令1
- linux常用命令之date用法
- 转 Linux内存管理原理