首页 > 代码库 > Mysql备份到Windows共享路径中

Mysql备份到Windows共享路径中

作为一名不资深的运维工程师和python爱好者,一定要学习一下MySQL。

下面简单的实现了一下如何将MySQL的数据库备份到一个远程Windows服务器当中。

  

  1. 首先需要在Windows(IP:192.168.1.5)上面创建一个共享路径:在D盘下面创建一个目录名为HugoShare,在HugoShare目录的属性中点击Share选项卡,在下拉框中找到Everyone,然后点击Add添加到共享用户组中,在权限中选择Read/Write,再Share一下。在Securiy选项卡中找到Everyone这个用户,看看他对这个目录的权限是不是Full,如果不是编辑一下,为了方便起见,先设置成Full。这个时候,你的\\192.168.1.5\HugoShare应该是可以被任何人访问的。

  2. 在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"看一下是不是真的挂载上了。

  3. 貌似准备工作已经完成,接下来就写一个脚本


#!/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共享路径中