1. 创建备份目录
cd /home
mkdir backup
cd backup
mkdir data
mkdir bin
2.创建备份脚本(在/home/backup/bin/下)
vim mysql_backup.sh
添加一下内容 /home/zhsq/mysql-5.5.41/bin/mysqldump要使用全路径,具体路径通过find /name mysqldump查询
#!/bin/bash
/home/zhsq/mysql-5.5.41/bin/mysqldump -uroot -p123456 test > /home/backup/data/test_$(date +%Y%m%d_%H%M%S).sql
#删除7天之前的备份文件
find $backupdir -name $db_name"a*.sql.gz" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1
如果数据量比较大,可以用以下脚本
#!/bin/bash
#备份地址
backupdir=/home/backup/data
#备份文件后缀时间
time=_` date +%Y%m%d_%H%M%S `
#需要备份的数据库名称
db_name=test
#mysql 用户名
db_user=root
#mysql 密码
db_pass=123456
#mysqldump命令使用绝对路径
dump_path=/home/zhsq/mysql-5.5.41/bin/mysqldump
#进行备份
$dump_path -u$db_name -p$db_pass | gzip > $backupdir/$db_name$time.sql.gz
#删除7天之前的备份文件
find $backupdir -name $db_name"*.sql.gz" -type f -mtime +7 -exec rm -rf {} \; > /dev/null 2>&1
3.添加权限
chmod +x mysql_backup.sh
4.添加定时任务
crontab -e
添加一下内容
0 * * * * ? /home/backup/bin/mysql_backup.sh
每分钟执行一次,生产上可以每天执行一次 0 0 2 * * ?
5.重启crond服务
service crond restart
查看日志
tail -f /var/log/cron
6.恢复
mysql -uroot -p123456 test < ./test_20190606_152200.sql
把备份文件恢复到test库里