4000-618-418

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

2020年04月04日

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 "================备份文件成功==============="



上一篇:NTFS权限与文件共享服务器(文件共享权限与NTFS权限有何不同?)

下一篇:Windows2003搭建DZ论坛