备份mysql数据库脚本。
手动创建目录/var/backups/mysqldata 也可以自定义,只需修改变量backup_dir的值即可。
#!/bin/bash
#mysql备份脚本
database=test001
mysql_user=root
mysql_password=123.com
backup_dir=/var/backups/mysqldata
name=`date "+%Y_%m_%d"`
for i in $database
do
[ -d ${backup_dir}/${i} ] || mkdir ${backup_dir}/${i}/
mysqldump -u$mysql_user -p$mysql_password --database $i > ${backup_dir}/${i}/${i}_${name}.sql
file_n=`ls ${backup_dir}/${i}/ | wc -l`
rm_file=`ls -l ${backup_dir}/${i}/ | head -2 | tail -1 | awk ‘{print $9}‘`
if [ $file_n -gt 3 ]
then
rm -f ${backup_dir}/${i}/$rm_file
fi
done#!/bin/bash
#mysql备份脚本
database=test001 #定义要备份的数据库,以空格隔开
mysql_user=root #定义备份数据库使用的用户
mysql_password=123.com #定义用户密码
backup_dir=/var/backups/mysqldata #定义备份到的目录
name=`date "+%Y_%m_%d"` #定义备份名称后缀,这里以时间为后缀
for i in $database
do
[ -d ${backup_dir}/${i} ] || mkdir ${backup_dir}/${i}/
#判断是否有数据库同名目录,若没有则创建一个
mysqldump -u$mysql_user -p$mysql_password --database $i > ${backup_dir}/${i}/${i}_${name}.sql
#使用mysqldump对数据库进行备份
file_n=`ls ${backup_dir}/${i}/ | wc -l`
#查看一个备份目录下文件个数
rm_file=`ls -l ${backup_dir}/${i}/ | head -2 | tail -1 | awk ‘{print $9}‘`
#查看备份目录下第一个文件名,我这里查看的是第二行,因为使用ls -l的话,第一行显示的目录详情
if [ $file_n -gt 30 ]
#判断如果一个备份目录中的备份文件数是否大于30个
then
rm -f ${backup_dir}/${i}/$rm_file
#如果文件数大于30个的话,则删除第一个文件,可以理解为最多保留三十天的备份文件
fi
done
在crontab中写入计划任务,每天执行一次脚本即可。
本文出自 “西门吹牛” 博客,请务必保留此出处http://taixin.blog.51cto.com/11725086/1828377
原文地址:http://taixin.blog.51cto.com/11725086/1828377