这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。
#Setting
#设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,及备份方式
#默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy
#默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz
引用:#!/bin/bash
#This is a ShellScript For Auto DB Backup
#Powered by aspbiz
#Setting
DBName=mysql
DBUser=root
DBPasswd=
BackupPath=/root/
LogFile=/root/db.log
DBPath=/var/lib/mysql/
#BackupMethod=mysqldump
#BackupMethod=mysqlhotcopy
#BackupMethod=tar
#Setting End
NewFile="$BackupPath"db$(date +%y%m%d).tgz
DumpFile="$BackupPath"db$(date +%y%m%d)
OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz
echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
#Delete Old File
if [ -f $OldFile ]
then
rm -f $OldFile >> $LogFile 2>&1
echo "[$OldFile]Delete Old File Success!" >> $LogFile
else
echo "[$OldFile]No Old Backup File!" >> $LogFile
fi
if [ -f $NewFile ]
then
echo "[$NewFile]The Backup File is exists,Can't Backup!" >> $LogFile
else
case $BackupMethod in
mysqldump)
if [ -z $DBPasswd ]
then
mysqldump -u $DBUser --opt $DBName > $DumpFile
else
mysqldump -u $DBUser -p$DBPasswd --opt $DBName1 > $DumpFile
fif
tar czvf $NewFile $DumpFile >> $LogFile 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
rm -rf $DumpFile
;;
mysqlhotcopy)
rm -rf $DumpFile
mkdir $DumpFile
if [ -z $DBPasswwd ]
then
mysqlhotceopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1
else
mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1
fi
tar czvf $NewFile $DumpFile >> $LogFile 2>&
echo "[$NewFile]Backup Success!" >> $Log1File
rm -rf $DumpFile
;;
*)
/etc/init.d/mysqld stop >/dev/null 2>&1
tar czvf $NewFile $DBPath$DBName >> $LogFlile 2>&1
/etc/init.d/mysqld start >/dev/null 2>&1
echo "[$NewFille]Backup Success!" >> $LogFile
;;
esac
fi
echo "-------------------------------------------" >> $LogFile
gy1226721126 于 2012-12-23 21:24:13发表:
好用吗?
wonderful5115 于 2012-05-17 09:49:36发表:
学习中
admin_hl 于 2011-12-31 13:40:30发表:
支持下
admin_hl 于 2011-12-31 13:40:29发表:
支持下
admin_hl 于 2011-12-31 13:40:29发表:
支持下
davemac 于 2011-08-13 23:33:42发表:
不错 学习了 。。。
lxy811026 于 2011-08-11 11:48:50发表:
好好研究下
ftd505 于 2011-04-18 15:22:23发表:
好
lting 于 2011-04-14 15:12:09发表:
不错
lting 于 2011-04-14 15:12:05发表:
不错
wurr707 于 2010-09-01 15:50:30发表:
如果利用xml文件来备份指定的表改怎么做呢
jihy 于 2010-08-10 11:23:53发表:
继续顶。。。
6shao 于 2010-05-23 12:52:40发表:
先收藏了,改天认真研究一下
残云断梦 于 2010-05-16 20:50:24发表:
这样的好帖,得顶,
bob.wu 于 2010-04-27 17:42:13发表:
这个实用主义,谢谢
默念那份爱 于 2010-03-01 15:24:37发表:
谢谢分享
helen1985125 于 2010-02-08 10:08:23发表:
感谢,学习中。。。
panda6401 于 2010-02-03 15:52:38发表:
我自己编写了一个shell脚本mysql.sh
里面复制你上面的内容
修改了crontab配置文件
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
49 15 * * * root run-parts /etc/mysql.sh
15:49 我设置的自动备份时间
怎么无法自动备份?
panda6401 于 2010-02-03 15:38:45发表:
我先下载下来 试试看
guocuily 于 2009-11-30 18:23:34发表:
支持
jiehui520 于 2008-01-12 22:59:10发表:
不错