天天看點

運維經驗分享(三)-- 解決Ubuntu下crontab不能正确執行腳本的問題

運維經驗分享作為一個專題,目前共7篇文章

====================================分割線======================================

前幾天寫了一個重新開機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。

運維經驗分享(三)-- 解決Ubuntu下crontab不能正确執行腳本的問題

但為了不影響整個crontab,我把自定義的crontab指定為bash去執行,如下圖所示:

運維經驗分享(三)-- 解決Ubuntu下crontab不能正确執行腳本的問題

這樣在chatter.sh腳本中與dash不相容的行就能正确執行了。

--end--