- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
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的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
初学者 android 问题。好的,我已经成功写入文件。例如。 //获取文件名 String filename = getResources().getString(R.string.filename
我已经将相同的图像保存到/data/data/mypackage/img/中,现在我想显示这个全屏,我曾尝试使用 ACTION_VIEW 来显示 android 标准程序,但它不是从/data/dat
我正在使用Xcode 9,Swift 4。 我正在尝试使用以下代码从URL在ImageView中显示图像: func getImageFromUrl(sourceUrl: String) -> UII
我的 Ubuntu 安装 genymotion 有问题。主要是我无法调试我的数据库,因为通过 eclipse 中的 DBMS 和 shell 中的 adb 我无法查看/data/文件夹的内容。没有显示
我正在尝试用 PHP 发布一些 JSON 数据。但是出了点问题。 这是我的 html -- {% for x in sets %}
我观察到两种方法的结果不同。为什么是这样?我知道 lm 上发生了什么,但无法弄清楚 tslm 上发生了什么。 > library(forecast) > set.seed(2) > tts lm(t
我不确定为什么会这样!我有一个由 spring data elasticsearch 和 spring data jpa 使用的类,但是当我尝试运行我的应用程序时出现错误。 Error creatin
在 this vega 图表,如果我下载并转换 flare-dependencies.json使用以下 jq 到 csv命令, jq -r '(map(keys) | add | unique) as
我正在提交一个项目,我必须在其中创建一个带有表的 mysql 数据库。一切都在我这边进行,所以我只想检查如何将我所有的压缩文件发送给使用不同计算机的人。基本上,我如何为另一台计算机创建我的数据库文件,
我有一个应用程序可以将文本文件写入内部存储。我想仔细看看我的电脑。 我运行了 Toast.makeText 来显示路径,它说:/数据/数据/我的包 但是当我转到 Android Studio 的 An
我喜欢使用 Genymotion 模拟器以如此出色的速度加载 Android。它有非常好的速度,但仍然有一些不稳定的性能。 如何从 Eclipse 中的文件资源管理器访问 Genymotion 模拟器
我需要更改 Silverlight 中文本框的格式。数据通过 MVVM 绑定(bind)。 例如,有一个 int 属性,我将 1 添加到 setter 中的值并调用 OnPropertyChanged
我想向 Youtube Data API 提出请求,但我不需要访问任何用户信息。我只想浏览公共(public)视频并根据搜索词显示视频。 我可以在未经授权的情况下这样做吗? 最佳答案 YouTube
我已经设置了一个 Twilio 应用程序,我想向人们发送更新,但我不想回复单个文本。我只是想让他们在有问题时打电话。我一切正常,但我想在发送文本时显示传入文本,以确保我不会错过任何问题。我正在使用 p
我有一个带有表单的网站(目前它是纯 HTML,但我们正在切换到 JQuery)。流程是这样的: 接受用户的输入 --- 5 个整数 通过 REST 调用网络服务 在服务器端运行一些计算...并生成一个
假设我们有一个名为 configuration.js 的文件,当我们查看内部时,我们会看到: 'use strict'; var profile = { "project": "%Projec
这部分是对 Previous Question 的扩展我的: 我现在可以从我的 CI Controller 成功返回 JSON 数据,它返回: {"results":[{"id":"1","Sourc
有什么有效的方法可以删除 ios 中 CBL 的所有文档存储?我对此有疑问,或者,如果有人知道如何从本质上使该应用程序像刚刚安装一样,那也会非常有帮助。我们正在努力确保我们的注销实际上将应用程序设置为
我有一个 Rails 应用程序,它与其他 Rails 应用程序通信以进行数据插入。我使用 jQuery $.post 方法进行数据插入。对于插入,我的其他 Rails 应用程序显示 200 OK。但在
我正在为服务于发布请求的 API 调用运行单元测试。我正在传递请求正文,并且必须将响应作为帐户数据返回。但我只收到断言错误 注意:数据是从 Azure 中获取的 spec.js const accou
我是一名优秀的程序员,十分优秀!