Linux对数据库定时备份

2020-06-28 577 0

使用场景

需要对数据库每天零晨3点进行备份,以db+当天日期.dump作为文件名,且对历史备份文件只保留最多十天,防止磁盘不足。

当为非云服务器或物理机场景下,只能用最原始备份方案。

制做备份脚本

创建脚本文件:/root/bak/bak.sh

#!/bin/sh

# 数据库信息
DB_USER="root"
DB_PASS="xxx"
DB_HOST="localhost"
DB_NAME="smart"

# mysql命令路径
BIN_DIR="/usr/bin"

#备份文件存放目录
BCK_DIR="/root/bak"
DATE=`date +%F`
TIME=`date "+%Y-%m-%d %H:%M:%S "`
filePath="./"

#保留多少天的备份文件
day=10

echo $TIME "bak db:" $BCK_DIR/db_$DATE.dump
#导出数据
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME > $BCK_DIR/db_$DATE.dump
echo "find $filePath -mtime +$day -name db_*.dump | xargs rm -rvf"
#删除N天前的文件(避免磁盘不足)
find  -mtime +$day -name "db_*.dump" | xargs rm -rvf;

为linux添加定时任务执行sh

2.1 执行命令:

#编辑当前用户任务表
hushow@hushow-pc:~$ crontab -e

2.2 添加定时任务表达式,保存

#添加表达式到当前用户任务表中
0 3 * * * /root/bak/bak.sh >> /root/bak/bak.log

2.3 查看执行日志

hushow@hushow-pc:~$ less /root/bak/bak.log

file

相关文章

网站的IPv6升级过程
使用docker快速搭建php开发调试环境
linux下快速开启内网穿透(ssh隧道)
Git 常用命令

发布评论