备份数据脚本
#!/bin/bash
#date是linux的一个命令date[参数][+格式]
time=`date+%Y_%m_%d_%H_%M_%S`
#备份输出路径
backupdir=/home/backup/
#备份文件路径
filedir=/home/my_app/files/
#用sql语句取出所有以'test'开头的数据库。将指令通过管道传递给mysql客户端;-N表示不输出结果的表头及结尾,得到的结果是纯粹的数据集
databases=(`echo'showdatabaseslike"test%";'|mysql-N-uroot-proot`)
#将mysqldump的输出文件通过管道传给gzip压缩,gzip是不能保存原文件且不能压缩目录的
mysqldump-uroot-proot--databases${databases[*]}|gzip>$backupdir/$time.sql.gz
#备份文件。zip[压缩输出文件][被压缩文件]
zip-r$backupdir/$time.zip$filedir
#删除7天前的备份文件
find$backupdir-mtime+7-name"*"-execrm-rf{}\;
然后设置crontab在每天凌晨运行备份脚本即可
数据恢复
mysql-uroot-pDATABESE_NAME<dump.sql
或者连接mysql客户端
mysql>sourcedump.sql
|