本指令碼來自有學習阿銘的博文學習:
工作中,需要用到日誌切割logrotate,按照各自的需要切割、定義保留日誌。
#!/bin/bash
#用途:日誌切割歸檔、按天切割
#日期: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分執行。
工作中還需要為大檔案進行切割,一般工作中是100mb,並進行壓縮。
第二指令碼
#!/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指令碼
用途 日誌切割歸檔 按天切割 日期 2018年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...
python歸檔日誌指令碼
usr bin python3 encoding utf 8 import os from configparser import configparser import zipfile 主要實現功能 1 路徑處理 2 解壓縮重複不壓縮 3 壓縮,其他的可能需要自己改寫 判斷儲存路徑是否已經有相同檔...
Oracle 刪除歸檔日誌指令碼
歸檔日誌記錄著資料庫的操作記錄,是做資料恢復的依據,如果資料庫開啟了歸檔模式,那麼就會產生大量的歸檔日誌,當然如果有rman備份的話,可以在備份之後刪除已經備份過的日誌,如果是沒有採用rman備份的話,就需要自己來刪除這寫歸檔日誌。下面的幾個指令碼就減輕了dba的工作量。linux 平台 0 2 h...