gpt4 book ai didi

在Windows主机上定时备份远程VPS(CentOS)数据的批处理

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 32 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章在Windows主机上定时备份远程VPS(CentOS)数据的批处理由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

不过折腾 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)数据的批处理的文章就讲到这里了,如果你想了解更多关于在Windows主机上定时备份远程VPS(CentOS)数据的批处理的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com