码迷,mamicode.com
首页 > 系统相关 > 详细

解决Ubuntu下crontab不能正确执行脚本的问题

时间:2015-07-21 15:17:21      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:crontab默认shell   ubuntu默认shell   cron默认shell   dash   bash   

前几天写了一个重启ChatterServer的脚本,并设置了一个计划任务,每天两点执行,通过检查ChatterServer进程的pid发现,隔天的pid还是相同的,也就是说计划任务并没有成功执行。

最初的分析以为crontab语法有问题,但经过再三检查后没有发现问题,在CentOS上测试没有问题,因此查看了一下还是Ubuntu与CentOS不一样的缘故,原因还是出在对Ubuntu不熟上,默认的crontab计划任务的shell是/bin/sh,而/bin/sh是一个链接文件,实质指向的是/bin/dash(如下图所示),由于/bin/dash在某些语法上与/bin/bash有很大的不同,如果是用/bin/dash执行一些虽然以#!/bin/bash开头的脚本也难免出错,因此需要重新指定这个sh。

技术分享

但为了不影响整个crontab,我把自定义的crontab指定为bash去执行,如下图所示:

技术分享

这样在chatter.sh脚本中与dash不兼容的行就能正确执行了。

--end--

本文出自 “通信,我的最爱” 博客,请务必保留此出处http://dgd2010.blog.51cto.com/1539422/1676490

解决Ubuntu下crontab不能正确执行脚本的问题

标签:crontab默认shell   ubuntu默认shell   cron默认shell   dash   bash   

原文地址:http://dgd2010.blog.51cto.com/1539422/1676490

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!