生产环境无法访问排查记录及解决方案-磁盘满了 定时自动删除前3个月的备份文件

问题描述

用户无法登录系统,验证码可以刷出来,登录就超时

在这里插入图片描述


原因分析过程

  1. 9月13日9:33接到用户投诉;
  2. 9月13日9:36登录4A平台;
  3. 9月13日9:37连接第一台应用服务器查看日志;
  4. 9月13日9:39连接第二台应用服务器查看日志;
  5. 9月13日9:40重启第一台应用服务器查看日志;
  6. 9月13日9:41重启第二台应用服务器查看日志;
  7. 9月13日9:42监听日志并验证服务界面是否可登录;
  8. 9月13日9:45查看应用服务器磁盘和内存使用情况;
  9. 9月13日9:47详细排查应用日志;
  10. 9月13日9:50排查数据库服务器状态;
  11. 9月13日9:52发现是因为定时备份数据库导致磁盘满了无法写入数据
  12. 9月13日9:55重启数据库服务;
  13. 9月13日9:56重启应用服务;
  14. 9月13日9:57服务验证正常;
    总结:
    1.理智分析现场环境情况
    2.不要急着敲命令,有时候越急命令容易敲错并且有时候记不起来
    3.用最小的代价分析,如先查看磁盘>查看应用日志--------- df -h > tail -f logs/xcall.log
    4.用户无法登录,通过日志查看到死锁,从来不会死锁的表也出现了锁表情况,这时候就该关注数据库问题
    5.登录数据库服务器后没有第一时间想到备份导致磁盘满了的问题-也许是因为之前有 zabbix 监控告警

解决方案(定时清理老的备份文件)

当时临时解决方案是删除了一部分老的备份文件重启数据库就好了

我们定时备份是采用数据库导出的方式 文件格式为
2022-09/2022-09-13_12_00.sql

cd /tmp/db_backup/xcall
filename=`date +%Y-%m-%d_%H_%M`
month=`date +%Y-%m`
if [ ! -d $month ];then
        mkdir -p $month
fi
mysqldump -u root -p'aaaa' xcall2  > /tmp/db_backup/xcall/$month/$filename.sql

crontab -e
在这里插入图片描述

由于之前都是手动删除容易忘记,写个定时自动删除前3个月的备份文件

#!/bin/sh
dir=/tmp
array=(a b c)
echo "开始清理备份文件---- 目录数:"${#array[@]}
for(( i=0;i<${#array[@]};i++))
do
        d=$dir/${array[i]}
        folder1=$d/`date -d '-4 month' +%Y-%m`
        folder2=$d/`date -d '-3 month' +%Y-%m`
        folder3=$d/`date -d '-2 month' +%Y-%m`
        if [  -d $folder1 ];then
                rm -rf $folder1
        fi
        if [  -d $folder2 ];then
                rm -rf $folder2
        fi
        if [  -d $folder3 ];then
                rm -rf $folder3
        fi
        echo "deleted" $i "folder:"$folder1
        echo "deleted" $i "folder:"$folder2
        echo "deleted" $i "folder:"$folder3
        echo "======================"
done

效果图:
在这里插入图片描述
以后就不怕数据库所在服务器磁盘爆满了

知识点总结

  1. 问题分析与排查能力
  2. 熟练敲命令的重要性
  3. 快捷指令的重要性======不过一般都是通过堡垒机啥的,用起来没有自己的工具习惯
  4. linux for 循环
  5. linux 当前日期减1,Linux date命令用法和使用技巧(获取今天、昨天、一分钟前等)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值