一个定期备份MySQL数据库的Shell脚本
Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行。我们也可以逐一敲入命令手动执行。如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反复运行这些命令了。
假定你已经知道shell scripting、 mysqldump和crontab。首先给出完整的脚本,后面会对该脚本做说明。
适用操作系统:任何Linux或UNIX。
1.创建脚本
该Shell脚本可以自动备份数据库。只要复制粘贴本脚本到文本编辑器中,输入数据库用户名、密码以及数据库名即可。这里我们备份数据库使用的是mysqldump 命令。后面会对每行脚本命令进行说明。
(1)在你想要放置备份文件的目录下创建两个目录“backup”和“oldbackup”,这里使用的是/data目录
#mkdir /backup
#mkdir /oldbackup
(2)创建并编辑文件“backup.sh”
#!/bin/bash
cd /backup
echo “You are In Backup Directory”
mv backup* '/data/oldbackup'
echo “Old Databases are Moved to oldbackup folder”
Now=$(date +”%d-%m-%Y--%H:%M:%S”)
File=backup-$Now.sql
mysqldump –uroot –p database-name > $File
echo “Your Database Backup Successfully Completed”
(3)设置 backup.sh 脚本文件的可执行许可
# chmod +x /backup/backup.sh
(4)脚本执行
#./backup.sh
脚本运行结束后会得到以下输出:
root@Server1:/download#./backup.sh
You areinDownload Directory
Old Backup DatabaseisMoved to oldbackup folder
database backup successful completed
root@Server1:/download#
注:首次执行该脚本会有一个“no such file”的提示信息,这是由于旧备份文件还不存在。只要再次执行该脚本就没有问题了,这个问题已经不存在了。
2.脚本说明
在第8行命令中,在mysqldump命令后要输入自己的数据库用户名、密码及数据库名。
执行该脚本,首先会进入 /backup 目录(要与自己创建的目录保持一致),然后该脚本会把原有的旧数据库备份移动到 /oldbackup 文件夹中,接着根据系统的日期及时间生成一个文件名,在最后 mysqldump 命令会生成一个“.sql”格式的数据库备份文件。
3.使用cron制定备份计划
使用Cron可以定时执行该脚本,备份会自动完成。使用 crontab 命令编辑cron 执行的计划任务。
1 #crontab –e
在编辑器中输入一下代码,保存退出即可:
1 0 13 * * * * /data/backup.sh
本任务表示的是在每天下午1点钟把数据库备份到指定的文件夹(具体备份周期可根据自己的实际情况设定)。有关cron任务设置的详细内容可以查阅crontab手册。
到这里一个定时自动备份mysql的功能就得以实现,为保证数据库的安全性,李坏建议大家都养成备份数据库的习惯。
下面看看看几个具体的例子:
● 0 */2 * * * /sbin/service httpd restart 意思是每两个小时重启一次apache
● 50 7 * * * /sbin/service sshd start 意思是每天7:50开启ssh服务
● 50 22 * * * /sbin/service sshd stop 意思是每天22:50关闭ssh服务
● 0 0 1,15 * * fsck /home 每月1号和15号检查/home 磁盘
● 1 * * * * /home/bruce/backup 每小时的第一分执行 /home/bruce/backup这个文件
● 00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \; 每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
● 30 6 */10 * * ls 意思是每月的1、11、21、31日是的6:30执行一次ls命令
在linux平台上如果需要实现任务调度功能可以编写cron脚本来实现。
分享到:
相关推荐
了解这些基本概念后,你可以查看压缩包内的`基于xtrabackup的MySQL数据库备份及还原Shell脚本`,这个脚本将详细展示如何结合`xtrabackup`和Shell来自动化MySQL数据库的备份与还原流程。在实际使用时,你需要根据自己...
本文档介绍了一个用于在Linux环境下自动备份MySQL数据库的Shell脚本。通过利用Cron定时任务功能,该脚本能够在特定时间自动运行,完成数据库的备份操作。以下是该脚本的主要组成部分及功能说明: ##### 2.1 变量...
本篇将详细阐述如何使用Shell脚本来实现MySQL数据库的备份与恢复。 首先,让我们分析提供的两个脚本文件: 1. `datarestore.sh`:这个脚本通常用于执行数据库恢复操作。它可能包含了连接到MySQL服务器,选择要恢复...
今天这个备份分二个版本一个是linux上直接安装的mysql,另一种是docker上安装的mysql。基本操作都一样只是备份sql语句不同而已。可以选择设置需要备份的库,自动备份压缩,自动删除 7 天前的备份,需要使用 crontab ...
总结来说,通过编写shell脚本,我们可以实现MySQL数据库的自动化备份,包括全量备份和(借助第三方工具的)增量备份。创建并管理备份目录,结合cron job实现定时任务,确保数据的安全性和可靠性。
这里我们探讨的是一个使用PHP编写的脚本,该脚本能够自动化执行MySQL数据库的备份任务,并且能自动清理15天前的旧备份,以节省存储空间。 首先,让我们了解一下MySQL数据库备份的基本概念。数据库备份主要有两种...
linux服务器上,自己做所有数据库备份脚本方法,先打包在保存
防止误删服务器数据库 ,使用Shell脚本备份数据库: ### 1、需求分析: 1)每天凌晨2:10备份数据库atguiguDB到/data/backup/db 2)备份开始和备份结束能够给出相应的提示信息 3)备份后的文件要求以备份时间为...
可以通过修改配置直接备份mysql中的所有数据库数据
在本例中,shell脚本用于控制多线程备份MySQL数据库的过程。 多线程备份的关键在于并发执行,这意味着多个备份任务可以同时进行,从而缩短总备份时间。在MySQL 5.7.8之后的版本中,可以通过`mysqldump`命令来导出...
在本脚本中,我们使用 Bash 语言编写了一个备份脚本,该脚本将 MySQL 数据库备份到文件中。 知识点四:环境变量的设置 ------------------------- 在本脚本中,我们设置了一些环境变量,例如 MySQL 的登录用户名...
在"Linux下清理数据库shell脚本"这个主题中,我们关注的是如何编写一个bash shell脚本来自动化数据库的清理和备份任务。 1. **清理数据库归档文件**:在数据库运行过程中,会产生大量的日志和归档文件,如Oracle...
本文将详细介绍如何编写一个在Linux环境下,每天凌晨3点自动执行的MySQL数据库备份脚本,以及如何配置Linux的定时任务来执行这个脚本。 首先,我们来看`DB_backup.sh`这个脚本文件。它通常包含以下核心部分: 1. *...
MySQL数据库的自动定时备份是数据库管理中的重要环节,它确保了数据的安全性和可恢复性,尤其是在发生意外情况如系统故障、硬件损坏或人为错误时。本教程将详细讲解如何设置MySQL数据库的自动定时备份,包括步骤、所...
mysql数据库定期自动备份的shell脚本。如定期每三天自动备份数据库,并只保存20份备份文件,多余的删除。
以下是一些关于如何创建和使用MySQL自动备份shell脚本的详细说明: 首先,我们需要一个能够执行备份、压缩、清理旧备份并(可选地)将备份文件传输到远程位置或发送电子邮件通知的脚本。以下两个示例提供了不同选项...
在这个场景下,shell脚本用于自动化备份MySQL数据库,节省手动操作的时间和精力。 MySQL是世界上最流行的开源关系型数据库管理系统,5.7.8版本是在其发展历史中一个重要的里程碑。在该版本之前,数据库的备份主要...
总结来说,“mysql数据库备份脚本”是一个用于自动化MySQL数据库备份的shell脚本,通过定时任务(如cron)执行,它允许用户指定备份的存储路径,以确保数据安全并易于管理。了解和掌握如何创建和配置这样的脚本,...
在IT行业中,数据库备份是确保数据安全和业务连续性的...通过结合Xtrabackup和Shell脚本,IT管理员可以构建出一个高效、可靠的MySQL数据库备份解决方案,确保即使在面临数据丢失或系统故障时,也能快速恢复业务运行。
MySQL备份的自动执行脚本,以及MySQL的计划任务,里面的内容都是自己写的,如有用到,记得改一下脚本里的内容,逻辑及格式正确,自己改一下参数就能用。