1. 程式人生 > >crontab定時任務啟動logstash失敗分析

crontab定時任務啟動logstash失敗分析

注:crontab -e 指開啟crontab進行定時任務配置

crontab啟動定時任務,在標準輸入中可以執行,定時任務啟動時失敗,此類問題,與crontab使用的環境變數有關。

例如:啟動logstash任務的 start-logstash.sh 指令碼,定時執行。

* 1 * * * sh  start-logstash.sh

標準輸入可執行指令碼,使用crontab啟動定時任務,指令碼中的其它語句能執行,到拉起logstash任務是失敗。

解決方案

1、 crontab -e , 增加定時任務 * * * * * env>/tmp/env.output  , 在/tmp/env.output中檢視crontab使用的環境變數,再把這個定時任務關閉,輸出如下

[logstash]$ tail -f /tmp/env.output
XDG_SESSION_ID=87352
SHELL=/bin/sh
USER=test
PATH=/usr/bin:/bin
PWD=/home/test
LANG=en_US.UTF-8
SHLVL=1
HOME=/home/test
LOGNAME=test
XDG_RUNTIME_DIR=/run/user/1001
_=/usr/bin/env

2、在linux的標準輸入,即螢幕上,輸入:env,檢視輸出

[[email protected] logstash-2.3.4]$ env
XDG_SESSION_ID=85851
HOSTNAME=kzx-taobaos-dev01.localdomain
TERM=vt100
SHELL=/bin/bash
HISTSIZE=30000
SSH_CLIENT=28.104.66.6 60917 22
LUAJIT_LIB=/usr/local/luajit/lib
SSH_TTY=/dev/pts/1
USER=test
LD_LIBRARY_PATH=/usr/local/luajit/lib:/usr/local/luajit/lib:
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37

;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;

31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb

=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg

=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.

svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;

35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35

:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;

36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
SPRING_PROFILES_ACTIVE=dev
MAIL=/var/spool/mail/test
PATH=/usr/local/nginx/sbin:/usr/local/mysql/bin:/usr/java/jdk1.7.0_80/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/test/.local/bin:/home/test/bin
LUAJIT_INC=/usr/local/luajit/include/luajit-2.0
PWD=/appdata/logstash/logstash-2.3.4
JAVA_HOME=/usr/java/jdk1.7.0_80
LANG=en_US.UTF-8
HISTCONTROL=ignoredups
SHLVL=1
HOME=/home/test
LOGNAME=test
CLASSPATH=.:/usr/java/jdk1.7.0_80/lib/dt.jar:/usr/java/jdk1.7.0_80/lib/tools.jar
SSH_CONNECTION=28.104.66.6 60917 22.104.237.55 22
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/1001
HISTTIMEFORMAT=%F %T test 
_=/usr/bin/env
OLDPWD=/home/test

3、 對比步驟1、步驟2,比較關鍵的是PATH,發現有區別,將env下的PATH,整個變數值,拷貝到crontab -e中,定時任務可以啟動

參考:

https://askubuntu.com/questions/23009/why-crontab-scripts-are-not-working

相關推薦

crontab定時任務啟動logstash失敗分析

注:crontab -e 指開啟crontab進行定時任務配置 crontab啟動定時任務,在標準輸入中可以執行,定時任務啟動時失敗,此類問題,與crontab使用的環境變數有關。 例如:啟動logstash任務的 start-logstash.sh 指令碼,定時執行

crontab定時任務

roo 刪除 rontab port .py 絕對路徑 n) for 使用 crontab -e 0 4 * * * /root/scripts/mysqlbackup.sh 0 4 * * * /root/scripts/apacherestart.sh 0 5 * *

CentOS Crontab(定時任務)

status stat ntsysv 設置 backup pda 啟動服務 brush 分鐘 安裝crontab: yum install crontabs 說明: service crond start //啟動服務 service crond stop //關閉服務 s

crontab定時任務中文亂碼問題

技術 tab -s 開頭 tool 測試 解決 jar 設置 crontab啟動的任務沒有獲取系統的環境變量,導致中文亂碼 解決辦法: 在執行的腳步中添加編碼方式或者添加對應的環境變量 如: 1、/usr/bin/java -Dfile.encoding=UTF-8

linux應用之crontab定時任務的設置

