MySQL在CentOS上执行自动备份

img

​ 开发中咱们经常有使用Svn或者Git来管理咱们的代码或者是项目相关的文件,然而他们都有一个共同点就是:版本控制mysql

​ 不少人会问为何要使用Svn或者是Git,那么我会问:我相信你写的代码很好,可是有一天你修改了不少不少的Bug,可是忽然想到之前的代码中有一个比较重要的算法你不当心覆盖掉了,这时候你应该怎么办?算法

​ 或许你会告诉我你能够在修改这些代码以前备份一次当前修改的文件,或者是当前项目。sql

​ 可是时间久了你的机器上会有多少备份文件呢?数据库

​ 若是有一天你的同事须要回滚到以前的代码看一下那时候Bug的缘由,你会从你的机器上找到指定时间的文件发给他嘛?服务器

​ 固然不是,咱们有Svn或者是Git以后咱们能够方便的看到文件以前的版本,还能够方便的对比。那么如今清楚了版本控制的重要性了。markdown

​ 一样数据库也是这样,咱们的系统99%都离不开数据库,由于咱们总要把数据存储起来。oop

​ 那若是咱们数据库被误删、被黑客入侵、被恶意修改怎么办?spa

​ 那么咱们能够试着让咱们的服务器自动来帮咱们备份数据库的数据到指定位置,万一有一天咱们的数据库不当心手抖了,咱们还能够用备份下来的数据库脚本直接恢复。版本控制

​ 上脚本:rest

# db username
db_user="test"  
# db password
db_passwd="test"
# db host
db_host="121.201.5.216"
# backup db name
db_name="Alterem"  
# the directory for story your backup file.  
backup_dir="backup"  cd 
# date format for backup file (dd-mm-yyyy)  
time="$(date +"%Y-%m-%d-%H-%M-%S")"  
# mysql, mysqldump and some other bin's path  
MYSQL="/usr/local/mysql/bin/mysql"  
MYSQLDUMP="/usr/local/mysql/bin/mysqldump"  
GZIP="/bin/gzip"  
  
$MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db_name | $GZIP -9 > "/data/backup/$backup_dir/$db_name"_"$time.gz"复制代码

建立定时器

crontab -e复制代码

添加定时器

# 天天凌晨 1 点 30 分 进行数据备份
30  1  *  *  * /root/mysql-backup.sh复制代码

重启定时器

/etc/rc.d/init.d/crond restart复制代码

cron解析

# 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复制代码

在线Cron表达式生成器:http://cron.qqe2.com/

本文由博客一文多发平台 OpenWrite 发布!

相关文章
相关标签/搜索