欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行脚本的问题

发布时间:2025/3/8 34 豆豆
生活随笔 收集整理的这篇文章主要介绍了 运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行脚本的问题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://dgd2010.blog.51cto.com/1539422/1676490

运维经验分享作为一个专题,目前共7篇文章

  • 《运维经验分享(一)-- Linux Shell之ChatterServer服务控制脚本》

  • 《运维经验分享(二)-- Linux Shell之ChatterServer服务控制脚本二次优化》

  • 《运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行Shell脚本的问题(一)》

  • 《运维经验分享(四)--关于 java进程管理的服务控制脚本编程思路分析》

  • 《运维经验分享(五)-- 改进的java进程管理的服务控制脚本》

  • 《运维经验分享(六)-- 深究crontab不能正确执行Shell脚本的问题(二)》

  • 《运维经验分享(七)-- Linux Shell之ChatterServer服务控制脚本第三次优化》

  • ====================================分割线======================================

    前几天写了一个重启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--

    ====================================分割线======================================

    运维经验分享作为一个专题,目前共7篇文章

  • 《运维经验分享(一)-- Linux Shell之ChatterServer服务控制脚本》

  • 《运维经验分享(二)-- Linux Shell之ChatterServer服务控制脚本二次优化》

  • 《运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行Shell脚本的问题(一)》

  • 《运维经验分享(四)--关于 java进程管理的服务控制脚本编程思路分析》

  • 《运维经验分享(五)-- 改进的java进程管理的服务控制脚本》

  • 《运维经验分享(六)-- 深究crontab不能正确执行Shell脚本的问题(二)》

  • 《运维经验分享(七)-- Linux Shell之ChatterServer服务控制脚本第三次优化》


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

    总结

    以上是生活随笔为你收集整理的运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行脚本的问题的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。