当前位置: 首页 > Linux

MySQL数据库自动备份Shell脚本

时间:2023-04-06 22:50:33 Linux

今天这个备份分为两个版本,一个是linux上直接安装的mysql,一个是docker上安装的mysql。基本操作是一样的,只是备份的sql语句不同。可以选择设置需要备份的库,自动备份压缩,自动删除7天前的备份。您需要使用crontab定期执行它。创建一个mysql.sh文件备份数据库名,多个数据库用空格隔开#!/bin/bashdatabases=(db1db2db3)目录保存备份文件basepath='/usr/local/mysql/'if[!-d"$basepath"];thenmkdir-p"$basepath"filoopdatabasesarrayfordbin${databases[*]}doeachdatabasefolderif[!-d"$basepath$db"];thenmkdir-p"$basepath$db"fi备份数据库生成SQL(Linux)文件/bin/nice-n19/usr/bin/mysqldump-uUSER-pPASSWORD$db>$basepath$db/$db-$(date+%Y%m%d).sql备份数据库生成SQL(Docker)文件dockerexecmysqlmysqldump-uUSER-pPASSWORD$db>$basepath$db/$db-$(date+%Y%m%d).sql会生成sql文件压缩/bin/nice-n19tarzPcf$basepath$db/$db-$(date+%Y%m%d).tar.gz$basepath$db/$db-$(date+%Y%m%d).sql删除7天前的备份数据find$basepath$db*-mtime+7-name'*.tar.gz'-execrm-rf{}\;done删除生成的SQL文件rm-rf$basepath/*/*.sql使用crontab设置定时执行crontab-e设置为凌晨2点执行0002***/usr/local/mysql/mysql.sh