乙個shell指令碼

2022-05-22 14:45:09 字數 1312 閱讀 5137

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

下面是指令碼內容:

#!/bin/bash //宣告要使用哪個shell

下面是備註檔案 這可是乙個好習慣奧

# @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()

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 //執行字串

fielse

echo 'script is runing' >> "$logfile"

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

shell指令碼練習 每天乙個shell指令碼 7

我的部落格都是依照自己淺薄的現有知識去寫的,好多時候寫完了部落格,去查詢答案,會發現很多更剪短更效率更好的答案。寫部落格是激勵我自己能堅持下去,讓我的頭腦不去懈怠,望共勉。題目 write a script five dirs.sh that does these tasks make a dire...

Shell指令碼學習5 第乙個Shell指令碼

開啟文字編輯器,新建乙個檔案,擴充套件名為sh sh代表shell 副檔名並不影響指令碼執行,見名知意就好,如果你用php寫shell 指令碼,副檔名就用php好了。輸入一些 bin bash echo hello world 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種...

第乙個Shell指令碼

開啟文字編輯器,新建乙個檔案,擴充套件名為sh sh代表shell 副檔名並不影響指令碼執行,見名知意就好,如果你用php寫shell 指令碼,副檔名就用php好了。輸入一些 bin bash echo hello world 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種...