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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CentOS crontab定时任务不执行的解决

發布時間:2024/9/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CentOS crontab定时任务不执行的解决 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

crontab 配置文件 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # .- minute (0 59) # |.- hour (0 23) # ||.- day of month (1 31) # |||.- month (1 12) OR jan,feb,mar,apr # ||||.- day of week (0 6) (Sunday=0 or 7)OR

crontab 配置文件

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# .—————- minute (0 – 59)?
# |??.————- hour (0 – 23)
# |??|??.———- day of month (1 – 31)
# |??|??|??.——- month (1 – 12) OR jan,feb,mar,apr …?
# |??|??|??|??.—- day of week (0 – 6) (Sunday=0 or 7)??OR
#sun,mon,tue,wed,thu,fri,sat?
# |??|??|??|??|
#?
m h dom mon dow command
# *??*??*??*??*??command will be executed

例如:

*/5 * * * * root /usr/libexec/atrun

minutem? ? ? : ?代表一小時內的第幾分,范圍 0-59。?
hour ? ?h? ? ? ?: ?代表一天中的第幾小時,范圍 0-23。?
mday ?dom??: ?代表一個月中的第幾天,范圍 1-31。?
monthmon??: ??代表一年中第幾個月,范圍 1-12。?
wday ?dow??: ??代表星期幾,范圍 0-7 (0及7都是星期天)。?
who ? ? ? ? ? ? ? ? ? ?: ??要使用什么身份執行該指令,當您使用 crontab -e 時,不必加此字段。?
commandcommand所要執行的指令。?

?

crond 開機啟動

crond 啟動/關閉腳本

/etc/init.d/crond help
Usage: /etc/init.d/crond {start|stop|status|restart|condrestart|try-restart|reload|force-reload}

crond 加入到開機啟動

chkconfig crond on

?

crontab定時任務不執行問題

排查原因步驟如下:

首先,確認服務器是否開啟定時任務計劃服務,只有root用戶才能對crond服務進行開啟和關閉

[root@mimvp-bj script]#?service crond status
crond is stopped
[root@mimvp-bj script]#?service crond start
Starting crond: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[ ?OK ?]
[root@mimvp-bj script]#?
service crond status
crond (pid ?24577)?is running…

?

請確保crond狀態為?is running…?

如果crond狀態為?crond is stopped?,則定時任務服務不會生效故無法執行,我遇到的crontab不執行就是這個原因

?

crontab 常見錯誤的幾個問題

編輯?crontab :
crontab -e

# m h ?dom mon dow ? command
SHELL=/bin/bash
30 * * * * cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.sh

Ctrl + O (寫入)——》 Enter鍵(保存文件名)——》 Ctrl + X(退出)?

輸入查看命令:

crontab -l

# m h ?dom mon dow ? command
SHELL=/bin/bash
30 * * * * cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.sh
推薦用此方式

?

如果遇到shell語法錯誤

<code style="padding: 0px; margin: 0px; border: 0px; vertical-align: baseline; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif;"><span class="typ" style="padding: 0px; margin: 0px; color: rgb(102, 0, 102); border: 0px; vertical-align: baseline;"><span class="typ" style="padding: 0px; margin: 0px;">Syntax</span></span><span class="pln" style="padding: 0px; margin: 0px; border: 0px; vertical-align: baseline;"><span class="pln" style="padding: 0px; margin: 0px;"> error</span></span><span class="pun" style="padding: 0px; margin: 0px; color: rgb(102, 102, 0); border: 0px; vertical-align: baseline;"><span class="pun" style="padding: 0px; margin: 0px;">:</span></span><span class="pln" style="padding: 0px; margin: 0px; border: 0px; vertical-align: baseline;"><span class="pln" style="padding: 0px; margin: 0px;"> </span></span><span class="str" style="padding: 0px; margin: 0px; color: rgb(0, 136, 0); border: 0px; vertical-align: baseline;"><span class="str" style="padding: 0px; margin: 0px;">"("</span></span><span class="pln" style="padding: 0px; margin: 0px; border: 0px; vertical-align: baseline;"><span class="pln" style="padding: 0px; margin: 0px;"> unexpected </span></span></code>

解決方法:

需指定shell解釋器命令:SHELL=/bin/bash(請參見上面 crontab編輯示例SHELL=/bin/bash

或者參見:?LINUX – BASH Syntax Error

?

如果遇到路徑錯誤

在 /var/spool/crontab/yanggang 中,添加了如下命令,在日志文件 /var/spool/mail/yanggang 中提示找不到 xxx.sh 路徑

30 * * * * ?/home/barry/top800/top10/top10_fruits/top10_all.sh

30 * * * *?bash?/home/barry/top800/top10/top10_fruits/top10_all.sh

這是因為你在crontab中使用了絕對路徑執行腳本?top10_all.sh,因此在腳本?top10_all.sh?中引用的其它腳本也都需要使用絕對路徑,才能被crontab找到并執行。

那么該如何避免絕對路徑呢,推薦采用如下格式:

30 * * * * cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.sh推薦用此方式

先進入該目錄,然后在執行腳本;否則,執行腳本中的其它腳本都需要加絕對路徑
原文:http://blog.mimvp.com/2015/03/centos-crontab-task-does-not-regularly-perform-solution/

轉載請保留固定鏈接:?http://www.linuxeye.com/Linux/2248.html


總結

以上是生活随笔為你收集整理的CentOS crontab定时任务不执行的解决的全部內容,希望文章能夠幫你解決所遇到的問題。

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