#用途:日誌切割歸檔、按天切割工作中還需要為大檔案進行切割,一般工作中是100mb,並進行壓縮。#日期:2023年12月15日
#版本:v0.1
logdir=/data/logs/
#定義函式如果乙個檔案存在則刪除
function e_df()
cd $logdir
#從7到2,依次遍歷迴圈
for i in `seq 7 -1 2`
do #$i2比si小1
i2=$[si-1]
#首先判斷1.log.7是否存在,若存在則刪除
e_df 1.log.$i
#當1.log.6存在,則把1.log.6改名為1.log.7,依次類推
if [ -f 1.log.$i2 ]
then
mv 1.log.$i2 1.log.$i
fidone
#由於1.log 後面無字尾,所以不能走上面的for迴圈,只能另外拿出來處理
e_df 1.log.1
mv 1.log 1.log.1
#每日0點0分執行。
第二指令碼
#!/bin/bash#用途:日誌切割歸檔、並壓縮
#日期:2023年12月15日
#版本:v0.1
logdir=/data/logs/
#技術1.log大小
size=`du -sk $logdir/1.log | awk ''
#如果1.log小於l00mb,則退出指令碼
if [ $size -lt 10240 ]
then
exit 0
fi #定義函式,如果乙個檔案存在,則刪除
function e_df()
cd $logdir
#如果1.log.1存在,則先把它壓縮為1 log.1.gz,這樣下面的for迴圈才不會錯
if [ -f 1.log.1 ]
then
gzip 1.log.1
fi #由於1.log.1已經被壓縮為1.log.gz,所以可以直接將1.log改名為1.log.1
mv 1.log 1.log.1
#從7到2,倒序迴圈
for i in `seq 7 -1 2 `
do #$i2比si小1
i2=$[si-1]
#首先判斷1 log.7.gz是否存在,若存在刪除
e_df 1.iog. $i.gz
#當1.log.6.gz存在,則把1.log.6.gz改名為1.log.7.gz,以此類推
if [ -f 1.iog. $i2. gz ]
then
mv 1.iog. $i2.gz 1.iog.$i.gz
fi done
##說明:由於我們需要按照日誌大小切割,所以這個指令碼寫完後,需要每分鐘執行一次,建議新增到公司的監控系統中。
歸檔老日誌的shell指令碼
本指令碼來自有學習阿銘的博文學習 工作中,需要用到日誌切割logrotate,按照各自的需要切割 定義保留日誌。bin bash 用途 日誌切割歸檔 按天切割 日期 2018年12月15日 版本 v0.1 logdir data logs 定義函式如果乙個檔案存在則刪除 function e df ...
python歸檔日誌指令碼
usr bin python3 encoding utf 8 import os from configparser import configparser import zipfile 主要實現功能 1 路徑處理 2 解壓縮重複不壓縮 3 壓縮,其他的可能需要自己改寫 判斷儲存路徑是否已經有相同檔...
mysql怎麼刪除歸檔日誌 歸檔日誌刪除需要注意項
delete archivelog all將會毫無保留的刪除所有的歸檔日誌 在控制檔案中有相應記錄的 1 delete archivelog all將會毫無保留的刪除所有的歸檔日誌 在控制檔案中有相應記錄的 2 歸檔日誌的資訊被記錄在控制檔案之中,其生存期和可保留的總數也受到控制檔案建立初以及引數c...