Nginx日志定时切割压缩

Nginx日志主要用于日后的审计和分析,对系统的安全有着重要的意义。但是随着时间的推移,日志文件会变得越来越大,这就需要对日志进行处理分割了。

第一步:建立脚本文件:

[root@localhosthome]# vim nginx_log.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash
#日志将要存放的路径
basepath_log= '/data/logs/nginx/'
savepath_log=$basepath_log/$( date  +%Y)/$( date  +%m)/
#nginx的日志路径
logs_path= '/usr/logs'
#创建目录
mkdir  -p $savepath_log/
#切换目录
cd  ${logs_path}
#遍历nginx的日志路径中所有的log文件
for  fileLog  in  ` ls  *.log`
do
     mv  ${fileLog} $savepath_log/${fileLog}_$( date  +%Y%m%d%H%M).log
done
#重启Nginx
kill  -USR1 $( cat  /var/run/nginx/nginx .pid)
#压缩Log文件
cd  ${savepath_log}
#遍历nginx的日志存放路径
for  fileLog  in  ` ls  *.log`
do
     tar  zcf ${fileLog}. tar .gz -C ${savepath_log} ${fileLog}
     rm  -rf ${fileLog}
done

标黄的需要根据实际情况修改。

第二步:为nginx_log.sh分配可以执行权限

[root@localhost home]# chmod 755 nginx_log.sh

第三步:设定定时器

[root@localhost init.d]# crontab -e

1
00 00 * * *  /home/nginx_log .sh  #执行文件存放路径,每天凌晨00:00执行

定期清除过期日志

   

1
00 00 * * *  find  /home/post  - type  f -mtime +90 - exec  rm  -f {} \;

注:保存方式与vim一致,输入:wq。90表示删除90天以前的过期文件。

第四部:重启定时器

[root@localhost init.d]# cd /etc/init.d

[root@localhost init.d]# ./crond restart

   

1
2
停止 crond:                                    [确定]
正在启动 crond:                                [确定]





本文转自 梦朝思夕 51CTO博客,原文链接:http://blog.51cto.com/qiangmzsx/1363848

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值