我如何暂停/恢复rsync


49

如何暂停正在运行的rsync?

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

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

尝试使用

kill -SIGCONT

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

Answers:


61

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

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

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

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


1
实际上,杀死rsync -avh只是释放当前正在复制的文件,如果文件很大,您将浪费很多时间。也许先Ctrl+z移动临时文件(以点开头),然后再使用Ctrl-Crsync可能是一个更好的解决方案。
2014年

感谢您的详细解释。需要说明的是:ctrl + z暂停,fg继续,bg停止。
Praesagus

3
@Praesagus bg把过程给b ACK ,不要停下来。
加里·凯纳嫩(JariKeinänen)'16

--partial是我所需要的 我正在尝试复制21GB的数据,其中有一个6.6GB的文件。问题是网络在几GB的数据传输后终止了我的连接,而这--partial正是我所需要的。
AnthonyD973 '18

20

Ctrl+ Z暂停,并:

$ fg

继续使用

$ jobs

看到暂停的工作;bg [number]给他们做背景 fg [number]前景。


2
Ctrl+S仅暂停滚动输出,而不暂停基础程序(除非等待终端接受其输出而阻塞),并且仅在您未禁用它的情况下。
吉尔(Gilles)'所以

1
当前为“ S”状态不会恢复。使用Ctrl + C杀死它并再次运行rsync是否安全?我还有什么其他选择?下次会记住这一点的,谢谢。
qnoid 2011年

1
还请注意,Ctrl-Z暂停进程可能会在一段时间后导致该程序建立的任何TCP网络连接超时。因此,在将rsync挂起超过几分钟后,很可能会导致它突然退出,并在您将其放回前台并发现其打开的套接字正在从读取和写入返回错误的同时出现错误消息。
Jim Dennis

8

rsync--partial标志一起运行。然后它将保留部分传输并在启动时恢复部分文件。


5

这里的人们已经提到过使用--partial标志的工作原理,但需要提及的是,只有在恢复时使用--append--append-verify标志时,它才能恢复。

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

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

(来源:rsync可以在中断后恢复吗?检索于2016年4月5日)


所以如果我用过rsync --avP <source> <destination>,我必须通过CTRL + C暂停它,然后仅通过键入就可以恢复rysnc --append
kingmakerking

@kingmakerking yes
Mehdi

@kingmakerking:不,您仍然需要第一个rsync中的选项以及源和目标。要恢复,请重新启动上一个rsync命令,然后将其添加 --append到现有选项中。
mivk
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.