linux系统如何实现mysql数据库每天自动备份数据库

1、查看磁盘空间大小,选取备份路径

df -h 

在这里插入图片描述
home空间是很充足。
2、新建备份目录

cd /home 
mkdir backup
cd backup

3、创建备份Shell脚本
创建文件XXX可以命名为数据库的名字

vi   backupXXX.sh 

在sh文件中编辑以下内容(全量导出):导出备份文件为SQL文件

mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql

若导出为压缩文件,则编辑为以下内容:

mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz

4、磁盘空间毕竟有限,可删除之前备份的文件,留下最近备份的即可

#删除7天之前的备份
find /home/backup -name "eco*.sql.gz" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&l

#删除5分钟之前的备份
find /home/backup -name "eco*.sql.gz" -type f -mmin +5 -exec rm -rf {} \; > /dev/null 2>&l

5、保存退出

先Esc键,:wq保存退出编辑

6、添加可执行权限

chmod u+x backupXXX.sh

7、执行下脚本

./backupXXX.sh

8、出现警告:很多资料说出现此警告时备份会失败,却没有出现失败的情况,文件备份成功了
在这里插入图片描述
9、添加定时任务
执行命令

crontab -e

没有提示错误,说明crontab已安装,报错的自行安装
编辑定时任务

*/1 * * * * /home/backup/backupXXX.sh

没分钟执行一次Shell脚本,备份文件

10、可以去backup目录下查看是否有新备份的文件生成
也可以查看任务日志

tail -f /var/log/cron

最终配置:

mysqldump -uroot -pong!8 ec | gzip > /home/backup/ec_$(date +%Y%m%d_%H%M%S).sql.gz
find /home/backup -name "ec*.sql.gz" -type f -mtime +30 -exec rm -rf {} \; > /dev/null 2>&1
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值