MySQL 5.7限制general_log日志大小
背景
需求:
- 在MySQL 5.7.41中开启
general_log并限制其大小,避免快速增长占用硬盘空间。
解决:
- 通过定时任务,执行简单的脚本,判断
general_log日志的大小,实现对通用查询日志的“每日备份”或“每日清理”的功能。
多说几句:
- 等保二级要求必须开启MySQL数据库的通用查询日志
general_log,但其文件大小增长速度太快,数据库有效数据都还没增长多少,硬盘空间可能就会被general_log日志占用不少。而binog至少还能通过binlog_expire_logs_seconds过期时间参数设置日志保存策略,避免占用空间。没有这样的参数限制general_log,必然要通过其它手段限制general_log空间。
实际操作:备份脚本和清理脚本
提供两种思路:
- 思路一:每日检查日志大小,当其超过某个阈值时,将文件复制归档到某个专门存储日志的目录。
- 思路二:每日检查日志大小,当超过某个阈值时,不执行归档备份,直接将
general_log内容清除。
MySQL中开启general日志需要修改my.cnf文件,增加以下两行指定日志存储路径:
[mysqld]
general_log = 1
general_log_file = /mnt/general.log
思路一:每日备份日志
参考脚本 bak_general_log.sh
#!/bin/bashLOG_FILE="/mnt/general.log"
MAX_SIZE=100if [ -f "$LOG_FILE" ]; thenCURRENT_SIZE=$(du -m "$LOG_FILE" | awk '{print $1}')if [ "$CURRENT_SIZE" -gt "$MAX_SIZE" ]; thenmv "$LOG_FILE" "$LOG_FILE.$(date +%Y%m%d%H%M%S)"touch "$LOG_FILE"chmod 0640 "$LOG_FILE"chown mysql:mysql "$LOG_FILE"systemctl restart mysqlfi
fi
思路二:每日清空日志
参考脚本 clear_general_log.sh
#!/bin/bashLOG_FILE="/mnt/general.log"
MAX_SIZE=100if [ -f "$LOG_FILE" ]; thenCURRENT_SIZE=$(du -m "$LOG_FILE" | awk '{print $1}')if [ "$CURRENT_SIZE" -gt "$MAX_SIZE" ]; thenecho > "$LOG_FILE"fi
fi
快速验证脚本的方法:dd创建日志文件
- 用dd命令快速生成指定大小的文件,比如生成101MB大小的
/mnt/general.log文件,可以执行以下命令:
dd if=/dev/zero of=/mnt/general.log bs=1M count=101
- 执行之前准备的脚本文件,查看结果。
参考截图

