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