当前位置:七道奇文章资讯数据防范MySQL防范
日期:2012-06-02 15:04:00  来源:本站整理

在Windows主机上按时备份远程VPS(CentOS)数据的批处理[MySQL防范]

赞助商链接



  本文“在Windows主机上按时备份远程VPS(CentOS)数据的批处理[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
不过折腾 VPS 之后,就不只是要备份 MySQL 了,一些独立的站点数据也是需求备份的.
假若有靠谱的第三方 Linux 主机或近似 Amazon 的云存储,那就简单多了,Linux - Linux 的备份很便利.
不过我想在自己的 Windows7 下每天/周运行一次备份,就有了这个小工具.

大约的设法以下:
利用 Putty 自带的 plink.exe 衔接到 VPS 上,运行备份并退出登录;
接着利用 Putty 自带的 pscp.exe 将备份复制到本机;
增添一个筹划任务,每天/周自动运行一次,实现按时备份.

复制代码 代码以下:
Windows 下负责触发备份的 index.bat
@echo off & setlocal ENABLEEXTENSIONS

:: 这里只是 SSH 衔接和备份途径配置信息
:: 请同时改正同目录下 linux 文件中要备份的途径和 MySQL 数据库

:: SSH 相关信息
set SERVER=192.168.1.100
set PORT=22
set USER=root
set PASSWORD=password

:: 和同目录下 linux 文件中配置的途径对应
set BACKUP_PATH=/root/backup

:: 备份要下载到的本机位置(会自动成立)
set SAVE_PATH=D:\Backup\

:: ---------- 配置完毕,以下请勿改正 ----------

:: 运行时变量
set EXE_SSH=%~dp0\exe\plink.exe
set EXE_SCP=%~dp0\exe\pscp.exe
set LINUX=%~dp0\linux

set YEAR=%date:~0,4%
set MONTH=%date:~5,2%
set DAY=%date:~8,2%
set TRUE_PATH=%SAVE_PATH%%YEAR%-%MONTH%-%DAY%\

:: 成立备份途径
echo Creating Backup Dir...
if not exist %TRUE_PATH% (
mkdir %TRUE_PATH% 2>nul
)
if not exist %TRUE_PATH% (
echo Backup path: %TRUE_PATH% not exists, create dir failed.
goto exit
)
echo Creating Backup Dir... Done.

:: 生成备份目录和文件
echo Connecting to remote server and creating backups...
%EXE_SSH% -C %USER%@%SERVER% -P %PORT% -pw %PASSWORD% -m %LINUX% 2>nul
echo Connecting to remote server and creating backups... Done.

:: 下载备份
echo Downloading backups...
%EXE_SCP% -pw %PASSWORD% -P %PORT% %USER%@%SERVER%:%BACKUP_PATH%/*.* %TRUE_PATH%
echo Downloading backups... Done.

:exit
echo Exit

由 index.bat 调用的 Linux 端号令
复制代码 代码以下:
#!/bin/bash

PATH=/usr/local/sbin:/usr/bin:/bin

# ---------- 配置项,不要最后的 / ----------

# 备份文件存储的途径,请与 index.bat 中的 BACKUP_PATH 保持一致
BACKUP_PATH=/root/backup

# 要备份的文件或目录,多个以空格脱离
FILES="/www/cmstop /www/dbpma"

# mysqldump 可履行文件的全途径(假如可以直接履行 mysqldump 可不用全途径)
MYSQLDUMP=mysqldump

# 要备份的 MySQL 数据库,多个以空格脱离
DATABASES="mysql test"

# MySQL 用户名
USER=root

# MySQL 密码
PASSWD=

# ---------- 配置项完毕,下面的不用改正 ----------

# 运行时变量
DATETIME=$(date -d now +%Y-%m-%d)
CURPATH=$(cd "$(dirname "$0")"; pwd)

# 成立备份目录
if [ ! -d $BACKUP_PATH ]; then
mkdir -p $BACKUP_PATH
fi

rm -fR $BACKUP_PATH/*

# 备份 MySQL 数据库
cd $BACKUP_PATH
for database in $DATABASES
do
if [ "$PASSWD" == "" ]; then
$MYSQLDUMP -u$USER $database > $database.$DATETIME.dump.sql
else
$MYSQLDUMP -u$USER -p$PASSWD $database > $database.$DATETIME.dump.sql
fi
tar czf $database.$DATETIME.dump.sql.tar.gz $database.$DATETIME.dump.sql
rm -f $database.$DATETIME.dump.sql
done

# 备份文件或目录
for file in $FILES
do
tar czf $file.$DATETIME.tar.gz $file
mv $file.$DATETIME.tar.gz $BACKUP_PATH
done

# 完成
cd $CURPATH
exit

下载完成之后不删除服务器上产生的备份文件,因为下一次备份前会自动排除.
下载和利用 下载地址
下载文件到你本机,解压到某个地方,然后按照上文的阐明改正配置项;
由于 SSH 第一次登录需求增添 Key 到本机,这一步没法简单忽视,可行的办法是载入 Putty 的 Session,不过挺麻烦的,还是运行一次简单些,我们要履行一次 SSH 登录:
复制代码 代码以下:
:: 切换到你解压到的目录,如 D:\VPS\:
cd /d D:\VPS\

:: 按照情形改正下面的参数
exe\plink.exe -C root@192.168.1.100 -P 22 -pw password

:: 等候一下,会提醒能否将 Key 加入本机信任主机列表里面,输入 yes 便可以了.
yes

:: 这就进去了,输入点常用号令玩玩,输入 exit 退出.
exit

按照这一篇文章的介绍,增添一个按时履行的筹划任务;
手动履行一下上面增添的筹划任务或察看一个履行周期,看备份能否有效.
待改良
同之前的脚本一样,仿佛还贫乏一个自动删除多少天前备份的功效
  以上是“在Windows主机上按时备份远程VPS(CentOS)数据的批处理[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 在Windows7中将U盘用BitLocker加密的操作步骤
  • 在Win7中不用翻开文档也可以看到文档内容的办法介绍
  • 在Windows 8下设置宽带自动衔接 PPPoE拨号的办法介绍
  • 在win 7系统中语聊时麦克风声音太小的设置音量办法
  • 如安在Win8 RTM中强迫开启正式版全透明效果
  • 如安在Win7系统中不用翻开文档也可以看到文档内容的图文办法介绍
  • 在Win7/Vista下因为Flash 11.3招致Firefox崩溃问题办理办法
  • 在Windows 8 中更改默许输入法的办法
  • 在win 8上安装XenServer的具体办法
  • 在Windows 8 中成立、删除或格局化硬盘分区的办法(图文教程)
  • 利用U盘在Windows 7系统上安装Windows8双系统教程
  • 在windows中注册dll文件的办法
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .