运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行脚本的问题
運(yùn)維經(jīng)驗(yàn)分享作為一個(gè)專題,目前共7篇文章
《運(yùn)維經(jīng)驗(yàn)分享(一)-- Linux Shell之ChatterServer服務(wù)控制腳本》
《運(yùn)維經(jīng)驗(yàn)分享(二)-- Linux Shell之ChatterServer服務(wù)控制腳本二次優(yōu)化》
《運(yùn)維經(jīng)驗(yàn)分享(三)-- 解決Ubuntu下crontab不能正確執(zhí)行Shell腳本的問題(一)》
《運(yùn)維經(jīng)驗(yàn)分享(四)--關(guān)于 java進(jìn)程管理的服務(wù)控制腳本編程思路分析》
《運(yùn)維經(jīng)驗(yàn)分享(五)-- 改進(jìn)的java進(jìn)程管理的服務(wù)控制腳本》
《運(yùn)維經(jīng)驗(yàn)分享(六)-- 深究crontab不能正確執(zhí)行Shell腳本的問題(二)》
《運(yùn)維經(jīng)驗(yàn)分享(七)-- Linux Shell之ChatterServer服務(wù)控制腳本第三次優(yōu)化》
====================================分割線======================================
前幾天寫了一個(gè)重啟ChatterServer的腳本,并設(shè)置了一個(gè)計(jì)劃任務(wù),每天兩點(diǎn)執(zhí)行,通過檢查ChatterServer進(jìn)程的pid發(fā)現(xiàn),隔天的pid還是相同的,也就是說計(jì)劃任務(wù)并沒有成功執(zhí)行。
最初的分析以為crontab語法有問題,但經(jīng)過再三檢查后沒有發(fā)現(xiàn)問題,在CentOS上測(cè)試沒有問題,因此查看了一下還是Ubuntu與CentOS不一樣的緣故,原因還是出在對(duì)Ubuntu不熟上,默認(rèn)的crontab計(jì)劃任務(wù)的shell是/bin/sh,而/bin/sh是一個(gè)鏈接文件,實(shí)質(zhì)指向的是/bin/dash(如下圖所示),由于/bin/dash在某些語法上與/bin/bash有很大的不同,如果是用/bin/dash執(zhí)行一些雖然以#!/bin/bash開頭的腳本也難免出錯(cuò),因此需要重新指定這個(gè)sh。
但為了不影響整個(gè)crontab,我把自定義的crontab指定為bash去執(zhí)行,如下圖所示:
這樣在chatter.sh腳本中與dash不兼容的行就能正確執(zhí)行了。
--end--
====================================分割線======================================
運(yùn)維經(jīng)驗(yàn)分享作為一個(gè)專題,目前共7篇文章
《運(yùn)維經(jīng)驗(yàn)分享(一)-- Linux Shell之ChatterServer服務(wù)控制腳本》
《運(yùn)維經(jīng)驗(yàn)分享(二)-- Linux Shell之ChatterServer服務(wù)控制腳本二次優(yōu)化》
《運(yùn)維經(jīng)驗(yàn)分享(三)-- 解決Ubuntu下crontab不能正確執(zhí)行Shell腳本的問題(一)》
《運(yùn)維經(jīng)驗(yàn)分享(四)--關(guān)于 java進(jìn)程管理的服務(wù)控制腳本編程思路分析》
《運(yùn)維經(jīng)驗(yàn)分享(五)-- 改進(jìn)的java進(jìn)程管理的服務(wù)控制腳本》
《運(yùn)維經(jīng)驗(yàn)分享(六)-- 深究crontab不能正確執(zhí)行Shell腳本的問題(二)》
《運(yùn)維經(jīng)驗(yàn)分享(七)-- Linux Shell之ChatterServer服務(wù)控制腳本第三次優(yōu)化》
本文出自 “通信,我的最愛” 博客,請(qǐng)務(wù)必保留此出處http://dgd2010.blog.51cto.com/1539422/1676490
總結(jié)
以上是生活随笔為你收集整理的运维经验分享(三)-- 解决Ubuntu下crontab不能正确执行脚本的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript Array学习与
- 下一篇: UbuntuKylin安装SUN JDK