一.企业中打包日至
访问日志,日至基本上每天清理一次,定时任务将日至打包备份到其他存储设备中,占用磁盘空间台浪费
1.首先将旧版本Nginx进行关闭,
[root@server1 ~]# cd /usr/local/nginx/
[root@server1 nginx]# cd logs/
[root@server1 logs]# ls
[root@server1 logs]# cat nginx.pid
[root@server1 logs]# cat nginx.pid.oldbin
[root@server1 logs]# cd ../sbin/
[root@server1 sbin]# ./nginx
[root@server1 sbin]# ps -ed | grep nginx
[root@server1 sbin]# kill -9 6144
[root@server1 sbin]# cd ../logs/
[root@server1 logs]# ls
[root@server1 logs]# vim error.log
[root@server1 logs]# du -sh *
[root@server1 logs]# cd ../sbin/
[root@server1 sbin]# ./nginx -V
2.简单的进行日至打包(尝试看是否可以成功)
[root@server1 logs]# mv access.log `date +%F-d-1day`_access.log
[root@server1 logs]# ls
2019-05-06-d-1day_access.log error.log nginx.pid
[root@server1 logs]# /usr/local/nginx/sbin/nginx -s reopen
[root@server1 logs]# ls
2019-05-06-d-1day_access.log access.log error.log nginx.pid
[root@server1 logs]# du -sh *
3.编写一个脚本使其可以自动替代之前的日至
#查看是否有定时任务
[root@server1 logs]# crontab -l
[root@server1 logs]# vim backup.sh
[root@server1 logs]# cat backup.sh
[root@server1 logs]# chmod +x backup.sh
[root@server1 logs]# ls
#执行后发现后报错,创建目录即可
[root@server1 logs]# ./backup.sh
[root@server1 logs]# mkdir oldlogs
[root@server1 logs]# ls
[root@server1 logs]# ./backup.sh
[root@server1 logs]# ls
#进入目录oldlogs/中,发现在执行脚本后,会生成旧的日至
[root@server1 logs]# cd oldlogs/
[root@server1 oldlogs]# ls
脚本中的内容如下:
#!/bin/bash
LOG_PATH=/usr/local/nginx/logs/oldlogs #定义旧日至应该存放的路径
CUR_LOG_PATH=/usr/local/nginx/logs #定义日至所在的路径
YESTERDAY=$( date +%F -d -1day) #定义昨天的日期
mv $CUR_LOG_PATH/access.log $LOG_PATH/${YESTERDAY}_access.log
mv $CUR_LOG_PATH/error.log $LOG_PATH/${YESTERDAY}_error.log
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
4.将命令写入定时任务中并进行查看
[root@server1 logs]# crontab -e
[root@server1 logs]# crontab -l
定时任务中写入的内容如下:
0 0 * * * /bin/bash /usr/local/nginx/logs/backup.sh
5.完善:将多余的日至文件删除并重新开启nginx服务,日至会重新生成一个日志文件
[root@server1 logs]# ls
[root@server1 logs]# rm -rf 20