当互联网或位置断开连接时,如何暂停复制操作。贝壳


1

好的。所以我有一些备份目录的可执行.sh文件。在这种情况下,开发目录。我有两台电脑。Mac(主计算机和Windows 7桌面)。由于我的Mac只有500 GB的存储空间,我想将数据备份到另一台计算机。我这是无线的。

为了实现这一点,我有一个shell脚本来检查我是否连接到main-pc / Users / Public /。我知道位置不安全,我会在几天内更改位置,但就目前而言,我只是希望它能够正常工作。

总的来说,脚本工作正常,它确保位置存在,如果我没有连接我已经设置安装计算机。它也正确地复制了一切。

除外,如果互联网突然失去连接,或者我与另一台计算机的连接中断(这种情况时不时发生)。当发生这种情况时,该位置突然不存在,并且它继续运行脚本,但什么都不做,只是做了类似的事情

x - > y位置不存在...... Blah blah blah。

我的问题是,我如何确保如果我失去连接,它只是暂停备份并等待直到位置连接?这甚至可能吗?我不能只是重新创建位置,因为我没有在本地存储它。

谢谢。(而且我意识到获得一个外部驱动器会更容易,但那有什么好玩的?)

我的脚本很长,但这是与备份有关的部分。

rm -r -v /Volumes/Users/Public/InfiniteBackups/Development
cd /Volumes/Users/Public/InfiniteBackups
mkdir Development
cp -v -f -rip ~/Development/ /Volumes/Users/Public/InfiniteBackups/Development
echo "Files have finished transferring"
say "Files have finished transferring"
exit 0

它不是最漂亮的脚本,但它有效。这是在OS X 10.8上。

Answers:


1

我会使用rsync并检查退出值。继续重试,直到它成功退出。

Rsync将使用哈希来确保并发送尽可能少的数据,并且在网络连接中非常耐用。

http://en.wikipedia.org/wiki/Rsync

http://rsync.samba.org/


那就像它自己的工具吧?我希望通过我自己的脚本可以使用的东西,但它可能是不可能的。谢谢你的回答。:)
Josiah

这是它自己的工具,你使用它而不是cp。它非常普遍,可能已经安装在您的OSX系统上(我不确定)。它非常易于编写!我在许多bash脚本中使用过它。
伍德罗·道格拉斯

好的,我来看看。+1。在我看到是否有其他人有想法之前我不会回答你的回答,但如果没有,我会接受你的。我会给它几个小时。
约西亚
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.