定时备份云端数据库
2022/2/5 2:15:51
本文主要是介绍定时备份云端数据库,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在Linux服务器环境维护中,通常会mysqldump命令来备份数据库,通常命令如下
mysqldump -uusername -ppassword --databases databasename > dumpfilename
基于上述命令,我们可以将导出的sql文件进行压缩和管理,编写为shell脚本后,整体shell脚本如下
#!/bin/bash BakDir=/home/bak/mysql-back/database-back LogFile=/home/bak/mysql-back/mysql_buckup.log Date=`date +%Y%m%d` Begin=`date +"%Y年%m月%d日 %H:%M:%S"` # 修改为自己的数据库名称 DB=database DumpFile=$DB$Date.sql GZDumpFile=$DB-$Date.sql.tar.gz # 检查备份目录是否存在 if [ -d "$BakDir" ] then echo "[INFO]开始执行数据库备份程序" else sudo mkdir $BakDir fi # 下面的/usr/bin是mysql安装目录的bin目录,如果你修改过直接使用你的目录即可 # 执行备份命令 cd $BakDir # 此处修改为自己的root用户密码 echo "[INFO] /usr/bin/mysqldump -uroot -ppassword --databases $DB > $DumpFile" >> $LogFile /usr/bin/mysqldump -uroot -ppassword --databases $DB > $DumpFile mv $DumpFile $BakDir cd $BakDir # 对备份数据进行压缩 echo "[INFO] tar czvf $GZDumpFile $DumpFile" >> $LogFile tar czvf $GZDumpFile $DumpFile # 删除备份的sql文件 echo "[INFO] rm $DumpFile" >> $LogFile rm $DumpFile # 备份 备份的sql文件到指定目录 echo "[INFO] mv $GZDumpFile $BakDir" >> $LogFile mv $GZDumpFile $BakDir Last=`date +"%Y年%m月%d日 %H:%M:%S"` echo 开始:$Begin 结束:$Last $GZDumpFile 执行成功 >> $LogFile #清理备份,保留30天的备份 find $BakDir/* -mtime +30 -exec rm {} \; echo "[INFO]备份任务执行结束"
检验:
使用 shmod 777 bakmysql.sh
来使文件变成可执行文件,使用./bakmysql.sh
来执行此文件,执行之后可以在自己定义的备份目录下找到备份成功的压缩包
定时任务
Linux服务器中一般使用crontab来自动执行定时任务。
查看cron表达式的一些基本命令
service crond start //启动服务 service crond stop //关闭服务 service crond restart //重启服务 service crond reload //重新载入配置 service crond status //查看服务状态
使用service crond start
来开启服务
使用 vi /etc/crontab
来查看配置文件(不要在此处进行配置任务,此处类似于是crontab的说明书)
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed
# 进入crontab的编辑配置 crontab -e # 此处配置的意思为每天晚上七点半定时执行shell文件 30 19 * * * /home/bak/mysql-back/bakmysql.sh # 通过crontab -l查看已配置的定时任务 crontab -l
使用service crond reload
对crontab进行重新载入
这篇关于定时备份云端数据库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南