网站首页 | 控制面板 | 短消息 | 搜索 | 会员 | 帮助 | 社区 | 首页 | 无图版


常州五颜六色网络技术有限公司 -> 技术文档 -> 简单的数据库自动定期备份的脚本 转到动态网页

--> 本页主题: 简单的数据库自动定期备份的脚本 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题
deserts


头衔:大客部大客部

级别: 总版主
精华: 0
发帖: 315
威望: 2 点
金钱: 579 RMB
贡献值: 0 点
在线时间:282(小时)
注册时间:2006-01-01
查看作者资料 发送短消息 发送邮件 推荐此帖 引用回复这个帖子


简单的数据库自动定期备份的脚本

好长时间没写shell了,这几天捡一捡,复习一下,忽然想起写个程序来代替那个人
的重复性工作了,于是就试着写了一个简单的脚本,测试了一下,还真的行得通。

说明:

  保留每天备份的数据是件不太现实的事,做好的做法是保留前三天的
备份数据。把备份的数据打包并压缩,文件名以系统时间命名,打包后的
备份文件放在一个特定的文件夹下面,实际上,只要是以时间命名备份文件,
ls 命令后,文件将自动按时间排序的,这样就可以方便的删除三天以前的备份文件,于是
就保证了服务器上每天都保留着最近三天的数据库备份

QUOTE:
#/usr/bin/dbbackup
#! /bin/bash
dbsum=$#
if [ "${dbsum}" -eq 0 ];then
echo "Error:no database chosed"
exit 1
fi
mkdir -p /backup/
backdir=/backup/
touch /var/log/dbbackup.log
datetime=`date +"%Y%m%d"`
filesum=`ls ${backdir} | wc -l`
if [ "${filesum}" -ge 3 ];then
cd ${backdir}
rm -rf `ls | head -1`
fi
cd /usr/local/mysql/bin
for i in $*;do
echo "backing up for database $i starting ..."
mysqldump -uroot -ppassword -e --default-character-set=utf8 $i > ${backdir}$i.sql
echo "backing up for database $i completed"
done
echo "tar and gzip the backed file now ..."
cd ${backdir}
tar -c *.sql | gzip >./${datetime}.tar.gz
rm -rf *.sql
echo "all success ! you can find the backed file in ${backdir} suffixed by .tar.gz"
exit 0


编辑crontab,每晚11:30备份数据
crontab -e 加入如下内容:

QUOTE:
30 23 * * * /usr/bin/dbbackup dbname1 dbname2 > /var/log/dbbackup.log 2>&1


常州五颜六色网络技术有限公司(5y6s Inc.)
旗下网站:5y6s Inc. | 五颜六色网 | 常州人社区

常州电信/网通机房,100M共享/10M独享/1000M共享/100M独享/电信+网通双线路服务器托管

Tel:0519-86605212 QQ:8732391   5y6s Inc.
[楼 主] Posted:2007-10-09 00:36| 顶端


 常州五颜六色网络技术有限公司 -> 技术文档


快速发帖 顶端
内容
HTML 代码不可用

使用签名
Wind Code自动转换

[查看帖子长度]
标题:
表情:


     按 Ctrl+Enter 直接提交   


[ 常州五颜六色网络技术有限公司 ]
Copyright © 2005-2007 5y6s Inc. 苏ICP备05001866号 Powered by PHPWind 5.0.1

☏:0519-6605212 QQ: 点击这里给我发消息 /点击这里给我发消息 /点击这里给我发消息