Linux中crontab定時(shí)任務(wù)不執(zhí)行的原因
最近在linux中遇到了個(gè)crontab定時(shí)任務(wù)不執(zhí)行的case,在這給大家分享一下,避免踩到我遇到的坑。
先貼腳本吧
為了方便展示,把腳本入?yún)?,都寫死?/p>
#!/usr/bin/env bash # 1輸出文件,到log 例如: bg # 2 目標(biāo)文件目錄 不帶最后的/ 例如:/opt/flume/home/hdp_lbg_ectech/rawdata/xxx/web_vip_bg # 3 執(zhí)行的時(shí)候選擇前幾天的日志 例如:1 LAST_DAY=$(date +"%Y-%m-%d" -d "1 days ago") LAST_HOUR_DAY=$(date +"%Y%m%d" -d "1 days ago") #執(zhí)行jar獲取bg日志 java -jar /opt/script/xxx/vipbg/vip-bg-job-1.0-SNAPSHOT-shaded.jar /opt/script/xxx/vipbg/bg.log #具體到文件名 SRC_FILE=/opt/script/xxx/vipbg/bg.log #指定目標(biāo)目錄,按日期創(chuàng)建目錄 DEST_DIR_NAME=/opt/flume/home/hdp_lbg_ectech/rawdata/xxx/web_vip_bg/$LAST_HOUR_DAY DEST_FILE_NAME=$(basename $SRC_FILE) #FLUME會(huì)忽略隱藏文件,所以可直接拷貝過去 TMP_FILE=$DEST_DIR_NAME/.$DEST_FILE_NAME DEST_FILE=$DEST_DIR_NAME/$DEST_FILE_NAME.$SRC_IP #判斷源文件是否非空,空文件Flume會(huì)直接刪除的,且目標(biāo)文件不存在,避免重復(fù)拷貝數(shù)據(jù) if [ -s "$SRC_FILE" ] && [ ! -f "$DEST_FILE" ];then #使Flume具有刪除該目錄下文件的權(quán)限,不然FLUME收集不上去 mkdir -p $DEST_DIR_NAME && chmod 777 $DEST_DIR_NAME #必須先cp到一個(gè)臨時(shí)文件再mv過去,直接cp過去會(huì)造成數(shù)據(jù)丟失 cp $SRC_FILE $TMP_FILE && mv $TMP_FILE $DEST_FILE fi #刪除tmp中轉(zhuǎn)文件 rm -rf /opt/script/xxx/vipbg/bg.log echo "刪除源文件成功"
有些目錄用了xxx代表
這個(gè)腳本單獨(dú)考出來可以執(zhí)行,放到crontab里面就不執(zhí)行了, 百度了下,大多都說需要使用絕對(duì)路徑,看了下我們的腳本,就是下面這句有問題:
java -jar /opt/script/xxx/vipbg/vip-bg-job-1.0-SNAPSHOT-shaded.jar /opt/script/xxx/vipbg/bg.log
初步判斷是java這需要使用jdk的目錄路徑,做了兩個(gè)實(shí)驗(yàn)測(cè)試了下。
crontab中加上一個(gè) java -jar xxxx.jar的定時(shí)任務(wù)
代碼如下:
10 16 * * * java -jar /opt/script/xxx/vipbg/vip-bg-job-1.0-SNAPSHOT-shaded.jar /opt/script/xxx/vipbg/bg.log
果然,這個(gè)沒有執(zhí)行
crontab中加上一個(gè) jdk目錄/bin/java -jar xxxx.jar的定時(shí)任務(wù)
代碼如下:
20 16 * * * /opt/soft/jdk/jdk1.6.0_45/bin/java -jar /opt/script/xxx/vipbg/vip-bg-job-1.0-SNAPSHOT-shaded.jar /opt/script/xxx/vipbg/bg.log
這次執(zhí)行了,沒有執(zhí)行的原因就是執(zhí)行jar的時(shí)候,需要加上jdk的路徑
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- linux如何利用crontab添加定時(shí)任務(wù)詳解
- Linux Crontab Shell腳本實(shí)現(xiàn)秒級(jí)定時(shí)任務(wù)的方法
- Linux定時(shí)任務(wù)Crontab命令使用詳解與總結(jié)
- linux定時(shí)任務(wù)crontab 實(shí)現(xiàn)每秒執(zhí)行一次的方法
- Linux定時(shí)任務(wù)Crontab的使用方法
- Linux之定時(shí)任務(wù)Crond詳解
- linux中定時(shí)任務(wù)crond命令使用方法
- Linux定時(shí)任務(wù)Crontab詳解(推薦)
- Linux crontab定時(shí)任務(wù)配置方法(詳解)
- linux服務(wù)器ubuntu定時(shí)任務(wù)cron設(shè)置每秒執(zhí)行
相關(guān)文章
Windows 10 太難用如何定制你的 Ubuntu方法詳解
這篇文章主要介紹了Windows 10 太難用,如何定制你的 Ubuntu,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08解決xmapp中Apache端口號(hào)占用問題(Apache不能正常啟動(dòng))
小伙伴們安裝xmapp后發(fā)現(xiàn)Apache不能正常開啟,下面小編給大家?guī)砹藊mapp中Apache端口號(hào)占用問題的解決方法(Apache不能正常啟動(dòng)),需要的朋友參考下吧2017-05-05Linux系統(tǒng)利用cp命令實(shí)現(xiàn)強(qiáng)制覆蓋功能的方法
cp命令是我日常學(xué)習(xí)中經(jīng)常會(huì)遇到的一個(gè)命令,下面這篇文章主要給大家介紹了關(guān)于Linux系統(tǒng)利用cp命令實(shí)現(xiàn)強(qiáng)制覆蓋功能的方法,并且給大家簡(jiǎn)單的介紹了cp命令的基礎(chǔ)知識(shí),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11