下面是Ubuntu Server下MySql数据库备份脚本代码的完整攻略。
环境准备
在开始编写MySql数据库备份脚本之前,需要确保在Ubuntu Server系统中已经安装了MySql数据库,并且安装了mysqldump命令。此外,还需要创建一个备份目录来存储备份文件,可以使用以下命令创建:
sudo mkdir /backup
sudo chown -R $USER:$USER /backup
编写脚本
下面是一个备份脚本的示例,该脚本将生成一个以当前日期命名的备份文件并将其保存到备份目录中:
#!/bin/bash
#设置备份文件名
DB_NAME="my_database"
BK_NAME="$DB_NAME-$(date +'%Y-%m-%d').sql.gz"
#备份数据库
sudo mysqldump --opt --single-transaction --quick --user=root --password my_database | gzip -c > "/backup/$BK_NAME"
#删除7天前的备份文件
find /backup/*.sql.gz -mtime +7 -exec rm {} \;
该脚本首先设置了备份文件的名称,然后使用mysqldump命令备份MySql数据库,并将备份文件保存到指定的备份目录中。最后,使用find命令删除7天前的备份文件。
示例说明
假设我们有一个名为my_database的MySql数据库,需要编写一个每天自动备份的脚本,可以使用如下方法:
- 使用nano或vim编辑器创建新的脚本文件,例如:
sudo nano /backup/backup_script.sh
- 将上面的备份脚本代码复制并粘贴到该文件中。
- 保存并关闭该文件,使用以下命令将文件设置为可执行状态:
sudo chmod +x /backup/backup_script.sh
- 使用crontab命令添加一个定时任务,使该脚本每天执行,例如:
sudo crontab -e
,添加以下内容:
# 每天凌晨3点备份my_database数据库
0 3 * * * /backup/backup_script.sh
重启cron服务,使其立即生效:
sudo /etc/init.d/cron restart
这样,每天凌晨3点,将会自动备份my_database数据库,并将备份文件保存在/backup目录中,备份文件名类似于my_database-2022-01-01.sql.gz。
另外一个示例是:假设我们有多个MySql数据库需要备份,可以使用以下方法批量备份:
#!/bin/bash
#设置备份目录和文件名前缀
BK_PATH="/backup"
BK_PREFIX="mysqldump"
#备份数据库
for DB_NAME in `mysql -u root -p<password> -N -B -e "SHOW DATABASES" | grep -v "$SYSTEM_DATABASES"`; do
#设置备份文件名
BK_NAME="$BK_PREFIX-$DB_NAME-$(date +'%Y-%m-%d').sql.gz"
#备份数据库
sudo mysqldump --opt --single-transaction --quick --user=root --password $DB_NAME | gzip -c > "$BK_PATH/$BK_NAME"
done
#删除7天前的备份文件
find $BK_PATH/*.sql.gz -mtime +7 -exec rm {} \;
该脚本首先设置了备份目录和文件名前缀,然后循环备份每个MySql数据库。备份文件名包含MySql数据库名称,例如mysqldump-my_database1-2022-01-01.sql.gz。最后,使用find命令删除7天前的备份文件。
总之,这是一个简单的MySql数据库备份脚本,您可以根据自己的需求进行修改并定制。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Ubuntu Server下MySql数据库备份脚本代码 - Python技术站