一個shell指令碼

來源:互聯網
上載者:User

  之前學過shell指令碼,但是工作中一直沒有用到,今天由於要搞一個定時任務,為了防止重複啟動php指令碼,就需要寫一個shell,

學到的東西終於用到了,用記住的那些知識點寫了這個指令碼,在此記錄備忘說明一下,希望能夠協助大家回憶起一些相關知識點。

 下面是指令碼內容:

*************************************

#!/bin/bash //聲明要使用哪個shell

下面是備忘檔案 這可是一個好習慣奧

# 運行第三方分享指令碼shell 
# Copyright (c) 2012, Jiehun.com.cn Inc. All Rights Reserved
# @author 77500933@qq.com
# @date 2012-7-18
# @version 1.0

//設定相關變數
filePath='/home/zhanghaozheng/workspace/iHapN/trunk/tools/cooperation/CrondShare.php'
scriptName='CrondShare.php'
logFile='/tmp/crond_share.log'
sitePath='/home/zhanghaozheng/jiehun'

declare -i logFileLines=0 //定義整形變數

#檔案最大行數 超過則覆蓋
declare -i maxFileLine=2000 //定義整形變數

//接收執行sh傳過來的參數
#最大行數允許參數控制
if [ -n "$1" ];then //判斷參數是否為空白
    maxFileLine=$1
fi

//定義函數
function getLogFileLines()
{
    file=$1 //接受參數1
    if [ -f "$file" ];then //判斷檔案是否存在
        echo `cat "$file"|wc -l` //擷取檔案行數
    else
        echo 0
    fi 
}

logFileLines=`getLogFileLines "$logFile"`; //調用函數並接收傳回值賦給logFileLines

#如果指令碼已經啟動就不再啟動
s=`ps aux | grep "$scriptName"`; //在進程中尋找指令碼名稱來確定指令碼進程是否啟動
mark=`echo $s | grep "/usr/bin/php"` //確認是否是php進程
query='cd "$sitePath" && /usr/bin/php tools/start.php CrondShare="$filePath" -d'
if [ "$mark" == "" ]; then  //如果進程不存在則啟動進程
        #防止記錄檔案過大
        if [ "$logFileLines" -gt "$maxFileLine" ]; then  比較兩個參數大小
               eval $query  > "$logFile"  2>&1  //執行字串
        else
               eval $query  >> "$logFile"  2>&1 //執行字串
        fi
else
        echo 'script is runing' >> "$logFile"
fi

exit 0 //正常執行後並退出

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.