如何暂停/恢复 rsync

qno*_*oid 59 process rsync

如何暂停正在运行的 rsync?

我第一次做Ctrl+C杀死它并使用-P标志再次运行。这是否容易损坏当前的文件传输?

第二次我只是让 MacOS 进入睡眠状态(通过合上盖子)。查看正在运行的进程,我可以看到状态为“S”的 2(不知道为什么)。

尝试使用

kill -SIGCONT
Run Code Online (Sandbox Code Playgroud)

恢复该过程,但没有效果。

Gil*_*il' 76

您可以通过向其发送TSTP(礼貌)或STOP(强制)信号来暂停任何程序。在您运行的终端rsync上,按Ctrl+Z发送TSTP。用终端中的fgbg命令或CONT信号恢复。

杀死 rsync 进程并再次运行整个过程是安全的;它将从停止的地方继续。这可能有点低效,特别是如果您还没有通过--partial(包含在 中-P),因为rsync会再次检查所有文件并从头开始处理它被中断的文件。

可能有不寻常的选项组合会导致某些文件无法正确同步,也许--inplace还有其他东西,但我认为没有一个选项会导致这种情况。

如果您断开笔记本电脑的连接并在其他地方重新连接,它可能会获得不同的 IP 地址。然后 rsync 使用的 TCP 连接将被切断,因此您必须杀死它并重新开始。如果您暂停笔记本电脑并且 TCP 连接超时,也会发生这种情况。超时最终会过滤到应用程序级别,但可能需要一段时间。按Ctrl+C并再次运行 rsync是安全的。

  • @Praesagus `bg` 将进程放入 [**b**ack**g**round](http://unix.stackexchange.com/q/103731/6862),而不是停止。 (3认同)

gau*_*teh 24

Ctrl+Z暂停,并且:

$ fg
Run Code Online (Sandbox Code Playgroud)

继续,使用

$ jobs
Run Code Online (Sandbox Code Playgroud)

查看暂停的工作;bg [number]为他们提供背景;fg [number]把它放在前台。

  • `Ctrl+S` 只暂停滚动输出,而不是底层程序(除非它被阻塞等待终端接受其输出),并且仅当您没有禁用它时。 (2认同)

bah*_*mat 8

rsync带着--partial国旗跑。然后它将保留部分传输并在启动时恢复部分文件。


Meh*_*len 7

这里的人已经提到使用--partial标志有效,但需要提及的是,它仅在恢复时使用--append--append-verify标志时才恢复。

--partial创建尚未完成同步过程的文件的隐藏文件,该文件在您中断同步时保留。--append恢复后继续使用时继续完成文件,否则不使用时--append,保留不完整的隐藏文件并保持不完整。

结论:如果你在恢复时rsync --partial使用,你可以使用Ctrl+中断Crsync --append

(来源:rsync 中断后能否恢复?检索于 2016 年 4 月 5 日)