Jeson老師寫的nginx切割指令碼

2022-05-27 06:27:11 字數 1744 閱讀 8212

#jeson

#email:[email protected]

#變數定義:access、error日誌檔案列表

nginx_log=(imoocc_com_access iaskjob_com error)

nginx_access_path=/opt/logs/nginx/access

nginx_error_path=/opt/logs/nginx/error

#日期變數

ydate=`date -d yesterday +%y%m%d`

adate=`date -d "

20 days ago

" +%y%m%d`

#pid檔案和nginx.conf中定義一致

#日誌的量,超過此值,觸發切割

max_size=1000000

file_size="

null

"#函式get_size,獲取日誌檔案的大小。

#rotate funcation

function

get_size()awk''

`

if [[ $file_size =~ [1-9]* ]];then

echo

$file_size

else

echo

"error:cant get file $ size!

"exit

fi}#函式log_rotate,完成日誌輪轉切割。

# rename log

function

log_rotate() ];then

mkdir

$

fimv -f $ $/$.log

touch

$

rm $/$.log

elif [ $size -gt $max_size ];then

echo

"#######11111111

"if [ ! -d $ ];then

mkdir

$

fimv -f $ $/$.log

touch

$

rm $/$.log

fi}#主功能段,作用遍歷日誌,輸入引數為size,則按照size進行切割,如果為day,則按照日常輪轉進行。

forlognamein$

doif [ $ == '

error

' ];then

log_file=$/$.log

back_dir=$/$

else

log_file=$/$.log

back_dir=$/$

fiif [ $1 == "

size

" ];then

file_size=`get_size $`

log_rotate $ $ $

echo

$file_size

elif [ $1 == "

day" ];then

log_rotate $ $ $

else

echo

"param : $logname error!"fi

done

#給nginx傳送乙個訊號量,讓nginx過載,重新重新生成日誌

## restart nginx

[ ! -f $nginxpid ] kill -usr1 $(cat $nginxpid)

wei 老師寫的鍊錶(參考)

include include include struct node typedef struct node linklist define len sizeof struct node define error 1 define ok 0 初始化順序線性表 linklist initlist v...

模擬cas,跟著老師的Demo寫的,簡單了解了,

public class casdemo class cas public void setvalue int value public synchronized int compareandswap int exceptvalue,int upsetvalue return value publi...

嘟嘟老師寫部落格用的編譯器簡介

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...