使用mysqldump+crontab实现Mysql定时备份

yumo66610个月前 (03-29)技术文章93

一直在用ubuntu16.04 server apt-get 安装环境,客户需求每天0点,12点进行一次数据库的备份。所以写了一个脚本配合crontab,定时执行。

首先给mysql建个cnf文件,在脚本里执行mysqldump的时候做到免密。 ubuntu16.04的mysql安装在/etc/mysql下,那么把免密的cnf建在这里,这是为了方便以后找到该文件,如果记性好,可以随意把该文件建到任何地方 进入到/etc/mysql目录下

cd /etc/mysq
vim user.root.cnf

文件内容如下:

[client]
user="root" #可以是mysql里任意的用户,当然必须是有你想导出的库的权限。
password="your password" #数据库用户对应的密码。

[mysql]
connect-timeout = 3

保存退出

然后写个脚本导出数据库,我把脚本放在了自建的~/opbin/下,方便统一管理

vim ~/opbin/mysqlbak.sh

文件内容如下:

#!/bin/bash
# 拖拉夫小司机 20210401

backup_dir=/home/bak/mysql-bak #文件备份的目录
mysql_dir=/etc/mysql #mysql的安装路径或者说是mysql的配置文件所在目录
user_conf="$mysql_dir/user.root.cnf" #免密登录的文件所在目录
imysqldump="/usr/bin/mysqldump" #mysqldump命令所在的目录

backup_keep_days=10 #只保留10天的备份
backup_log="$backup_dir/backup.log" #备份日志

time_suffix=`date "+%Y%m%d_%H_%M"` #时间

cd $backup_dir || exit 1

#----lzm----
# clean old backups
echo "---The lzm files are need to be cleaned---" >> $backup_log
find . -maxdepth 1 -mtime +"$backup_keep_days" -name "lzm.*" -exec ls -d -l {} \; >> $backup_log
find . -maxdepth 1 -mtime +"$backup_keep_days"  -name "lzm.*" -exec rm -rf {} \;
echo "---$time_suffix--lzm---end----" >> $backup_log

# start backup run background
$imysqldump --defaults-file="$user_conf" --single-transaction --default-character-set=utf8 lzm > lzm.$time_suffix.sql &

保存退出

记得给该文件chmod +x 执行权限

chmod +x ~/opbin/mysqlbak.sh

新建crontab

# crontab -e
* 0,12 * * * ~/opbin/mysqlbak.sh #每天的0点 12点执行

保存退出

OK,完成

需要恢复或导入数据的时候执行(注意数据库一定要存在)

mysql -uroot -p --default-character-set=utf8 lzm < lzm.20210401.sql

相关文章

在Windows Server上自动执行数据库和文件夹备份

介绍为服务器提供自动备份策略的重要性这是非常有必要的。每个服务器管理员都必须完成设置备份的繁重工作,包括编写脚本、安排任务、设置警报等等。为了简化这个任务,我分享一个实用程序来帮助服务器管理员和数据库...

mysql备份自动存储到开源的minio

概述minio 是开源企业级对象存储系统,有着高性能、使用简单、易扩展、兼容性强等特性。下面分享一下如何把mysql备份自动存储在minio中。一、前提条件安装minio客户端mc已经安装好的mini...

Linux新手入门系列:Linux下mysql定时备份及恢复

本文是linux下mysql的导出、导入,及定时备份脚本的编写,及定时器的简单应用。本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web...

MySQL管理授权和数据库的备份和还原详解

一般管理用户和授权由DBA去执行,DBA为数据库管理员一、管理用户1.添加用户CREATE USER '用户名'@'主机名'IDENTIFIED BY'密码';2.删除用户DROP USER '用户名...

Navicat实现 MYSQL数据库备份图文教程

#头条文章养成计划#数据库备份对于系统运维来说是必不可少的环节,对于企业来说,最珍贵的不是业务系统本身,而是业务系统所承载的业务数据,所以针对企业系统来说,做好数据库备份显得非常重要,今天给大家介绍使...

数据库备份工具——mysqldump详解

mysqldump 是 MySQL 提供的一个备份工具,用于创建数据库的逻辑备份。备份生成的是 SQL 脚本文件,该文件包含重建数据库所需的 SQL 语句。以下是 mysqldump 的详细用法:基本...