首頁 系統教程 Linux crontab定時任務不執行的一些原因,你知道嗎?

crontab定時任務不執行的一些原因,你知道嗎?

Mar 09, 2024 am 09:49 AM
定時任務 crontab 蟒蛇腳本

crontab定時任務不執行的一些緣由總結

更新時間:2019年01月09日09:34:57作者:田野上的希望

這篇文章主要給你們總結介紹了關於crontab定時任務不執行的一些緣由,對每種可能發生的誘因都給出了解決方式,對遇見這個問題的同事們具有一定的參考學習價值,須要的同學下邊隨著小編來一起學習學習吧

序言

最近在工作上遇見了一些問題,crontab定時任務竟然不執行,後來我在網上找的時侯發覺網上主要說了這5個誘因:

1crond服務未啟動

crontab不是Linux核心的功能,而是依賴一個crond服務,這個服務可以啟動其實也可以停止。假如停止了就難以執行任何定時任務了,解決的方式是打開它:

crond
登入後複製

service crond start
登入後複製

假如提示crond指令不存在,可能被刪掉不僅,CentOS下可以透過這個指令重新安裝:

yum -y install crontabs
登入後複製

2權限問題

例如:腳本沒有x執行權限,解決方式:

降低執行權限,或則用bashabc.sh的方式執行

也有可能crontab任務所屬的使用者對某個目錄沒有寫權限,也會失敗

3路徑問題

有的指令在shell中執行正常,然而在crontab執行卻總是失敗。有可能是由於crontab所使用的sh未正確辨識路徑,例如:以root身分登錄shell後執行一個/root/test.sh,只要執行

./test.sh
登入後複製

就可以了。並且在crontab中,都會找不到這個腳本,例如寫完整:

/root/test.sh
登入後複製

4時差問題

linux任务计划_linux 计划任务没执行_linux任务计划不生效

#由於伺服器與客戶端時差問題linux是什麼,所以crontab的時間以伺服器時間為準。

時差這個問題還真是搞人,這個我親身體驗了,現像如下:

(1)我設定了一個定時腳本,用date指令觀察伺服器的時間到了腳本執行的時間點,發覺沒有執行

(2)而我把腳本設定成每分鐘執行一次,就是OK的

見鬼了,伺服器時間是對的啊?難道是要加個哪些時區?於是把腳本的時間減10或則12或則8小時都嘗試了下,發覺都不行。

然而很显著是时间不一致引起的不执行。

最后用如下两行解决了问题:

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
service crond restart
登入後複製

参考这篇文章:

5变量问题

有时侯命令中富含变量,但crontab执行时却没有,也会导致执行失败。

验证后,我的定时脚本test.sh不执行不是上述任何一种缘由,虽然我的脚本就一句话:

#!/bin/bash
echo 123 >> testFile
登入後複製

我希望通过这些方法来测试我设置的定时脚本起作用了,于是我设置了该脚本每分钟执行一次,而且死活在脚本所在目录看不到这个文件linux 计划任务没执行,我自动执行

# sh test.sh
登入後複製

却能看见在脚本所在目录能看见这个文件

我怀疑是crontab根本没有执行,于是我在crontab中直接添加了

*/1 * * * * echo 123 >> /home/denglinjie/testFile
登入後複製

testFile文件生成了,说明crontab是执行了的,那看来是我脚本自身存在问题

最后发觉,原先是testFile这儿必须写完整的路径,我天真的以为testFile会生成在脚本所在的目录,所以改成了如下方式

#!/bin/bash
echo 123 >> /data/denglinjie/testFile
登入後複製

之后就可以了。

linux任务计划_linux 计划任务没执行_linux任务计划不生效

虽然路径是个十分容易出问题的地方,假定在/home/denglinjie目录下有一个脚本文件test1.sh,之后在该目录下还有一个脚本文件test2.sh

在test1.sh中执行了test2.sh,并且用的是相对路径,即相对test1.sh所在的路径。

若果在crontab-e中编辑的时侯,执行的方法是

sh/home/denglinjie/test1.sh,当执行到调用shtest2.sh的时侯,系统会觉得是从crontab文件所在的目录去找test2.sharm linux,而且显然是找不到的,导致执行失败

最开始我想的方式是,我要将我写的待执行的脚本文件以及被调用的其他的脚本和crontab文件放在一个地方,这样就可以拉,并且失败了,可能是由于权限问题,我进不去/var/spool/cron目录。

所以另外一个解决方式就是在执行脚本之前先通过cd/home/denglinjie命令步入到脚本所在目录

------------------------------------------------------------------

近来又发觉一种新的导致crontab不执行的诱因

这儿我要执行的是python脚本,我python脚本的目录为:

/data/denglinjie/work/UpdateModuleSwitch
登入後複製

一开始我的定时任务是这样写的:

linux任务计划_linux任务计划不生效_linux 计划任务没执行

0 * * * * cd /data/denglinjie/work/UpdateModuleSwitch;python update_switch.py
登入後複製

发觉到了时间点竟然没有执行,其中update_switch.py的部份内容如下:

import pymongo
登入後複製

就是我的脚本中引入了自己安装的pymongo,注意,这个pymongo是安装到了指定的python版本上的

不执行缘由:crontab定时任务执行的时侯,使用的python不是我的那种python,使用的这个python没有安装pymongo,致使import失败

解决办法,改成如下方式:

0 * * * * cd /data/denglinjie/work/UpdateModuleSwitch;/data/zhoumi/install_evn/bin/python update_switch.py
登入後複製

