随着官网和bbs逐步全面上线,数据库备份的工作也应该全面展开了,虽然数据量不是很大,但也要重视起来。
下面是脚本:
#!/bin/bash
#每天备份一次,并删除7天前备份的旧数据
#数据库配置信息
db_user=******
db_passwd=******
db_host=localhost
#备份目录
backup_dir=/home/database/
#获取当前时间
time=`date +%Y%m%d`
#mysql命令
MYSQL=/opt/mysql/bin/mysql
MYSQLDUMP=/opt/mysql/bin/mysqldump
#测试备份目录是否可写,如果不可写就报错退出
test ! -w $backup_dir && echo "Error: $backup_dir is un-writeable." && exit 0
#测试备份目录中最新备份文件夹是否存在,如果不在就创建
test ! -d "$backup_dir/backup.0/" && mkdir "$backup_dir/backup.0"
#制定要备份的数据库
for db in bbs home
do
$MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db | gzip -6 > "$backup_dir/backup.0/$db.$time.sql.gz"
done
#检测最旧的备份数据库是否存在,如果在就删掉
test -d "$backup_dir/backup.7/" && rm -rf "$backup_dir/backup.7"
#循环修改备份数据库目录的编号,记录新旧程度
for int in 6 5 4 3 2 1 0
do
if(test -d "$backup_dir"/backup."$int")
then
next_int=`expr $int + 1`
mv "$backup_dir"/backup."$int" "$backup_dir"/backup."$next_int"
fi
done
exit 0;