Linux数据库自动备份

2023年 10月 11日 32.0k 0

为了防止数据丢失,需要对MySql的数据进行备份,利用Linux的定时任务实现每日自动备份MySql。

前提

需要用到定时任务,首先确保Linux安装了“crontab”。

cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看服务状态

步骤

1. 编写备份脚本

#!/bin/sh
bak_path=/app/dbback # 数据库数据文件备份目录
date_now=`date +%Y%m%d` # 当前
date_dep=`date -d "-10 week" +%Y%m%d` # 7天前日期
cd $bak_path
echo "================Backup database================">>log
if [ -d $date_dep ]; then
    echo "`date '+%F %H:%M:%S'` Remove deprecated folder $date_dep.">>log
    rm -rf $date_dep # 删除7天前备份数据
fi
if [ ! -d $date_now ]; then
    mkdir $date_now # 创建当前日期备份数据文件夹
fi
cd $date_now
echo "`date '+%F %H:%M:%S'` Begin to backup " >> ../log
mysqldump --host=[数据库IP] --opt -u[用户名] -p[密码] --default-character-set=utf8 [库名] |gzip > *.gz
# 使用mysqldump备份数据库实例并压缩成gzip格式
echo "`date '+%F %H:%M:%S'` Finish to backup." >> ../log
echo "" >> ../log

2. 启动定时任务

	两种方式
	1、crontab -e 编写
	2、vim /etc/crontab
	5 0 * * * root [备份脚本路径]
	每天00:05执行备份

3. 检查结果

如果想立即看到效果,可以重启crond服务,定时任务会立即执行一遍,没问题的话备份目录会出现一个以当前日期命名的文件夹,里面有一份.gz文件,解压后是.sql文件。可以用navicat或命令进行数据恢复。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论