中华网络安全联盟 收藏本站
设为主页
商务合作
首页 新闻中心 行业动态 软件新闻 安全资讯 病毒预警 漏洞发布 操作系统 Dos Win9x Win2000 WinXP Win2003 WinVista Linux Unix
数据库 DB2 Access MSSQL MySQL Oracle Sybase 编程技术 ASP PHP JSP CGI/Perl XML .Net C/C++/C# VB VC Delphi Java 汇编
安全技术 安全教学 工具介绍 漏洞利用 病毒防范 入侵检测 防火墙 安全防范 汉化破解 攻击实例 加密解密 进程知识 技术论坛
奇趣美女图片网 >> 数据库 >> MySQL >> 写了个简单的数据库自动定期备份的脚本
数据库
Access
SQL Server
MySQL
DB2
Oracle
Sybase
如何修改遗失MYSQL的R
MSSQL数据库日志压缩/
MS-SQL数据库开发常用
验证DB2数据库的备份成
Linux下安装支持ssl连
在同一台机运行多个My
我的MYSQL安装笔记拿出
SQL Server 2005数据库
写了个简单的数据库自动定期备份的脚本
字体:

奇趣美女图片网    作者:jacoo    来源:本站原创    时间:2006-4-18

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

说明:

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


#/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 加入如下内容:

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

字体:
 
设为主页 收藏本站 联系我们 友情连接 商务合作 网友留言
Copyright©2006-2008 中华网络安全联盟 All rights reserved.