1. 程式人生 > >Linux crontab不執行

Linux crontab不執行

Linux 系統裡面計劃任務,crontab 沒有如期執行這是運維工作中比較常見的一種故障了。

下面結合最近部署自動指令碼不執行問題排查步驟:


1、檢查 crontab 服務是否正常

[[email protected]_db ~]$ ps -aux|grep cron



這裡發現服務是正常執行。如果裡面沒有發現執行記錄,那麼可以啟動下這個服務:service crond start

2、檢視使用者郵件


其實,最直接最有效的就是檢視執行日誌了,結合 crontab 執行記錄,以及 crontab 執行出錯後的系統郵件,一般都能徹底找到失敗的原因了!

當然,要記住在 crontab 中如果遮蔽了錯誤資訊,就不會發郵件了。

[[email protected]_db ~]$ cat /var/spool/mail/dmdba


這裡,我發現了指令碼執行報錯了:

原因還是環境變數問題,找到指令碼export加上缺失的環境變數即可。



3、檢查指令碼的執行許可權


一般來說,在 crontab 中建議使用 sh 或 bash 來執行 shell 指令碼,避免因指令碼檔案的執行許可權丟失導致任務失敗。

當然,最直接檢查就是人工直接複製 crontab -l 裡面的命令列測試結果。

[[email protected]_db script]$ crontab -l
0 2 * * * sh /home/dmdba/dmbackup/script/backup.sh


4、檢查指令碼需要用到的變數


和上文一樣,通常來說從 crontab 裡面執行的指令碼和人工執行的環境變數是不一樣的,所以對於一些系統變數,建議寫絕對路徑,或使用 witch 動態獲取,

比如  sudo_bin=$(which sudo) 就能拿到 sudo 在當前系統的絕對路徑了。





相關推薦

Linux crontab執行

Linux 系統裡面計劃任務,crontab 沒有如期執行這是運維工作中比較常見的一種故障了。下面結合最近部署自動指令碼不執行問題排查步驟:1、檢查 crontab 服務是否正常[[email protected]_db ~]$ ps -aux|grep cron這

解決Linuxcrontab執行ntpdate問題

把同步時間定時任務中,使用 crontab -e 開啟配置檔案,加入 * * * * * ntpdate cn.ntp.org.cn 每分鐘同步時間,上面看上去是沒什麼問題,命令列經常彈出You ha

linux crontab定時執行任務

apache。 它的 相同 24小時 介紹 window 進度 打開 屏幕截圖 在使用一個計算機系統時,常常需要在日程表上執行某些重復的工作。你可以通過使用Linux Cron工具和Crontab命令更簡便地執行每一次所需的命令,而不是手動去執行。想知道如何使用這些命令在L

linux Crontab定時執行JAR

在linux下面執行java程式,一般情況下我們先打包成jar檔案,然後放在linux下,用指令碼去執行它。 time.sh: #!/bin/bash   export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64 exp

crontab 執行php指令碼問題記錄

crontab不執行指令碼檔案之前遇到個很多種情況: 1 指令碼沒有執行許可權 2 指令碼中用了相對路徑 執行路徑不對  3 指令碼本身問題 比如使用了$_SERVER等的變數   但是這次遇到的不一樣,/var/log/cron日誌中顯示了cron定時執行了指令碼,但是沒有生效

crontab 執行php腳本問題記錄

問題 日誌 roo path 情況 $_server 相對路徑 顯示 usr crontab不執行腳本文件之前遇到個很多種情況: 1 腳本沒有執行權限 2 腳本中用了相對路徑 執行路徑不對 3 腳本本身問題 比如使用了$_SERVER等的變量 但是這次遇到的不一樣,/

普通使用者crontab執行原因

今天我發現我寫的cron竟然沒執行,然後在cron log裡發現下面的資訊 CRON (xxx): failed to open PAM security session,cannot set security context 出現類似現象一般原因有二 1、xxx的使用者資

利用 Linux crontab 定時執行 PHP

