Mysql通用日志(general)文件太大,想保留近期数据,又想不占用太多空间,该如何定期清理与备份
一、编写备份与清理的脚本
创建存放脚本和备份日志的目录
mkdir -p /mysql_backup/log
创建脚本
cd /mysql_backup
touch msql_backup.sh
chmod +x msql_backup.sh
查看日志文件存放目录
mysql -uroot -p123
mysql> show variables like 'general%';
+------------------+---------------------+
| Variable_name | Value |
+------------------+---------------------+
| general_log | ON |
| general_log_file | /var/log/select.log |
+------------------+---------------------+
2 rows in set (0.00 sec)
vim msql_backup.sh
#!/bin/bash
#第一步备份
cp -a /var/log/select.log /mysql_backup/log/select_backup.log
#第二步,清楚数据(如果直接删除日志文件,日志数据并不会消失,再次创建的文件依旧很大)
cat /dev/null > /var/log/select.log
- 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
- 26
二、编写计划任务
创建计划任务
crontab -e
0 0 */3 * * /mysql_backup/msql_backup.sh #表示每隔3天晚上的12点整会执行该脚本