1. 程式人生 > >基於Jenkins的定時任務監控

基於Jenkins的定時任務監控

本文不關注於Jenkins在自動化構建與測試上,將介紹Jenkins在定時任務上面的快速部署能力。Linux在OS層面提供了crontab -e可以安裝定時任務,但是功能單一,對程序的執行情況,日誌檢視,沒有統一的管理控制檯。Jenkins很好地克服了linux cron的缺陷,提供了基於web的控制介面,特別適合於為遠端服務部署呼叫UI介面,方便非cs出身的運維人員對系統進行管理。同時,也解決了遠端伺服器的服務許可權控制的問題,運維人員只需要能夠訪問Jenkins,而無需remote到伺服器排程和檢視任務。

Jenkins的工程應用

簡要介紹一下,Jenkins是一個代表業界良心的非常好用的持續整合CI引擎,主要有兩大應用,一是可以用來構建持續的、自動化的軟體測試專案,另外是用來監控一些定時執行的任務。Jenkins易於安裝和配置,5-10分鐘即可搞定,基本上沒有學習成本,就可以實現從程式碼簽出、軟體構建、自動化測試,以及一系列諸如生成文件、打包軟體、部署構建等任務。

CI系統在探測到程式碼庫的修改時,將自動觸發構建任務,如果構建失敗,那麼CI系統將通過郵件或RSS的方式通知相關人員,然後繼續監視程式碼庫。並且,每次build的結果都被很好的管理,方便的檢視。

圖片來源於網路

在Centos 7上安裝Jenkins

下面介紹如果在centos7上面安裝Jenkins,其他linux版本類似。

  1. 檢查並安裝JDK
    java -version
    yum info java*
    yum install java-1.8.0-openjdk

  2. 目錄結構:
    /usr/lib/jenkins/:jenkins安裝目錄,存放WAR包。
    /etc/sysconfig/jenkins:jenkins配置檔案,“埠”,“JENKINS_HOME”等都可以在這裡配置。
    /var/lib/jenkins/:預設的JENKINS_HOME。
    /var/log/jenkins/jenkins.log:Jenkins日誌檔案。

忘記admin初始密碼,可以在/var/lib/jenkins/secrets/initialAdminPassword檔案中查閱。

遇上無法啟動的系統命令時,需要以root許可權來執行Jenkins,修改配置檔案/etc/sysconfig/jenkins中的JENKINS_USER="root"
  1. 啟動Jenkins
    service jenkins start
    有可能出現錯誤:“Starting Jenkins -bash: /usr/bin/java: No such file or directory”。表示找不到Jenkins找不到java。
    這時就需要“vi /etc/init.d/jenkins”,把java路徑加上。

  2. 登陸Jenkins
    如果沒有特別配置埠,使用http://:8080/登入Jenkins,並進行相關配置(外掛安裝、許可權配置、View/Job建立等等)。

部署定時任務

首先,登陸Jenkins Console,新建任務。

這裡寫圖片描述

進入新建選項頁面,進行定時任務的配置,可以配置原始碼管理、觸發器、構建環境等。這裡我們構建環境項,勾選Add timestamps to the Console Output。在構建項,增加構建步驟,選擇Execute shell,在這裡配置定時任務的命令即可,可以是編譯好的C++可執行檔案,或者是shell指令碼。

溫馨提醒,使用tee可以一邊顯示的標準輸出顯示裝置,一邊輸出到文字log。
$ ./mongodb | tee -a mongo.log

這裡寫圖片描述

設定定時任務

在構建觸發器裡面設定定時,例如,每週1-5,早上6點半執行任務。

這裡寫圖片描述

定時的格式為:【minute hour date month weekday】

在以上各個欄位中,還可以使用以下特殊字元:
星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該命令操作。
逗號(,):可以用逗號隔開的值指定一個列表範圍,例如,“1,2,5,7,8,9”
中槓(-):可以用整數之間的中槓表示一個整數範圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute欄位,表示每十分鐘執行一次。

例如,週二到週四每隔兩小時的第3和第15分鐘執行
命令:3,15 /2 * 2-4

檢視日誌

可以在控制檯檢視命令的輸出log。

這裡寫圖片描述

相關推薦

基於Jenkins定時任務監控

本文不關注於Jenkins在自動化構建與測試上,將介紹Jenkins在定時任務上面的快速部署能力。Linux在OS層面提供了crontab -e可以安裝定時任務,但是功能單一,對程序的執行情況,日誌檢視,沒有統一的管理控制檯。Jenkins很好地克服了linux

Jenkins定時任務

cnblogs build cal http 技術分享 nth 一次 執行 ges 在“構建觸發器”中勾選“Build periodically”選項 此處定時任務的格式遵循cron 的語法 星號(*):代表所有可能的值。例如,month 字段如果是星號,則表示在滿足其

SparkStreaming任務保持執行,定時任務監控程序,保證不掛掉

cron任務:每隔1分鐘啟動指令碼,檢查程序是否執行。crontab -e */1 * * * * /data/spark/test.sh 檢查程序,如果程序掛掉,重新啟動Spark任務: #!/bin/sh is_Engine_exist=$(ps aux | grep LbsStreamin

SparkStreaming任務保持運行,定時任務監控進程,保證不掛掉

spa finished .sh hup exec wid back roi lin cron任務:每隔1分鐘啟動腳本,檢查進程是否運行。crontab -e */1 * * * * /data/spark/test.sh 檢查進程,如果進程掛掉,重新啟動Spark任務:

