Nginx分割日志文件
简介Nginx作为使用量非常大的Web服务器,但是如果遇到一个访问量比较大的网站,其访问日志会快速的进行增长,如果一直将所有的访问日志存放在一个文件中肯定是不对的,所以我们就需要对访问量大的访问日志进行分割,然后按照一定的时间删除不需要的日志文件。
使用nginx作为我们的WEB服务器时,如果我们开启了访问日志,当访问量非常大的时候,访问日志会快速增长,可能在服务器存储空间较小的情况下导致服务器磁盘占用过多或占满,所以就需要我们定期对nginx日志进行清理。
这里的思路主要是将每天的日志生成一个新的文件,然后给定一个保存时间,当过了我们保存时间后就删除以前没用的数据。
1、首先要开启nginx的访问日志
#这里我们可以进行自定义格式,这里我主要使用nginx定义好的格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#存放文件路径和名称,access这个名字可以修改,但是在后面需要用到
access_log logs/access.log main;
2、日志分割脚本
在nginx目录下编写一个cut_nginx_log.sh文件,内容如下:
#!/bin/bash
#定义日志目录,需要根据自己的日志目录进行修改
log_files_dir="/apps/nginx/logs/"
#定义日志文件名称,根据nginx配置的文件名称进行修改
log_files_name=(access )
#获取日志名称数量
log_files_count=${#log_files_name[@]}
#定义nginx命令地址,需要根据自己的nginx安装路径来找到该路径
nginx_sbin="/apps/nginx/sbin/nginx"
#设置保存天数,自定义
save_days=30
#分割日志
for((i=0;i<$log_files_count;i++));do
mv ${log_files_dir}${log_files_name[i]}.log ${log_files_dir}${log_files_name[i]}.log_$(date -d "yesterday" +"%Y-%m-%d")
done
#找到保存天数以前的日志并删除,这里最好要加上*.log来进行查找
find $log_files_dir -name *.log_* -mtime +$save_days -exec rm -rf {} \;
#重启nginx
$nginx_sbin -s reload
保存完后,需要将该文件改成可以执行的权限
chmod +x cut_nginx_log.sh
3、添加定义任务
#打开定义任务
crontab -e
#进入编辑模式在后面添加,定时任务
00 00 * * * /bin/sh /apps/nginx/cut_nginx_logs.sh
#查看刚刚添加的定时任务
crontab -l
4、查询定时任务是否执行
tail -f /var/log/cron
这里一定要注意shell文件中的文件路径,一定要使用绝对路径。
在Golang编程中,经常会用到MongoDB数据库进行查询,但是当日期是一个字符串的时候,如何根据日期进行分组查询呢?本文将记录如何分组查询统计。
平时在工作中会用到很多技术和工具,有时候确实会遗忘,所以这里将这些收藏该文中,便于以后进行查找。也希望查看到该文章的朋友对你们有一定的帮助,后期还会加入更多的信息进来。
本文主要记录Nginx中的fastcgi_param的参数记录。
在使用Python进行开发时,pip作为Python的包管理工具,是我们安装和管理Python库的重要工具。然而,有时候由于操作失误或其他原因,我们可能会不小心卸载了pip。这时,如何手动重新安装pip就显得尤为重要。本文将介绍两种手动安装pip的方法,帮助你快速恢复pip功能。
用supervisord管理python进程,python程序中的print内容不能输出到指定的日志文件
快速生成表格
Electron页面跳转、浏览器打开链接和打开新窗口
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。