啟動linux定時服務:service crond start 檢視當前定時任務: crontab -l 新增新定時任務:crontab -e 先是測試crontab對於普通任務能否執行: */1 * * * * date >> /opt/web/

laravel crontab執行的問題

最近在寫laravel的時候遇到一個定時器的問題手動的執行 php /usr/share/nginx/html/mylaravel/artisan schedul:run 可以生效但是寫在定時器中卻不執行  * * * * * php /usr/share/nginx/htm

Linux crond 執行原因分析

為了定時監控Linux系統CPU、記憶體、負載的使用情況,寫了Linux Shell指令碼,當達到一定值得時候,定時傳送郵件通知。但是,讓crond來週期性執行指令碼傳送郵件通知時,遇到了問題,在crontab -e裡面加入了執行指令碼之後,發現指令碼並沒有執行。可是,通過手

linux ssh 到遠端伺服器執行命令和crontab執行命令提示命令找到的問題

使用ssh ip "hadoop" 命令時,提示找不到hadoop命令。 因為hadoop是在/etc/profile配置的,ssh到一臺伺服器上時,會執行使用者環境。 而ssh到一臺伺服器上,帶著命

linux系統使用者下的crontab任務執行問題處理

需求:需要每一天對資料庫做一個備份,oracle資料庫,linux系統。 備份命令採用最簡單的匯出\匯入。 首先確認伺服器是否開啟任務計劃服務,只有root使用者才能對crond服務進行開啟和關閉 [[email protected] ~]# servic

linuxcrontab 任務執行的可能原因總結

昨天遇到了crontab不能執行的問題,現總結如下:現象:    a.shell指令碼已經有執行許可權(chmod 777 xxx.sh)    b.在#!/bin/sh的下行已經加上了source ~/.bash_profile    c.已經確認 crond 服務正常執

Linux服務器執行yum update成功

技術分享 fresh yum.conf col comm enabled plugin bug /var/ Linux服務器執行yum update報錯提示: Loaded plugins: fastestmirror, refresh-packagekit, secur

linux crontab & 每隔10秒執行一次

pac adding line 查找 oca mman 使用 指定 制表符 linux下定時執行任務的方法 在LINUX中你應該先輸入crontab -e,然後就會有個vi編輯界面,再輸入0 3 * * 1 /clearigame2內容到裏面 :wq 保存退出。 在L

crontab腳本執行

crontab linux1、環境變量問題解決辦法:腳本首行填寫#!/bin/sh,編輯crontab任務,在執行腳本腳本前邊加sh2、crontab僵死crontab任務壓力過大致使crontab服務僵死,需要重啟crontab服務並優化腳本解決辦法:/etc/init.d/cron restart本文出自

Linux crontab定時器設置(定期執行java程序)(轉)

在那 安裝 一次 tin 文件名 ani data 說明 ive Crontab 語法 Crontab語法一個crontab文件用五個段來定義:天,日期和時間,和一個要定期執行的命令代碼。 * * * * * command to be execut

解決linux下/etc/rc.local開機器執行的原因

啟動程序 排除 程序 配置 blog 解決 linux pos 執行 前不久因項目需要寫了開機啟動其他程序的shell腳本,因工作忙,調試完給了技術支持人員,也沒去註意過。 到後來,有幾臺服務器突然被重啟了,這時候領導問,怎麽開機啟動的腳本沒起作用,還被批了一頓,哎,做事虎

Linux crontab 實現每秒執行

nta arc itl 延時方法 shell 簡單 sel java.net 一分鐘 Linux crontab 實現每秒執行  linux crontab 命令,最小的執行時間是一分鐘。如需要在小於一分鐘內重復執行,可以有兩個方法實現。   1.使用延時來實現每N秒執行

Linuxcrontab無法執行java程序的問題

java程序 問題 級別 路徑 jdk環境變量 系統 ron jdk環境變量配置 kill Linux中crontab無法執行java程序的問題 jdk環境變量配置問題;可以用全路徑來解決; 竟然是kill -9之後,後面的腳本都不運行,這個還沒有找到原因啊; 即便是系統級