【问题标题】:Transferring (stopping, resuming) file using rsync使用 rsync 传输(停止、恢复)文件
【发布时间】:2013-10-28 22:01:37
【问题描述】:

我有一个外部硬盘驱动器,我怀疑它即将取出。此刻,我可以从中传输文件,但只是暂时的。不幸的是,我有一个大于 50GB 的文件。我对此的解决方案是使用 rsync 一次传输这个特定文件,让驱动器处于静止状态(将其关闭),稍后再恢复。

我正在使用rsync --partial --progress --inplace --append -a /Volumes/Backup\ Drive/chris/Desktop/Recording\ Sessions/S1/Session\ 1/untitled ~/Desktop/temp 传输它。 (该文件位于无标题文件夹中,我将其移动到临时文件夹中)但是,在停止并恢复它之后,它似乎覆盖了之前对该文件的尝试,这意味着我真的没有得到进一步。

我有什么遗漏吗? :X

谢谢你^_^

编辑:还是不知道:\

【问题讨论】:

    标签: macos file rsync transfer


    【解决方案1】:

    好吧,既然这是一个编程网站,那么这里有一个程序可以做到这一点。我在 OS X 上对其进行了测试,但您绝对应该先在一些小文件上对其进行测试,以确保它符合您的要求:

    #!/usr/bin/env python                                                                                                   
    
    import os
    import sys
    
    source = sys.argv[1]
    target = sys.argv[2]
    begin = int(sys.argv[3])
    end = int(sys.argv[4])
    
    mode = 'r+b' if os.path.exists(target) else 'w+b'
    
    with open(source, 'rb') as source_file, open(target, mode) as target_file:
        source_file.seek(begin)
        target_file.seek(begin)
        buffer = source_file.read(end - begin)
        target_file.write(buffer)
    

    您使用四个参数运行它:源文件、目标文件和两个数字。第一个数字是开始复制的字节数(因此在第一次运行时您将使用 0)。第二个数字是要复制到的字节数(不包括)。因此,在随后的运行中,您将始终使用之前的第四个参数作为新的第三个参数(新开始等于旧结束)。就这样继续下去,直到完成,一路上使用你喜欢的任何尺寸。

    【讨论】:

    • 这实际上比我预期的更有用 o-o 谢谢! ^_^ 虽然我一直认为 Stack Overflow 是一个通用编程/脚本/bashing/通用高级计算站点,但考虑到我们也有programmers.stackexchange.com。
    • 忽略该评论 - 我尝试运行脚本,当我运行它时,我得到了这个:pastebin.com/2UU3BCRD - 我尝试将 pastebin.com/TKaU0DUr 更改为 pastebin.com/VxA8Sbtm ,但得到了这个错误:@ 987654324@
    • 您似乎以错误的顺序将参数传递给脚本。看看我的帖子所说的与你正在运行的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 2018-12-02
    • 2018-11-25
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多