运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行脚本的问题
運維經驗分享作為一個專題,目前共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不能正确执行脚本的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript Array学习与
- 下一篇: ubuntu18.04安装pycharm