Mysql备份到Windows共享路径中
2017-04-07 12:46
369 查看
作为一名不资深的运维工程师和python爱好者,一定要学习一下MySQL。
下面简单的实现了一下如何将MySQL的数据库备份到一个远程Windows服务器当中。
首先需要在Windows(IP:192.168.1.5)上面创建一个共享路径:在D盘下面创建一个目录名为HugoShare,在HugoShare目录的属性中点击Share选项卡,在下拉框中找到Everyone,然后点击Add添加到共享用户组中,在权限中选择Read/Write,再Share一下。在Securiy选项卡中找到Everyone这个用户,看看他对这个目录的权限是不是Full,如果不是编辑一下,为了方便起见,先设置成Full。这个时候,你的\\192.168.1.5\HugoShare应该是可以被任何人访问的。
在MySQL服务端中测试一下上面的共享目录是否能挂载
首先创建一个目录,mkdir /mnt/HugoShare/,然后安装cifs工具,apt-get install cifs-utils 安装完成输入下面命令mount.cifs //192.168.1.5/HugoShare /mnt/HugoShare -o user="hugo",pass="woaini"。如果挂载成功会返回0,echo $?就会显示0。也可以mount -l | grep "/mnt/HugoShare"看一下是不是真的挂载上了。
貌似准备工作已经完成,接下来就写一个脚本
#!/bin/bash
# mysql数据库备份脚本
# 数据库配置
USERNAME=root
PASSWORD="woaini"
DATABASE="hugo"
HOSTNAME="localhost"
# 备份选项配置
BACKUP_SERVER="//192.168.1.5/HugoShare/"
BACKUP_SERVER_OPTIONS="user=zed,pass=woaini"
BACKUP_DIR=/mnt/HugoShare
LOGFILE=$BACKUP_DIR/backup.log
DATE=`date '+%Y%m%d-%H%M'`
DUMPFILE=$DATE.bak.sql
ARCHIVE=$DATE.bak.sql.tgz
OPTIONS="-h$HOSTNAME -u$USERNAME -p$PASSWORD $DATABASE"
# 检查备份目录是否存在
if [ ! -d $BACKUP_DIR ] ;
then
mkdir -p $BACKUP_DIR
fi
# 检查windows目录是否挂载
mount -l | grep $BACKUP_DIR > /dev/null 2>&1
if [ $? == 1 ]
then
mount.cifs $BACKUP_SERVER $BACKUP_DIR -o $BACKUP_SERVER_OPTIONS
echo " ==================" >> $LOGFILE
echo "Windows netshare mounted:$BACKUP_SERVER" >> $LOGFILE
fi
# 日志功能
echo " " >> $LOGFILE
echo "====================" >> $LOGFILE
echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S") >> $LOGFILE
echo "==================== " >> $LOGFILE
# 备份并归档
cd $BACKUP_DIR
mysqldump $OPTIONS > $DUMPFILE
if [ $? == 0 ] ;
then
tar czvf $ARCHIVE $DUMPFILE >> $LOGFILE 2>&1
echo "[$ARCHIVE] backup successful!" >> $LOGFILE
rm -f $DUMPFILE
else
echo "Backup failed " >> $LOGFILE
fi
脚本添加执行权限chmod 777 mysql_dump.sh 看看效果。
可以改进的地方:
接下来的工作就是设置Windows共享目录的安全,指定用户访问。其次就是修改一下脚本,指定备份的整个数据库还是备份单个表,可以在crond中添加计划任务,并且设置日志的轮询工作。更好的方式是设置日志转发邮件的功能。
初次结识shell和MySQL。多多指教!
下面简单的实现了一下如何将MySQL的数据库备份到一个远程Windows服务器当中。
首先需要在Windows(IP:192.168.1.5)上面创建一个共享路径:在D盘下面创建一个目录名为HugoShare,在HugoShare目录的属性中点击Share选项卡,在下拉框中找到Everyone,然后点击Add添加到共享用户组中,在权限中选择Read/Write,再Share一下。在Securiy选项卡中找到Everyone这个用户,看看他对这个目录的权限是不是Full,如果不是编辑一下,为了方便起见,先设置成Full。这个时候,你的\\192.168.1.5\HugoShare应该是可以被任何人访问的。
在MySQL服务端中测试一下上面的共享目录是否能挂载
首先创建一个目录,mkdir /mnt/HugoShare/,然后安装cifs工具,apt-get install cifs-utils 安装完成输入下面命令mount.cifs //192.168.1.5/HugoShare /mnt/HugoShare -o user="hugo",pass="woaini"。如果挂载成功会返回0,echo $?就会显示0。也可以mount -l | grep "/mnt/HugoShare"看一下是不是真的挂载上了。
貌似准备工作已经完成,接下来就写一个脚本
#!/bin/bash
# mysql数据库备份脚本
# 数据库配置
USERNAME=root
PASSWORD="woaini"
DATABASE="hugo"
HOSTNAME="localhost"
# 备份选项配置
BACKUP_SERVER="//192.168.1.5/HugoShare/"
BACKUP_SERVER_OPTIONS="user=zed,pass=woaini"
BACKUP_DIR=/mnt/HugoShare
LOGFILE=$BACKUP_DIR/backup.log
DATE=`date '+%Y%m%d-%H%M'`
DUMPFILE=$DATE.bak.sql
ARCHIVE=$DATE.bak.sql.tgz
OPTIONS="-h$HOSTNAME -u$USERNAME -p$PASSWORD $DATABASE"
# 检查备份目录是否存在
if [ ! -d $BACKUP_DIR ] ;
then
mkdir -p $BACKUP_DIR
fi
# 检查windows目录是否挂载
mount -l | grep $BACKUP_DIR > /dev/null 2>&1
if [ $? == 1 ]
then
mount.cifs $BACKUP_SERVER $BACKUP_DIR -o $BACKUP_SERVER_OPTIONS
echo " ==================" >> $LOGFILE
echo "Windows netshare mounted:$BACKUP_SERVER" >> $LOGFILE
fi
# 日志功能
echo " " >> $LOGFILE
echo "====================" >> $LOGFILE
echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S") >> $LOGFILE
echo "==================== " >> $LOGFILE
# 备份并归档
cd $BACKUP_DIR
mysqldump $OPTIONS > $DUMPFILE
if [ $? == 0 ] ;
then
tar czvf $ARCHIVE $DUMPFILE >> $LOGFILE 2>&1
echo "[$ARCHIVE] backup successful!" >> $LOGFILE
rm -f $DUMPFILE
else
echo "Backup failed " >> $LOGFILE
fi
脚本添加执行权限chmod 777 mysql_dump.sh 看看效果。
可以改进的地方:
接下来的工作就是设置Windows共享目录的安全,指定用户访问。其次就是修改一下脚本,指定备份的整个数据库还是备份单个表,可以在crond中添加计划任务,并且设置日志的轮询工作。更好的方式是设置日志转发邮件的功能。
初次结识shell和MySQL。多多指教!
相关文章推荐
- Linux平台和Windows平台下两种自动备份MySQL数据的脚本(Shell&Bat)和步骤
- windows下bat备份mysql
- Windows下mysql自动备份的几种方法
- 用mysqldump备份windows 下的MySql,并上传到ftp服务器
- Linux/Windows 下MySQL定时按日期备份数据
- windows 2003环境下MySQL备份与恢复 的简单方法
- Java程序调用系统命令进行mysql数据库的备份与还原,windows下mysql备份
- windows 下mysql自动备份数据库 并备份入远程服务器
- 备份和恢复 Windows 共享信息的简便方法
- Windows 7 下,mysql的数据库文件默认路径
- windows下mysql双向同步备份实现方法
- 备份windows下NTFS分区文件夹的权限和共享权限
- windows下MYSQL自动备份批处理
- windows下mysql自动备份压缩打包时间命名批处理脚本
- [轉]windows下mysql主从同步备份步骤
- java备份MySQL (windows linux)
- WINDOWS下更改MYSQL数据路径(datadir)后服务启动碰到1067问题及解决
- Windows下mysql自动备份的最佳方案
- windows下mysql自动备份压缩打包时间命名批处理脚本