linux 日志切割 自带,[日志分割回滚] 使用linux自带的logrotate对nginx日志进行分割...
logrotate日志分割配置:
# cat /etc/logrotate.d/nginx
/data/nginx_logs/*.access_log ? ? ? ? #nginx日志所在目錄
{
nocompress ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #不對(duì)日志文件進(jìn)行轉(zhuǎn)儲(chǔ)壓縮
daily ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #指定轉(zhuǎn)儲(chǔ)周期為每天
copytruncate ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #用于還在打開(kāi)中的日志文件,把當(dāng)前日志備份并截?cái)?/p>
create ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#建立新的日志文件
ifempty ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#即使是空文件也轉(zhuǎn)儲(chǔ)
olddir /data/nginx_logs/days ? ? ? ? ? ?#轉(zhuǎn)儲(chǔ)后的日志文件放入指定的目錄,必須和當(dāng)前日志文件在同一個(gè)文件系統(tǒng)
rotate 0 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #指定日志文件刪除之前轉(zhuǎn)儲(chǔ)的次數(shù),0 指沒(méi)有備份,5 指保留5個(gè)備份
}
#####################################################################
日志分割腳本:
#!/bin/bash
#創(chuàng)建轉(zhuǎn)儲(chǔ)日志壓縮存放目錄
mkdir -p /data/nginx_logs/days
#手工對(duì)nginx日志進(jìn)行切割轉(zhuǎn)換
/usr/sbin/logrotate -vf /etc/logrotate.d/nginx
#當(dāng)前時(shí)間
time=$(date -d “yesterday” +”%Y-%m-%d”)
#進(jìn)入轉(zhuǎn)儲(chǔ)日志存放目錄
cd /data/nginx_logs/days
#對(duì)目錄中的轉(zhuǎn)儲(chǔ)日志文件的文件名進(jìn)行統(tǒng)一轉(zhuǎn)換
for i in $(ls ./ | grep “^\(.*\)\.[[:digit:]]$”)
do
mv ${i} ./$(echo ${i}|sed -n ‘s/^\(.*\)\.\([[:digit:]]\)$/\1/p’)-$(echo $time)
done
#對(duì)轉(zhuǎn)儲(chǔ)的日志文件進(jìn)行壓縮存放,并刪除原有轉(zhuǎn)儲(chǔ)的日志文件,只保存壓縮后的日志文件。以節(jié)約存儲(chǔ)空間
for i in $(ls ./ | grep “^\(.*\)\-\([[:digit:]-]\+\)$”)
do
tar jcvf ${i}.bz2 ./${i}
rm -rf ./${i}
done
#只保留最近7天的壓縮轉(zhuǎn)儲(chǔ)日志文件
find /data/nginx_logs/days/* -name “*.bz2” -mtime 7 -type f -exec rm -rf {} \;
######################################################
#給腳本附上執(zhí)行權(quán)限,放到crontab里執(zhí)行
#logrotate
0 0 * * * /usr/local/sbin/logrotate-nginx.sh > /dev/null 2>&1
總結(jié)
以上是生活随笔為你收集整理的linux 日志切割 自带,[日志分割回滚] 使用linux自带的logrotate对nginx日志进行分割...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mrc20温控f1什么意思_温控器的“总
- 下一篇: 红帽Linux7怎么修改网卡名称,新安装