侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130557 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

手把手教你crontab排障

2023-12-21 星期四 / 0 评论 / 0 点赞 / 83 阅读 / 3925 字

crontab 配置文件 SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# .—————- minute (0 –

crontab 配置文件

SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# .—————- 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 helpUsage: /etc/init.d/crond {start|stop|status|restart|condrestart|try-restart|reload|force-reload}

crond 加入到开机启动

chkconfig crond on

crontab定时任务不执行问题

crontab定时任务不执行问题

排查原因步骤如下:

首先,确认服务器是否开启定时任务计划服务,只有root用户才能对crond服务进行开启和关闭

[root@mimvp-bj script]# service crond statuscrond is stopped[root@mimvp-bj script]# service crond startStarting crond: [ OK ][root@mimvp-bj script]# service crond statuscrond (pid 24577) is running…

请确保crond状态为 is running…

如果crond状态为 crond is stopped ,则定时任务服务不会生效故无法执行,我遇到的crontab不执行就是这个原因

crontab 常见错误的几个问题

编辑 crontab :

crontab -e# m h dom mon dow commandSHELL=/bin/bash30 * * * * cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.sh

Ctrl + O (写入)——》 Enter键(保存文件名)——》 Ctrl + X(退出)

输入查看命令:

crontab -l# m h dom mon dow commandSHELL=/bin/bash30 * * * * cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.sh(推荐用此方式)

如果遇到shell语法错误

Syntax error: "(" unexpected

解决方法:

需指定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(推荐用此方式)

先进入该目录,然后在执行脚本;否则,执行脚本中的其它脚本都需要加绝对路径。

.

免费提供最新Linux技术教程书籍,为开源技术爱好者努力做得更多更好:http://www.linuxprobe.com/

.

广告 广告

评论区