上线后的项目每天数据库的备份是很必要的,以下是linux如何实现数据库的自动备份。
1.查看磁盘空间
首先查看一下那个磁盘的空间比较大,用来存放备份的数据库文件,避免出现因空间不足导致备份失败,数据丢失的恶果!
2.创建备份目录
此处我们使用root来存放备份文件,在root下创建文件夹backup来存放备份文件
#cd root
#mkdir backup
#cd backup
3.创建备份脚本
在backup下输入命令 vi bkDatabaseName.sh ,注意把以下命令中的DatabaseName换为要备份的数据库名称;
[root@localhost backup]# vi bkDatabaseName.sh
进入编辑后复制粘贴以下内容
mysqldump -uusername -ppassword DatabaseName > /root/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql (此处是生成的备份文件)
mysqldump -uusername -ppassword DatabaseName | gzip > /root/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz (此处是将备份文件压缩后生成的压缩文件)
注意:
把 username 替换为实际的用户名;
把 password 替换为实际的密码;
把 DatabaseName 替换为实际的数据库名;
4.添加可执行权限
接下来添加可执行权限
chmod u+x bkDatabaseName.sh
添加可执行权限之后先执行一下,看看脚本有没有错误,能不能正常使用;在backup文件下执行脚本
./bkDatabaseName.sh
执行成功变可以在backup文件夹下看到生成的备份文件
5.添加定时任务
首先查看系统是否安装了crontab
在命令行中输入crontab -h后回车没有安装如下图所示
# crontab
-bash: crontab: command not found
安装过如下图所示
如果没有安装请参考下方链接进行安装
安装成功crontab后执行命令
crontab -e
会进入编辑页面,此时输入一下代码进行编辑 。
0 0 18 * * ?(此处为cron表达式,设置数据库在何时进行备份,此处可根据情况自行设置) /root/backup/bkDatabaseName.sh
0 0 18 * * ? /root/backup/bkDatabaseName.sh
保存并退出后数据库即可定时自动备份。