如何每x分钟从远程机器单向传输文件?

如何每x分钟从远程机器单向传输文件?

这是我的设置:

  • Dell Dimension 和 Ubuntu Server 12.10 在我的内部网络之外的远程位置全天候运行

    • 1TB 外置 HD 连接至服务器,正在下载电影/电视
  • Raspberry Pi,带 OpenELEC 和 XBMC 在本地运行

    • 连接到 Pi 的 4TB HD,希望从服务器接收内容

我希望每 x 分钟/小时将视频文件从服务器传输到 Pi 的外部 HD,一旦它们下载完毕。我不需要自动从远程位置删除它们,但如果我清理它们,我不需要双向同步。

有人对我可以从 Pi 方面使用的脚本、脚本语言或传输协议有什么建议吗?

答案1

我建议同步复制文件并计划任务定期运行 rsync 命令。要登录远程(从 Pi 的角度来看是远程)计算机,而不必每次都手动输入密码,您需要能够使用公钥/私钥登录远程计算机

默认情况下,rsync 不会删除目标目录中已在源目录中删除的文件(刚刚测试过)。

答案2

我只需在cron作业上运行 rsync。crontab -e在 Ubuntu 上运行并:

*/5 * * * *  rsync -a user@raspi:/path/to/files /local/path

它将尝试每五分钟同步一次两个位置。这可能不够长,并且会无限期地同步(无论是否仍在写入某些内容 - 例如正在下载),因此您需要小心谨慎。


不,那是谎言...我会做以下事情之一......

  • 在 Ubuntu 机器上安装 NFS 服务器并从 Raspi 安装它(我确实这样做了),然后通过网络传输内容。要获得最佳质量的 1080p 内容,您至少需要 12MB/s(96mbps)。
  • 在 Raspi 上安装 NFS 服务器并直接下载到 Raspi。考虑到 Raspi 的 USB IO 和网络速度较慢,这种方法不太理想。
  • 将文件直接下载到专用的集中位置(例如,将硬盘插入路由器或添加另一种形式的网络附加存储)并从那里将它们传输到 Pi。

与笨重的自动复印机相比,它们都具有些许优势。

相关内容