如何暂停正在运行的 rsync?
第一次我用Ctrl+C杀死它并使用该-P
标志再次运行。这是否容易损坏当前的文件传输?
第二次我只是让 MacOS 进入睡眠状态(通过合上盖子)。查看正在运行的进程,我可以看到 2 (不知道为什么)状态为“S”。
尝试使用
kill -SIGCONT
恢复该过程,但没有任何效果。
答案1
您可以通过发送TSTP
(礼貌)或STOP
(强制)信号来暂停任何程序。在您运行的终端上rsync
,按Ctrl+Z发送TSTP
。使用终端中的fg
或命令或信号来恢复。bg
CONT
终止 rsync 进程并再次运行整个进程是安全的;它将从中断处继续。它可能有点低效,特别是如果您还没有通过--partial
(包含在-P
)中,因为rsync
将再次检查所有文件并从头开始处理被中断的文件。
可能存在不寻常的选项组合,导致某些文件无法正确同步,也许--inplace
与其他文件同步,但我认为没有任何一个选项会导致这种情况。
如果您断开笔记本电脑的连接并在其他地方重新连接,它可能会获得不同的 IP 地址。然后 rsync 使用的 TCP 连接将被切断,因此您必须终止它并重新开始。如果您暂停笔记本电脑并且 TCP 连接超时,也可能会发生这种情况。超时最终会过滤到应用程序级别,但这可能需要一段时间。按Ctrl+C并再次运行 rsync 是安全的。
答案2
Ctrl+Z暂停,并且:
$ fg
继续,使用
$ jobs
查看暂停的工作;bg [number]
为它们添加背景;fg [number]
将其置于前台。
答案3
这里的人提到了使用--partial
标志有效,但是需要提到的是,只有在恢复时使用--append
或标志时它才会恢复。--append-verify
--partial
创建尚未完成同步过程的文件的隐藏文件,当您中断同步时,该文件将被保留。当您恢复使用时,它会继续完成文件--append
,否则当不使用时--append
,不完整的隐藏文件将被保留并保持不完整。
结论:如果在恢复时使用,则可以中断rsync --partial
使用Ctrl+Crsync --append
(来源:rsync中断后还能恢复吗?检索日期:2016 年 4 月 5 日)
答案4
rsync
带着旗帜奔跑--partial
。然后,它将保留部分传输并在启动时恢复部分文件。