如何通过网络和互联网同步我的主文件夹?

如何通过网络和互联网同步我的主文件夹?

我使用装有 Ubuntu 桌面的笔记本电脑来完成所有工作,但我办公室里还有一台低端台式机。我决定在它上面安装 Ubuntu 服务器,并使用它来镜像我的整个笔记本电脑主文件夹,以便在我决定格式化笔记本电脑硬盘时更方便。

每当我上班时,两台机器都连接到网络,并通过 ssh 轻松(高速)通信。当我不在工作时,仍然可以通过 ssh 访问桌面。理想情况下,每当我更改某些内容时,同步都会在后台自动进行。它只需要一种方式:我在笔记本电脑上所做的更改必须同步到服务器,但反过来则没有必要。

我知道有这方面的软件,我的问题是:我可以使用什么软件来实现上述目标,并在工作时充分利用本地网络速度?由于我有时会处理大文件,因此同步过程需要意识到两台计算机共享本地网络,然后利用这一点(而不是始终通过互联网同步)。

需要说明的是,对我来说,通过网络同步实际上比通过互联网同步更重要。理想情况下,软件会检查前者是否可用,如果不可用,则尝试后者;但如果这不可能,第一种情况是我的优先事项。

希望这不会太长。提前致谢。

答案1

如果你只能通过 SSH 连接到办公室服务器,那么最好的选择是使用同步:它可以使用 SSH 作为传输协议,并使用智能算法通过仅发送更改的块来加速大文件的传输。

由于您只需要单向同步,只需从笔记本电脑到办公室服务器设置无密码 SSH 身份验证,然后就可以使用如下简单命令开始:

rsync -e ssh -a $HOME/ myuser@officeserv:

添加--include--exclude选项以优化要同步的文件/目录列表。例如,如果两台计算机运行的操作系统不同(版本不同),则传输程序设置(“点文件”)可能会有风险。我的建议是先排除所有“点文件”(因此,使用 --exclude="$HOME/.[a-z]*"),然后有选择地添加可以安全共享的程序的配置目录(这必须逐个程序查看)。此外,Web 浏览器缓存和始终可以排除。有关包含/排除规则语法的详细讨论,$HOME/.cache请参阅手册页中的“过滤规则”部分。rsync

但是,rsync没有“连续操作”模式,因此您必须定期从您的 定时任务

答案2

我建议使用 rdiff-backup 而不是 rsync。它实际上就是 rsync++。

与 rsync 不同,rsync 只是一个传输差异的 1-1 镜像,它有一个历史机制。因此,如果你搞砸了并删除了一些重要的东西,你可以恢复到一周前并恢复它。

在 ubuntu“服务器”上,您只需运行 ssh 即可 apt-get install rdiff-backup。

在客户端上。我要么手动运行它,要么通过 crontab 运行。

#!/bin/bash

  #backup.sh

  rdiff-backup -v5 --exclude path-to-annoyingfile  /home/user/ hostname::/media/data/snapshots/laptop 
  ## this will cleanup any backups older then 2weeks.  Adjust this as needed.
  rdiff-backup --remove-older-than  2W --force  hostname::/media/data/snapshots/laptop


  #!/bin/bash
  ##Restore.
  rdiff-backup -v5 --restore-as-of now --force user@hostname::/media/data/snapshots/laptop  /home/user

如果您将端口 22 开放到互联网,那么您应该能够以任意方式运行相同的脚本,只需让您的主机名本地解析为您的本地 IP 即可。

即 backupSrv.penguins.org 将解析为外部 IP 2.3.4.5,但在您的局域网内:为 192.168.1.253

答案3

据我所知,没有完整的、预先打包的解决方案可以解决您的问题。您可能需要自己编写一些小脚本来解决此问题。

同步本身可以通过 来完成rsync,正如 Riccardo Murri 所解释的那样。Rsync 只传输文件的更改部分,因此它非常适合这项任务。

您可以使用网络管理器调度器在网络接口连接/断开连接时执行脚本。因此,您可以编写一个脚本来检查您是否在正确的网络上,然后调用 rsync。这样,当您连接到公司网络时,您的数据就会自动同步。

要定期同步您的数据,您可以使用 cron,正如前面提到的。

通过 ssh 使用 rsync 时,您还应该考虑安全性。要进行无需用户干预的同步,您需要一个无密码密钥文件。任何拥有此密钥文件的人都可以访问它所属的服务器。我强烈建议加密您的主文件夹以保护笔记本和服务器上的数据。

答案4

尝试 Sparkleshare:http://sparkleshare.org/

Ubuntu repo 中有一个客户端,其网站上有关于如何在其网站上设置服务器的说明。

相关内容