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
minute(m) : 代表一小時內的第幾分,範圍 0-59。
hour (h) : 代表一天中的第幾小時,範圍 0-23。
mday (dom) : 代表一個月中的第幾天,範圍 1-31。
month(mon) : 代表一年中第幾個月,範圍 1-12。
wday (dow) : 代表星期幾,範圍 0-7 (0及7都是星期天)。
who : 要使用什麼身份執行該指令,當您使用 crontab -e 時,不必加此欄位。
command(command):所要執行的指令。
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語法錯誤
Syntax error: "(" unexpected
解決方法:
需指定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 7下利用crontab定時執行任務詳解CentOS
- CentOS Linux使用crontab執行定時任務詳解CentOSLinux
- CentOS Crontab(定時任務)CentOS
- centos7.2 利用crontab執行定時計劃任務CentOS
- Linux下的crontab定時執行任務命令詳解Linux
- Crontab 任務不執行問題
- 定時任務crontab 詳解
- linux設定crontab定時執行任務計劃Linux
- crontab定時任務
- Crontab 定時任務命令詳解
- (定時任務)crontab 的用法
- linux下定時執行任務的方法--crontabLinux
- linux的定時任務crontabLinux
- Linux Crontab 定時任務 命令詳解Linux
- Linux crontab 定時任務Linux
- Linux 定時任務(crontab)Linux
- Linux - crontab(定時任務)Linux
- crontab定時任務維護
- Linux中crontab定時任務未執行錯誤總結Linux
- Linux crontab定時執行任務 命令格式與詳細例子Linux
- 一個執行定時任務(Crontab)和任務佇列(Taskqueue)的 Python 小工具佇列Python
- 自動執行任務crontab
- PHP定時執行任務PHP
- linux 定時任務 crontab 詳細解釋!Linux
- 【Django】Django定時任務之-crontabDjango
- linux之 crontab 定時任務Linux
- 在solaris下crontab 定時任務
- Linux Crontab定時任務命令Linux
- Linux Crontab 定時任務[轉]Linux
- Linux下的定時任務crontab設定Linux
- Django定時任務Django-crontab的使用Django
- spring執行定時任務Spring
- Laravel 定時任務以及 crontab 安裝Laravel
- Crontab定時任務排程介紹
- 排查linux 定時任務cron crontabLinux
- linux定時任務的設定 crontab 配置指南Linux
- laravel框架任務排程(定時執行任務)Laravel框架
- PHP定時執行任務的實現PHP