前言:因为是定时备份,加之数据库内的数据在成倍增加,我们一定要为备份文件选好合适的存储磁盘。以防出现因磁盘空间不足而导致备份失败的情况。
1. 先在空间充足的磁盘内创建备份文件夹
我这边选择了再home文件夹下创建备份文件夹。
使用命令 创建了个备份文件夹 backup
mkdir backup
2. 创建备份 shell 脚本
2.1使用vi 命令创建 一个名字为 sh的文件,这个文件名随便你取,但更推荐名字要贴近需要备份的数据库的名字
vi bk_databasename.sh
2.2 在2.1建立的sh文件中,编辑你要备份的数据库的信息,备份方法有两种,一种是直接备份成sql文件,一种是备份并且压缩
USERNAME 需要改成你数据库的登录用户名
PASSWORD 需要改成你数据库的登录密码
DATABASENAME1 需要改成你要备份的数据库库名
DATABASENAME2 可以改成你想改的任何备份名前缀。我这里备份文件名是采用【前缀_生成时间.后缀 】的方式拼接出来的。这样能确保你的备份旧文件不会被新文件覆盖掉,并且每日生成的备份文件一目了然。
#!/bin/bash
# 直接备份成sql文件
mysqldump -uUSERNAME -pPASSWORD DATABASENAME1 > /home/backup/DATABASENAME2_$(date +%Y%m%d_%H%M%S).sql
#备份并且压缩成gz文件
mysqldump -uUSERNAME -pPASSWORD DATABASENAME1 | gzip > /home/backup/DATABASENAME2_$(date +%Y%m%d_%H%M%S).sql.gz
3. 赋予 shell脚本 足够的权限
chmod u+x bk_databasename.sh
4. 测试 shell脚本文件
运行一下命令,然后前往backup文件夹查看,是否有备份文件生成。若有则证明执行成功。
./bk_databasename.sh
5. 设置crontab 定时任务 ->每日备份数据库
使用 crontab -e 命令进入定时文件
输入下列命令,让定时任务每日凌晨1点运行一次bk_databasename.sh文件,执行一次备份操作。
00 01 * * * /home/backup/bk_databasename.sh