日志分割
一、企业服务器中的日志文件过大会带来下面的问题:
1,查询过大的日志文件对于开发和运维十分不方便,特别是加班人很累的情况下更加雪上加霜;
2,很久以前的日志文件几乎没有价值,但是手工清理又太过繁琐。
这时候就需要一种解决方案可以自动来做日志分割,分割后的日志不仅“干净”,也便于实现日志定时清理。
实验
二、编译安装Nginx服务
1,远程获取Windows上的源码包,并挂载到Linux上
<代码> [root@localhost ~] # smbclient - l//192.168.235.1 进入SAMBA \ root的密码: Sharename类型的评论 - - - - - - - - - - - - - - - - - - - - - - - - LNMP磁盘 root@localhost ~ # mkdir/abc root@localhost ~ #山。cifs//192.168.235.1/LNMP/abc 密码root@//192.168.235.1/LNMP: root@localhost ~ # ls/abc Discuz_X3.4_SC_UTF8。邮政nginx-1.12.0.tar。广州php-7.1.10.tar.bz2 mysql-boost-5.7.20.tar。广州nginx-1.12.2.tar。广州php-7.1.20.tar.gz 代码>
2,解压缩包
<代码> root@localhost ~ # cd/abc (root@localhost abc) #焦油zxvf nginx-1.12.0.tar。广州- c/opt (root@localhost abc) # ls/选择 nginx-1.12.0 rh 代码>
3,安装编译组件包
<代码> (root@localhost abc) # cd/选择 [root@localhost选择]# yum安装- y \ 比;gcc \//C语言 比;gcc-c + + \//c++语言 比;pcre-devel \//pcre语言工具 比;zlib-devel//压缩函数库代码>
4,创建程序用户并配置Nginx服务相关组件
<代码> [root@localhost选择]# useradd - m - s/sbin/nologin nginx//创建程序用户nginx,并限定其不可登录终端 root@localhost选择# cd nginx-1.12.0/# ./configure \ [root@localhost nginx-1.12.0)//配置nginx 比;——prefix=//usr/地方/nginx \//指定安装路径 比;——用户=nginx \//指定用户名 比;——组=nginx \//指定用户所属组 比;——with-http_stub_status_module//安装状态统计模块代码>
5,编译与安装
<代码> [root@localhost nginx-1.12.0] #做,,使安装代码>
6,优化Nginx服务启动脚本,并建立命令软链接
<代码> [root@localhost nginx-1.12.0] # ln - s/usr/local/nginx/sbin/nginx/usr/local/sbin///创建nginx服务命令软链接到系统命令 [root@localhost nginx-1.12.0] # systemctl firewalld.service停止//关闭防火墙 [root@localhost nginx-1.12.0] # setenforce 0//关闭增强型安全功能 [root@localhost nginx-1.12.0] # nginx//输入nginx开启服务 [root@localhost nginx-1.12.0] # netstat -ntap | grep 80//查看服务的80端口,显示已开启 tcp 0 0 0.0.0.0:80 0.0.0.0: * 7520/nginx:听大师代码>
7, systemctl管理nginx脚本
<代码> root@localhost ~ # vim/lib/systemd/system/nginx.服务# #创建配置文件 (单位) 描述=nginx # #描述 后=网络。目标# #描述服务类型 (服务) 类型=分支# #后台运行形式 PIDFile=/usr/地方/nginx/logs/nginx。pid # # pid文件位置 ExecStart=/usr/地方/nginx/sbin/nginx # #启动服务 ExecReload=/usr/bin/杀- s玫瑰MAINPID # #美元根据PID重载配置 ExecStop=/usr/bin/杀- s退出美元MAINPID # #根据PID终止进程 PrivateTmp=true (安装) WantedBy=multi-user.target # chmod 754/lib/systemd/system/nginx. root@localhost ~服务# #设置执行权限 (root@localhost ~) # systemctl停止nginx。服务# #关闭nginx root@localhost ~ # systemctl开始nginx。服务# #开启代码>
8,编写日志分割脚本
<代码> [root@localhost nginx-1.12.0] # vim fenge.sh # !/bin/bash #文件名:fengge。sh # #描述信息 d=$(日期- d“1天”“+ % Y % m % d”) # #显示系统一天前的时间,并生成一个日期字符串,如“2019.11.11” logs_path="/var/log/nginx”# #日志分割后的存放路径 pid_path="/usr/地方/nginx/logs/nginx。pid”# # Nginx的进程号文件 [- d $ logs_path] | | mkdir - p $ logs_path # #判断是否存在日志分割存放路径,如不存在则创建该路径 mv/usr/local/nginx/logs/access.日志$ {logs_path}/test.com-access.log - $ d # #移出原有路径下的访问日志生成到创建的路径下,并以日期命名生成一个日志文件 杀死usr1美元(猫pid_path美元)# #结束此前的进程号,用以生成新的进程号 发现美元logs_path -mtime + 30 | xargs rm射频# #寻找路径下30天之前(不包括30天)的文件并删除,xargs用于将前面命令的处理结果作为管道符号后的命令的参数 [root@localhost nginx-1.12.0] # chmod + x fenge。sh # #授予脚本执行权限 [root@localhost nginx-1.12.0) #。/fenge.sh [root@localhost nginx-1.12.0] # ls/var/log/nginx test.com access.log - 20191112 # #查看指定路径下生成的的日志分割文件 [root@localhost nginx-1.12.0] # ls/usr/local/nginx/logs 访问。日志错误。日志nginx。pid # #查看Nginx日志目录,可见又自动生成了一个access.log日志Nginx优化——日志分割