日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux Crontab 设置的定时任务没有启动的排查

發布時間:2024/9/20 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux Crontab 设置的定时任务没有启动的排查 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、先手動執行定時任務以此來判斷腳本是否有問題。

2、確認服務器是否開啟定時任務計劃服務

命令:service crond statusservice crond start
  • 1
  • 2

3、檢查定時任務配置的語法

crontab -lSHELL=/bin/bash0 15 * * 1-5 cd /root/ye/project/StatShareDataProject/&& ./start.sh
  • 1
  • 2
  • 3
可直接復制cd /root/ye/project/StatShareDataProject/&& ./start.sh來運行,若可以正常運行再另做判斷。
  • 1
  • 2

4、?查看crontab執行記錄

如果出現了crontab定時任務不執行的情況,首先需要定位問題,那么就需要通過日志來確定問題所在。

crontab的日志位置一般位于/var/log/cron,利用下面的語句即可查看日志。

tail -f /var/log/cron
  • 1

上面的/var/log/cron只會記錄是否執行了某些計劃的腳本,但是具體執行是否正確以及腳本執行過程中的一些信息linux會通過郵件形式發送到給該用戶。?
對于root用戶該郵件記錄位于/var/spool/mail/root,通過以下命令可以查看最近的crontab執行情況。

tail -f /var/spool/mail/root
  • 1

mail郵件一般只會記錄腳本執行成功與否,如果執行失敗,無法給出進一步的錯誤信息,這時需要我們將語句執行的錯誤信息重定向至文件中,這樣可以很方便的查看錯誤信息。下面就給出了一個簡單的例子

0 6 * * * /root/script/ss.sh >> /root/for_crontab/mylog.log 2>&1
  • 1

上述語句表示把錯誤輸出和標準輸出都輸出到mylog.log中,在執行的時候會將命令執行的相關信息記錄至mylog.log文件中。

  • 注:通過定時任務執行的程序需要手動將其 stop 掉(就算該程序手動執行只需要幾秒就可執行完了,但是通過crontab設置成定時任務執行時,其執行后將一直占有著該線程,并且不會因為程序跑完了就自動停止該線程),要不然在下次再執行時會發現原先的程序還在執行中。

  • 增加了crontab任務后,在/var/spool/cron目錄下會有一個當前登錄賬號命名的文件。比如我的登錄賬號是root。則會存在一個root文件。該文件的內容就是剛添加的crontab任務。

常見錯誤一:?
定時任務配置好后,正常執行,但是執行過程中出現如下錯誤

nohup: failed to run command ‘java’: No such file or directory
  • 1

解決方法:?
往執行腳本中添加如下命令便可,這是因為cron并沒有加載java相關的配置文件,所以我們需要在腳本中手動將其加入。

source /etc/profile 添加后腳本整體如下 #!/bin/bash source /etc/profile PROJECTNAME=UseAndUnuseData pid=`ps -ef |grep $PROJECTNAME |grep -v "grep" |awk '{print $2}'` if [ $pid ]; thenecho "$PROJECTNAME is running and pid=$pid"kill -9 $pidecho "Start success to start $PROJECTNAME ...."nohup java -jar UseAndUnuseData.jar >> catalina.out 2>&1 & elseecho "Start success to start $PROJECTNAME ...."nohup java -jar UseAndUnuseData.jar >> catalina.out 2>&1 & fi
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

遇到的一個坑:?
定時任務如下:?
crontab -e

#周一到周五每天下午三點開始運行程序,統計基本數據 01 15 * * 1-5 cd /root/yechunbo/project/StaticBasicData/&& ./start.sh
  • 1
  • 2

手動執行正常,但是定時任務執行出錯,具體錯誤如下所示:

/bin/sh: root: command not found
  • 1

按照網上各種方法試過之后發現還是報一樣的錯。?
因此筆者將/var/spool/cron/root 文件刪除掉,重新設定時任務,竟然神奇地可以正常執行了。原理還沒想通,不過至少可以正常執行了….

版權聲明:本文大部分為博主原創,轉載請注明出處。 https://blog.csdn.net/u013850277/article/details/54344805

來源:https://blog.csdn.net/u013850277/article/details/54344805

總結

以上是生活随笔為你收集整理的Linux Crontab 设置的定时任务没有启动的排查的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。