通过 SCP 将 Windows 备份到 Linux

通过 SCP 将 Windows 备份到 Linux

我需要定期将 Windows 系统中的一些文件备份到本地(不同的驱动器上)和 Internet 上的远程位置。我打算使用7zip在本地机器上创建增量备份,然后编写脚本温SCP将它们发送到运行 OpenSSH 服务器的远程机器,该服务器将(可能通过 cron 作业)负责记录备份日期并将其存储在整齐的文件夹中。

有了上面提供的链接,我想我可以将它们粘合在一起,但我的问题是这是否是一个“好的”解决方案。我是否忽略了这种方法的某些方面?有没有更好(更简单?)的方法来做这件事(注意:该项目的预算为 0,因此虽然我是 Backblaze 的忠实粉丝,但这次它已经过时了)?我是否忽略了任何不必要的安全问题?我想我在这里寻找的是“最佳实践”之类的东西。

谢谢!

答案1

7zip + pscp [来自油灰] + 没有密码的私钥在 Windows 上可以正常工作。我不知道您的数据大小是多少,变化频率是多少等等;这不是最佳实践,但我使用的方法如下:

  • vshadow 来自微软的卷影复制,用于创建 Windows 文件系统的快照 [并避免打开/锁定文件的问题]
  • 暗影同步脚本经过微小修改 - 我用...替换了 rsync
  • ..rdiff-备份处理差异备份
  • 来自 putty 的 plink 允许通过 ssh 连接为 rdiff-backup 提供安全传输层。

这为我提供了方便、不占用带宽的数据备份方式,并且能够恢复已更改文件的先前版本。

答案2

还有表里不一如果您对 rsync + gnupg 加密 + ssh / s3 / 各种其他存储后端感兴趣。要使其在 Windows 上运行需要做一些准备工作(即安装 Cygwin 和必要的支持软件包),但这并不难。

您将获得加密、差异备份的好处,您可以将其存储在 Linux(或其他支持 SSH 的服务器)、Amazon 的 S3 等上。

答案3

我支持 rsync + ssh,这是我在自己的网络上使用的

还可以考虑使用 rsnapshot 进行备份

答案4

(从我刚放在 Stack Overflow 上的一篇文章中复制过来)

MSSQLTips 上的一些人有一些非常有用的文章,与此最相关的文章是“自动执行 SQL Server 2005 Express 备份并删除旧备份文件

基本方法是使用 Windows 任务计划程序设置两个任务。一个任务运行 TSQL 脚本,该脚本会为所有 MSSQL 数据库(TEMPDB 除外)生成单独的备份文件,并将数据库名称和文件名中的日期/时间戳保存到指定目录中。第二个任务运行 VBScript 脚本,该脚本遍历该目录并删除所有超过 3 天且扩展名为 .BAK 的文件。

这两个脚本都需要对您的环境进行少量的编辑(路径、保留这些数据库转储的时间),但非常接近即插即用。

请注意,如果您对这些或目录权限的处理不够严谨,可能会产生安全隐患,因为它们是纯文本文件,需要以一定级别的权限运行。千万不要马虎。

我不知道 MSSQL 的主/从类型设置的要求,但它确实支持复制,并且有文档可供参考。希望同一文档能够指出是否可以使用 MSDE/Express 以及完整产品来实现这一点。

原始答案,由于我的阅读理解能力很差,并且我将 MSSQL 读成了 MySQL,因此修改为如下内容:

对于数据库备份,请查看 MySQL 文档。除其他选项外,mysqldump 或(可能)mysqlhotcopy 可让您转储数据库内容以进行备份,即使数据库正在使用中。从我对文档的阅读来看,您通常不会遇到明显的中断。

这种方法的一个缺点是它每次都会给您一个新的转储文件,因此 rsync 可能无法帮助减少网络流量。

另一个选择可能是运行主从 MySQL 服务器——我自己还没有这样做过(只有一个客户使用 MySQL 做了一些事情),但有很多文档,包括如何在不中断 MySQL 的情况下备份 MySQL 数据库关于 HowToForge

相关内容