实际操作:配置corntab定时任务
给脚本配置可执行权限:
chmod +x bak_general_log.sh
chmod +x clear_general_log.sh
使用cron等工具将脚本定期执行,例如每天凌晨执行一次:
crontab -e
然后在编辑器中添加以下内容:
0 0 * * * /mnt/bak_general_log.sh
0 0 * * * /mnt/clear_general_log.sh
上述脚本二选一即可。
结束
注意:
- 备份脚本中没有指定备份目录。
- 备份脚本中涉及了MySQL应用重启。
- 备份脚本的具体内容可根据实际情况修改。
相关文章:
MySQL 5.7限制general_log日志大小
背景 需求: 在MySQL 5.7.41中开启general_log 并限制其大小,避免快速增长占用硬盘空间。 解决: 通过定时任务,执行简单的脚本,判断general_log 日志的大小,实现对通用查询日志的“每日备份”或“每日清…...
tomcat9~10猫闪退个人经验
java版本17与8 8版本有jre,java17没有jre 所以在java8版本中将jre和jdk路径一同添加环境是不会出现闪退的,tomcat9没有闪退 但是在10就闪退了,因为java版本太低 java17没有jre,但是可以通过一种方法添加jre到java17的目录 完…...
Linux之J2EE的项目部署及发布
目录 前言 一、会议OA单体项目windows系统部署 1.检验工作 1. 检验jar项目包是否可以运行 2. 验证数据库脚本是否有误 3. 测试项目功能 2. 部署工作 2.1 传输文件 2.2 解压项目及将项目配置到服务器中 2.3 配置数据库 2.4 在服务器bin文件下点击startup.bat启动项目 …...
基于闪电搜索算法的无人机航迹规划-附代码
基于闪电搜索算法的无人机航迹规划 文章目录 基于闪电搜索算法的无人机航迹规划1.闪电搜索搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用闪电搜索算法来优化无人机航迹规划。 …...
【网络安全 --- 文件上传靶场练习】文件上传靶场安装以及1-5关闯关思路及技巧,源码分析
一,前期准备环境和工具 1,vmware 16.0安装 若已安装,请忽略 【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)-CSDN博客文章浏览阅读186次,点赞9次,收藏2次。【网络安全 --- 工…...
BUUCTF刷题记录
[BJDCTF2020]Easy MD51 进入题目页面,题目提示有一个链接,应该是题目源码 进入环境,是一个查询框,无论输入什么都没有回显,查看源码也没什么用 利用bp抓包查看有没有什么有用的东西 发现响应的Hint那里有一个sql语句&…...
黑客技术(网络安全)—小白自学
目录 一、自学网络安全学习的误区和陷阱 二、学习网络安全的一些前期准备 三、网络安全学习路线 四、学习资料的推荐 想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客! 网络安全可以基于攻击和防御视角来分类&am…...
免登陆 同步脚本 zookeeper kafka集群详细安装步骤
一.免登陆配置 #修改注解名 vim /etc/hostname #修改host文件 vim /etc/hosts 192.168.1.10 kafka1 kafka1 192.168.1.11 kafka2 kafka2 192.168.1.12 kafka3 kafka3#免登陆生成秘钥和授权自动登陆 ssh-keygen -t rsa cd ~/.ssh shh-copy-id kafka1 shh-copy-id kafka2 shh-co…...
深入理解NLP
引子 自然语言处理(Natural Language Processing, NLP)是人工智能领域中的一个重要研究方向,它涉及了计算机与人类自然语言之间的交互和理解。 1. NLP的起源与发展 NLP的起源可以追溯到早期的机器翻译项目,随着科技的进步&…...
Python-自动化绘制股票价格通道线
常规方案 通过将高点/低点与其 2 个或 3 个相邻点进行比较来检测枢轴点,并检查它是否是其中的最高/最低点。对所有枢轴点进行线性回归以获得上方和下方趋势线。价格离开通道后建仓。通过这样做,我们得到如下所示的价格通道。我认为我们可以利用给定的数据取得更好的结果。...
CTF-Crypto学习记录-第四天 “ “ --- SHA1安全散列算法,实现原理。
文章目录 前言SHA-1加密算法介绍关于SHA-1和MD5 SHA-1 加密过程原文处理设置初始值和数据结构定义加密运算原理过程 在python中调用SHA-1 前言 MD5学习MD5加密算法 SHA-1加密算法介绍 SHA-1(Secure Hash Algorithm1,安全散列算法1)是一种密…...
海南海口大型钢结构件3D扫描全尺寸三维测量平面度平行度检测-CASAIM中科广电
高精度三维扫描技术已经在大型工件制造领域发挥着重要作用,特别是在质量检测环节,高效、高精度,可以轻松实现全尺寸三维测量。本期,CASAIM要分享的应用是在大型钢结构件的关键部位尺寸及形位公差检测。 钢结构件,是将…...
【PyQt学习篇 · ④】:QWidget - 尺寸操作
文章目录 QWidget简介QWidget大小位置操作案例一案例二 QWidget尺寸限定操作案例 内容边距案例 QWidget简介 在PyQt中,QWidget是一个基本的用户界面类,用于创建可见的窗口组件。QWidget可以包含多种类型的子组件,如QPushButton、QLabel、QLi…...
APC学习记录
文章目录 APC概念APC插入、执行过程逆向分析插入过程执行过程总结 代码演示参考资料 APC概念 APC全称叫做异步过程调用,英文名是 Asynchronous Procedure Call,在进行系统调用、线程切换、中断、异常时会进行触发执行的一段代码,其中主要分为…...
前端将图片储存table表格中,页面回显
<el-table :data"tableData" v-loading"loading" style"width: 100%" height"calc(100vh - 270px)" :size"tableSize"row-dblclick"enterClick"><el-table-column prop"name" label"文档…...
[论文阅读]Ghost-free High Dynamic Range Imaging with Context-aware Transformer
多帧高动态范围成像(High Dynamic Range Imaging, HDRI/HDR)旨在通过合并多幅不同曝光程度下的低动态范围图像,生成具有更宽动态范围和更逼真细节的图像。如果这些低动态范围图像完全对齐,则可以很好地融合为HDR图像,但…...
react高阶成分(HOC)例子效果
使用React函数式组件写了一个身份验证的一个功能,示例通过高阶组件实现的一个效果展示: import React, { useState, useEffect } from react;// 定义一个高阶组件,它接受一个组件作为输入,并返回一个新的包装组件 const withAuth…...
【24种设计模式】工厂模式(Factory Pattern)
工厂模式是一种创建型设计模式,它提供了一种创建对象的方式,而无需暴露对象创建的逻辑。在这篇博客中,我们将介绍工厂模式的概念、使用场景以及示例代码。 概念 工厂模式是一种创建型设计模式,它提供了一种创建对象的方式&#…...
树——对称二叉树
leetcode题目地址 树为空树,亦为对称二叉树树非空时,仅需判断其左右子树是否对称判断左右子树对称 (1) 左右子树是否为空,有一个为空 便不对称, 都为空或都不为空 可能对称 (2) 左右子树根节点值是否相同 (3) 判断 左子树 的 左子…...
拉扎维模拟CMOS集成电路设计西交张鸿老师课程P10~13视频学习记录
--------------------------------------------------------------------------------------------------------------------------------- p10 短沟道,除了沟长调,还可能出现速度饱和问题; 但是在拉扎维这本书里面没有考虑这个问题&#…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