指定运行使用的python,这个python早已安装绑定了pymongo,或则用如下方式:

0 * * * * export PATH=/data/zhoumi/install_evn/bin/:$PATH;cd /data/denglinjie/work/UpdateModuleSwitch;python update_switch.py
登入後複製

由于我的这个python是安装在我自己的用户目录下linux 计划任务没执行,所以系统找不到这个python,所以只要将我的python也加入到系统PATH环境变量中就可以了

总结

以上就是这篇文章的全部内容了,希望本文的内容对你们的学习或则工作具有一定的参考学习价值,假如有疑惑你们可以留言交流,感谢你们对本站的支持。

以上是crontab定時任務不執行的一些原因,你知道嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1250
24
crontab定時任務不執行的一些原因,你知道嗎? crontab定時任務不執行的一些原因,你知道嗎? Mar 09, 2024 am 09:49 AM

crontab定時任務不執行的一些緣由總結更新時間:2019年01月09日09:34:57作者:田野上的希望這篇文章主要給你們總結介紹了關於crontab定時任務不執行的一些緣由,對每種可能發生的誘因都給出了解決方式,對遇見這個問題的同事們具有一定的參考學習價值,須要的同學們下邊隨著小編來一起學習學習吧序言近來在工作中遇見了一些問題, crontab定時任務竟然不執行,後來我在網上找的時侯發覺網上主要說了這5個誘因:1crond服務未啟動crontab不是Linux內核的功能,而是依賴一個cron

PyCharm進階教學:利用PyInstaller將程式碼打包為EXE格式 PyCharm進階教學:利用PyInstaller將程式碼打包為EXE格式 Feb 20, 2024 am 09:34 AM

PyCharm是一款功能強大的Python整合開發環境,提供了豐富的功能和工具來幫助開發者提高效率。其中,PyInstaller是一個常用的工具,可以將Python程式碼打包為執行檔(EXE格式),方便在沒有Python環境的機器上運作。在本篇文章中,我們將介紹如何在PyCharm中使用PyInstaller將Python程式碼打包為EXE格式,並提供具體的

探秘Orange3:打開資料探勘與機器學習新世界! 探秘Orange3:打開資料探勘與機器學習新世界! Mar 04, 2024 pm 08:16 PM

Orange3是一個功能強大的開源資料視覺化和機器學習工具,它具備豐富的資料處理、分析和建模功能,為使用者提供了簡單快速的資料探勘和機器學習解決方案。本文將簡單介紹Orange3的基本功能與使用方法,同時結合實際應用場景與Python程式碼案例,幫助讀者更掌握Orange3的使用技巧。 Orange3的基本功能包括資料載入、資料預處理、特徵選擇、模型建立和評估等。使用者可以利用直覺的介面拖放元件,輕鬆建立資料流程。同時,透過Python腳本,也能完成更複雜的資料處理與建模任務。下面我們將通過一個實際

怎麼重複字串_python重複字串教程 怎麼重複字串_python重複字串教程 Apr 02, 2024 pm 03:58 PM

1.先開啟pycharm,進入到pycharm首頁。 2.然後新建python腳本,右鍵--點選new--點選pythonfile。 3.輸入一段字串,代碼:s="-"。 4.接著需要把字串裡面的符號重複20次,代碼:s1=s*20。5、輸入列印輸出代碼,代碼:print(s1)。 6.最後運行腳本,在最底部會看到我們的回傳值:-就重複了20次。

pycharm怎麼讀取excel數據 pycharm怎麼讀取excel數據 Apr 03, 2024 pm 08:42 PM

如何使用PyCharm讀取Excel資料?步驟如下:安裝openpyxl庫;匯入openpyxl庫;載入Excel工作簿;存取特定工作表;存取工作表中的儲存格;遍歷行和列。

CoreFreq:Linux下的CPU頻率監控工具介紹 CoreFreq:Linux下的CPU頻率監控工具介紹 Feb 21, 2024 pm 05:12 PM

CoreFreq:Linux下的CPU頻率監控工具介紹在Linux系統中,對於CPU頻率的監控與管理一直是比較重要的任務。透過監控CPU的頻率,我們可以隨時了解CPU的運作狀態,調整頻率以提高效能或降低功耗。在Linux系統中,有許多工具可以用來監控CPU頻率,其中一個比較優秀的工具是CoreFreq。本文將介紹CoreFreq工具的基本功能以及如何在L

網站子網域查詢工具有哪些 網站子網域查詢工具有哪些 Mar 07, 2024 am 09:49 AM

網站子域名查詢工具有:1、Whois Lookup:可以查詢域名的註冊信息,包括子域名;2、Sublist3r:可以在搜尋引擎和其他工具的幫助下自動掃描域名的子域名;3、DNSdumpster:可以查詢網域的子網域、IP位址及DNS記錄等資訊;4、Fierce:可透過DNS伺服器查詢網域的子網域資訊:5、Nmap;6、Recon-ng;7、Google Hacking。

Flask安裝設定教學:輕鬆建置PythonWeb應用的利器 Flask安裝設定教學:輕鬆建置PythonWeb應用的利器 Feb 20, 2024 pm 11:12 PM

Flask安裝設定教學:輕鬆建置PythonWeb應用的利器,需要具體程式碼範例引言:隨著Python的日益流行,Web開發也成為了Python程式設計師的必備技能之一。而要進行Python的Web開發,我們需要選擇適合的Web框架。在眾多的PythonWeb框架中,Flask是一款簡潔、易上手且靈活的框架,備受開發者的青睞。本文將介紹Flask框架的安裝、

See all articles