linux使用crontab定时备份MYSQL数据库/表

earnpls • 551 次浏览 • 0 个回复 • 2018年03月08日

一、创建备份存储文件:

mkdir /var/mysqlbackup 
cd /var/mysqlbackup

二、编写数据库备份shell代码dbbackup.sh并且压缩数据库

粘帖以下代码到dbbackup.sh,务必更改其中的username,password,dbname,tablename;如果要备份整个数据库,删除tablename即可,如果要备份多张表,多写几个tablename即可。

#!/bin/sh
# 这里会使用zip压缩备份的数据库文件
mysqldump -uusername -ppassword dbname | gzip > /var/mysqlbackup/dbname`date +%Y-%m-%d_%H%M%S`.sql.gz
# 备份表以及多张表
# mysqldump -uusername -ppassword dbname tablename1 tablename2 tablename3 | gzip > /var/mysqlbackup/dbname`date +%Y-%m-%d_%H%M%S`.sql.gz
cd  /var/lib/mysqlbackup
# 删除10天前的备份文件,可自定义时间
rm -rf `find . -name '*.sql.gz' -mtime 10`

三、更改备份脚本权限,允许程序执行

chmod +x dbbackup.sh

四、用crontab定时执行备份脚本代码

crontab -e

比如我们每天晚上21点00备份数据库,可以使用添加如下代码:

00 21 * * * /var/mysqlbackup/dbbackup.sh

然后重启一下我们的cron,具体参考自己的服务器,ubuntu重启如下:

sudo service cron restart

原创文章,转载请注明 :linux使用crontab定时备份MYSQL数据库/表 - Laravel学习网
原文出处: https://phpartisan.cn/news/83.html
问题交流群 :168117787
提交评论
要回复文章请先登录注册
用户评论
  • 没有评论
[ 配置教程 ] 在ubuntu16.04中部署LNMP环境(php7+maridb且开启maridb远程以及nginx多域名访问 )并配置laravel环境 laravel5.* 关闭指定路由的CsrfToken与常见csrf错误分析