shell指令碼限制日誌檔案大小和行數

2021-08-29 16:07:50 字數 1209 閱讀 2865

背景: 專案server在後端持續執行,日誌檔案不斷變大,需及時進行清空。

解決方案:編輯sh指令碼,指定時間間隔輪詢;將超出限制的日誌檔案,先備份,再清空原日誌檔案內容。

清空日誌檔案內容的方法有:

1.  echo "" > test.log

2. cat /dev/null > test.log

3. cp /dev/null test.log

4.  > test.log

5. truncate -s 0 test.log

1.限制指定日誌檔案大小(1024*10位元組)

#!/bin/sh

function limit_size_log()'`

if [ $filesize -gt $maxsize ]

then

echo "$filesize > $maxsize"

sudo cp $logfile $logfile"`date +%y-%m-%d_%h:%m:%s`".log

sudo cp /dev/null $logfile

else

echo "$filesize < $maxsize"

fi# running

while true

dolimit_size_log /var/log/test.log (1024*10)

sleep 60

done

2. shell 指令碼限制指定日誌檔案行數(10000行)

#!/bin/sh

function limit_count_log()'`;  

if [ $ -gt $ ];then    

#delcount=`expr $ - $`;       

#sudo sed -i "1,$d" $logfile    

sudo cp $logfile $logfile"`date +%y-%m-%d_%h:%m:%s`".log

sudo tar -czpvf $logfile"`date +%y-%m-%d_%h:%m:%s`".log.tar.gz $logfile"`date +%y-%m-%d_%h:%m:%s`".log

sudo rm $logfile"`date +%y-%m-%d_%h:%m:%s`".log

sudo cp /dev/null $logfile

else    

echo  $linecountfi}

指令碼 獲取檔案大小命令 通用shell指令碼

1.通過程序名kill ps ef grep tomcat awk xargs kill 92.通過埠檢視應用程式 例如 查詢6028埠 ps ef grep netstat anpl grep 6028 awk nr 1 grep o 0 9 0 9 3.window強制關閉程序並刪除檔案 tas...

日誌檔案大小限定

include include include include getpid include time.h include stdarg.h include syslog.h define log file name len 64 define log max size 128 define log...

PHP上傳檔案大小限制

歸納了一下上傳檔案大小通常需要設定的地方 1 php.ini配置檔案 設定最大上傳檔案大小 預設為20m php upload max filesize 10m post max size 10m memory limit 20m upload max filesize 10m post max s...