SparkStreaming任務保持執行,定時任務監控程序

cron任務:每隔1分鐘啟動指令碼,檢查程序是否執行。 */1 * * * * /data1/spark-1.6.0/startEnginea.sh 檢查程序,如果程序掛掉,重新啟動Spark任務: #!/bin/sh is_Engine_exist=$(ps aux

Jenkins 定時任務觸發時間表達式 -Poll SCM

H與*表示同樣的意思 Jenkins 定時任務觸發時間表達式  Jenkins採用了著名的UNIX任務排程工具CRON所使用的配置方式。用5個欄位代表5個不同的時間單位(中間用空格隔開): 分 時 日 月 星期幾 0 2 * * *    表示每天凌晨2點

linux定時任務監控tomcat狀態

最近入了VPS,由於記憶體過小,tomcat程序經常被KILL掉,在百度之後發現可以寫一個指令碼來監控tomcat狀態,當tomcat掛掉時,自動啟動tomcat,並啟用定時任務來執行它。#下面是shell指令碼#!/bin/sh # function:自動監控tomcat程

基於spring+quartz的分布式定時任務框架

path simple ngs 分布 方式 fix set 分布式 .cn http://www.cnblogs.com/aaronfeng/p/5537177.html 問題背景   我公司是一個快速發展的創業公司,目前有200人,主要業務是旅遊和酒店相關的,應用叠

基於agenda的Nodejs定時任務管理框架搭建

color 主動 這樣的 gpo ash hello 圖片 一個 實現 0、背景   在大型項目中,定時任務的應用場景越來越廣。一般來說,按照微服務的思想,我們會將定時任務單獨部署一套服務,核心的業務接口獨立到另一個服務中,從而降低相互之間的耦合程度。在需要使用定時任務時,

[Shell] swoole_timer_tick 與 crontab 實現定時任務監控

ash crontab usr 當前 gif nohup AR 定時器 kill -9 手動完成 "任務" 和 "監控" 主要有下面三步: 1. mission_cron.php(定時自動任務腳本): <?php /** * 自動任務 定時器 (5s 執行)

Jenkins入門之執行定時任務

ima 新建 按鈕 window 創建 comm free HR shell腳本 通過前面我們講解了如何通過Jenkins執行windows command,powershell腳本,此時我們便可以開始完成一些簡單任務了,然而可能看到我們都是通過手動按下Build Now按

Jenkins配置定時任務

如果 有效 bsp 生成 固定 時間 light highlight TP 在任務配置中,滾動到構建觸發器-->勾選"Build periodically"-->在輸入框中配置觸發時間 以上配置,表示在6月13日23點觸發。 如果配置成 00 06 * *

Asp.Net Core 使用Quartz基於界面畫接口管理做定時任務

進程終止 val rom ota exc 條件判斷 enume 支持 out 今天抽出一點點時間來造一個小輪子,是關於定時任務這塊的。 這篇文章主要從一下幾點介紹: 創建數據庫管理表 創建web項目 引入quarzt nuget 包 寫具體配置操作,實現定

spring boot 定時任務基於zookeeper的分布式鎖實現

刪除 etl .org stack pub 具體實現 spec 分享 -i 基於ZooKeeper分布式鎖的流程 在zookeeper指定節點(locks)下創建臨時順序節點node_n 獲取locks下所有子節點children 對子節點按節點自增序號從小到大排序

linux基礎篇(十):基於Redhat7系統中的定時任務

定時任務CRONTAB概念/介紹 crontab命令用於設定週期性被執行的指令。該命令從標準輸入裝置讀取指令,並將其存放於“crontab”檔案中,以供之後讀取和執行。 cron 系統排程程序。 可以使用它在每天的非高峰負荷時間段執行作業,或在一週或一月中的不同時段執行。cron是系統主

基於supervisor秒級Laravel定時任務

背景介紹 公司需要實現X分鐘內每隔Y秒輪訓某個介面,Linux自帶的crontab貌似只精確到分鐘,雖然可以到精確到秒,但是並不滿足需求。 選型 公司專案都是 基於 Laravel 框架,所以這個沒得選。守護程序用的 supervisor,看看這個傢伙能不能滿足我們的需求 程式碼 namespace

基於Quartz.Net類庫的Cron定時任務(例項)

cron常用表示式 標準格式為六位:從左至右依次為“秒 分 時 日 月 周” 七位格式:從左至右依次為“秒 分 時 日 月 周 年” 六位格式年份預設為1970-2099 “周” 從1-7,數字或英文縮寫(1或 SUN,MON,TUE,WED,T

cronmon 定時任務執行狀態監控

       cronmon是一個計劃任務(定時任務)監控系統,可以對迴圈執行的程式和指令碼進行監控告警,當其未按照預期執行時,傳送郵件到對應郵箱進行通知。同時可以將監控任務劃分到不同業務下面,每個業務可以分配不同的通知人,建立業務、通知人和監控任務的多層級關係。&nb

基於quartz的定時任務

1,配置檔案 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http:

linux基礎篇(七):基於Redhat7系統的系統日誌與定時任務

系統日誌 配置檔案: /etc/rsyslog.conf 系統日誌是記錄系統中硬體、軟體和系統問題的資訊,同時還可以監視系統中發生的事件。使用者可以通過它來檢查錯誤發生的原因,或者尋找受到攻擊時攻擊者留下的痕跡。 常用日誌型別與日誌級別 型別 auth