表格 軟件 結果 monthly 不執行 shell腳本 service 文件 時間 實現Linux定時任務有:cron、anacron、at等,這裏主要介紹cron服務。 名詞解釋: cron是服務名稱,crond是後臺進程,crontab則是定制好的計劃任務表。

【linux】Crontab 定時任務 使用實例

進行 服務器 image program 權限 舉例 星期六 style log 1 使用putty 登錄linux 服務器 2 輸入以下命令。查看已有的定時任務 crontab -l 3 輸入 以下命令,進入定時任務文件 crontab -e 4 鍵盤

crontab定時任務詳解

文件 install 重新 init 設定 ntpdate 關閉 同步 星期 1、安裝crontab:yum install crontabs 說明:/sbin/service crond start //啟動服務/sbin/service crond stop //關閉

Linux Crontab定時任務

crontab 定時任務 linux定時任務 定時腳本 一、說明很多項目需要設置一定服務器的定時任務Crontab來實現一些腳本功能,所以在這裏整理總結一下。環境:linux + centos6.8二、準備1、查看服務器的crontab是否在服務器狀態service crond status啟

yii2 commands模式以及配置crontab定時任務

console apach 基本 命令 路由 內容 -h sta 切換 一 ,檢測環境:   首先我們切換到項目根目錄,yii2正常安裝的話有一個commands文件夾,裏面有一個示例文件HelloController.php   <?php namespace a

Linux crontab 定時任務命令詳解

-1 data new ubuntu 時間間隔 服務 run back use Linux Crontab 定時任務 命令詳解 [日期:2016-02-13] 來源:Linux社區 在工作中需要數據庫在每天零點自動備份所以需要建立一個定時任務.我選擇在Linux下使用

Linux之crontab定時任務

define fine 第幾天 sudo man 都是 ron 重新 spool ****crontab簡介**** 簡而言之呢,crontab就是一個自定義定時器。 ****crontab配置文件**** 其一:/var/spool/cron/ 該目錄下存放的是每個

Linux上如何使用 Crontab定時任務

sys 電子郵件 tail 一起 post 任務調度 原本 守護進程 硬盤 linux 系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作,因此這個系統服務是默認啟動的。另 外, 由於使用者自己也可以設置計劃任務

crontab 定時任務

and job 間隔 超出 一行 特殊 輸出重定向 tor als 19. crontab 定時任務 通過crontab 命令,我們可以在固定的間隔時間執行指定的系統指令或 shell script腳本。時間間隔的單位可以是分鐘、小時、日、月、周及以上的任意組合。這個命令

Linux - crontab 定時任務

oot pool spa pro top 時間 body second 定時 定時任務 at 5pm + 3 days /bin/ls # 單次定時任務 指定三天後下午5:00執行/bin/ls crontab -e # 編輯周期任務 #分鐘 小時 天 月 星期 命令或

crontab 定時任務設置

AR etc RF delete tar star play 啟動服務 chkconfig 安裝包yum install vixie-cronyum install crontabs 開機啟動chkconfig --level 35 crond on啟動服務service

crontab定時任務(待補充)

stat status ice 數字 命令 查看 nta ron nan crontab -e 編輯計劃任務 service cron status 查看cron狀態 service cron start 啟動cron service cron restart

linux服務器crontab定時任務

分開 由於 輸入 結果 信息 不用 root用戶 linux服務器 rontab ※ cron是一個linux下的定時執行工具,可以在無需人工幹預的情況下運行作業。由於Cron 是Linux的內置服務,但它不自動起來,可以用以下的方法啟動、關閉這個服務:service cr

crontab定時任務 每隔一周的周五執行

mil ron yellow 執行 cron 成功 定時任務 crontab -c 定時任務每隔一周的周五執行 * * * * 05 /bin/bash -c '(($(date +\%s) / 86400 \% 14))' && you

Storm框架:如何實現crontab定時任務

Storm除了能對訊息流進行處理,還能實現crontab定時任務。 只要在bolt中配置TOPOLOGY_TICK_TUPLE_FREQ_SECS項即可實現。 @Override public Map<String, Object> getComponentConfiguration() {

django crontab 定時任務

分 時 日 月 周 命令(最好用絕對路徑)比如: * * * * * rm -fr /mnt/* //每分鐘執行一次對/mnt目錄下檔案的刪除*/2 * * * * rm -fr /mnt/* //每隔兩分鐘執行一次*/2 08-17 1,15 3-5 3 rm -fr /mnt/* //在3-5月的每週三的