shell脚本编程——mysql数据库备份

2020/4/4 20:19:43 阅读次数: 标签:数据库

  Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 处理Shell 将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户。shell可以做一些繁杂且重复的事,用来做数据库备份很合适。分享一个shell脚本做的mysql备份。可以把这个脚本加入linux  cron定时任务中,能实现定时备份数据,而且删除十天前的数据。


  注:这个适合数据量少且写入量不高的mysql数据库。

 

代码如下

 

#!/bin/bash

#主机

HOST=localhost

#数据库用户名

DB_USER=root

#数据库密码

DB_PWD=adminadmin

#需要备份的数据库

DBTABASE=gitea

 

#备份目录

BACKUP=/root/shell/db

 

#当前时间作为文件名

DATETIME=$(date +%Y_%m_%d_%H%M%S)

 

 

#创建备份的路径

[ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"

echo “备份路径$BACKUP/$DATETIME 创建成功”

 

#执行mysql的备份数据库指令

mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz

echo "备份数据库文件$BACKUP/$DATETIME/$DATETIME.sql.gz 成功"

 

#打包备份文件

cd $BACKUP

tar -zcvf $DATETIME.tar.gz $DATETIME

echo "打包成$DATETIME.tar.gz 成功"

 

#删除临时目录

rm -rf $BACKUP/$DATETIME

echo "删除临时目录$BACKUP/$DATETIME 成功"

 

#删除10天前的备份数据

find $BACKUP -mtime +10 -iname "*.tar.gz" -exec rm -rf {} \;

echo "删除$BACKUP目录10天前的备份*.tar.gz数据成功"

echo "================备份文件成功==============="