[三星]写一个备份MySQL数据库到邮件的脚本
- oneleaf
- 论坛管理员
- 帖子: 10448
- 注册时间: 2005-03-27 0:06
- 系统: Ubuntu 12.04
[三星]写一个备份MySQL数据库到邮件的脚本
1 任务内容: 写一个支持拆分的备份MYSQL数据库到邮件的脚本。
2 任务的难度: 三星
3 任务的目的: 学习 Linux 下脚本以及邮件
4 任务所涉及的软件: mutt
5 任务将大致消耗的时间: 1天
2 任务的难度: 三星
3 任务的目的: 学习 Linux 下脚本以及邮件
4 任务所涉及的软件: mutt
5 任务将大致消耗的时间: 1天
- oneleaf
- 论坛管理员
- 帖子: 10448
- 注册时间: 2005-03-27 0:06
- 系统: Ubuntu 12.04
Re: [三星]写一个备份MySQL数据库到邮件的脚本
代码: 全选
#!/bin/bash
#Write by oneleaf@gmail.com
#数据库服务器地址
DBHOST=localhost
#数据库登录名
USERNAME=root
#数据库密码
PASSWORD=
#需要备份的数据库 或 输入类似 db1 db2 的列表清单
DBNAMES="all"
#备份MYSQL时生成CREATE数据库语句
CREATE_DATABASE="yes"
#备份的目录
BACKUPDIR="/tmp/mysqlbackup"
#发生到邮件的地址
MAILADDR="test@example.com"
#邮件最大附件尺寸2M
MAILMAXATTSIZE="2000000"
#当前备份日期和时间
DATE=`date +%Y-%m-%d_%H_%M`
OPT="--quote-names --opt"
#检查备份路径是否存在,不存在则建立
if [ ! -e "${BACKUPDIR}" ]; then
mkdir -p "${BACKUPDIR}"
fi
#删除备份路径下的所有文件
rm -fv ${BACKUPDIR}/*
#检查是否需要生成CREATE数据库语句
if [ "${CREATE_DATABASE}" = "yes" ]; then
OPT="${OPT} --databases"
else
OPT="${OPT} --no-create-db"
fi
#检查是否是备份所有数据库
if [ "${DBNAMES}" = "all" ]; then
DBNAMES="--all-databases"
fi
BACKUPFILE=${DATE}.sql.gz
cd ${BACKUPDIR}
#备份数据库
`which mysqldump` --user=${USERNAME} --password=${PASSWORD} --host=${DBHOST} ${OPT} ${DBNAMES} |gzip > "${BACKUPFILE}"
#获取备份文件的尺寸
BACKFILESIZE=`du -b ${BACKUPFILE}|sed -e "s/\t.*$//"`
#检查是否需要分割
if [ ${BACKFILESIZE} -ge ${MAILMAXATTSIZE} ]; then
#分割数据库,合并使用 cat ${BACKUPFILE}.* > ${BACKUPFILE}
`which split` -b ${MAILMAXATTSIZE} ${BACKUPFILE} ${BACKUPFILE}.
for BFILE in ${BACKUPFILE}.*
do
echo "Backup Databases: ${DBNAMES}; Use cat ${BACKUPFILE}.* > ${BACKUPFILE}" | mutt ${MAILADDR} -s "MySQL Backup SQL Files for ${HOST} - ${DATE}" -a "${BFILE}"
done
else
echo "Backup Databases: ${DBNAMES}" | mutt ${MAILADDR} -s "MySQL Backup SQL Files for ${HOST} - ${DATE}" -a "${BACKUPFILE}"
fi
- leeaman
- 帖子: 30702
- 注册时间: 2007-02-02 18:14
- 系统: debian sid
- oneleaf
- 论坛管理员
- 帖子: 10448
- 注册时间: 2005-03-27 0:06
- 系统: Ubuntu 12.04
Re: [三星]写一个备份MySQL数据库到邮件的脚本
刚好写了一个,于是贴出来,供参考, 呵呵
- 枫叶饭团
- 帖子: 14683
- 注册时间: 2010-06-16 1:05
- 系统: Mac OS X
- 来自: Tencent
- 联系:
Re: [三星]写一个备份MySQL数据库到邮件的脚本
好东西mark。
- 月下叹逍遥
- 论坛版主
- 帖子: 33994
- 注册时间: 2010-10-07 14:23
- 系统: Archdows10
- 来自: 某系某星某洲某国某省某市
- 联系:
Re: [三星]写一个备份MySQL数据库到邮件的脚本
浮生七十今三十,从此凄惶未可知
- wean
- 帖子: 686
- 注册时间: 2007-04-23 14:47
- 系统: Gentoo
- 来自: 常熟
- 联系:
- yjcong
- 帖子: 2470
- 注册时间: 2006-02-28 3:11
Re: [三星]写一个备份MySQL数据库到邮件的脚本
是啊, 为什么不用mail命令加"-a file"的参数呢?
一梦三年,
松风依旧,
萝月何曾老.
灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
松风依旧,
萝月何曾老.
灵幽听微, 谁观玉颜?
灼灼春华, 绿叶含丹.
-
- 帖子: 1
- 注册时间: 2011-07-29 12:14
Re: [三星]写一个备份MySQL数据库到邮件的脚本
看的头晕眼花
- shinelynn
- 帖子: 78
- 注册时间: 2010-09-26 22:54
- 来自: 安徽合肥
- 联系:
-
- 帖子: 3
- 注册时间: 2011-11-11 15:59
- mswwjick
- 帖子: 645
- 注册时间: 2009-01-28 21:42
Re: [三星]写一个备份MySQL数据库到邮件的脚本
pocoyo 写了:依旧看不懂。
- liu滔
- 帖子: 7212
- 注册时间: 2010-10-09 23:01
Re: [三星]写一个备份MySQL数据库到邮件的脚本
我表示没看懂这个题目