之前學過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 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種...