我正在将大量文件从一台计算机传输到另一台使用rsync
. 我通过 SSH 连接到源计算机并执行如下命令来执行此操作:
sudo rsync ssh --rsync-path="sudo rsync" source_dir user@host.com:dest_dir
.
即使我nohup
在此命令之前添加,每当我关闭通过 SSH 连接的终端窗口时,连接也会关闭。
当我关闭 SSH 连接时,如何才能让我的文件传输仍然继续?
bak*_*ytn 16
之所以nohup
没有帮助您,是因为该程序使用标准 IO 文件。
这是nohup维基页面的摘录:
注 - Nohupping 后台作业通常用于避免在从远程 SSH 会话注销时终止它们。在这种情况下经常出现的另一个问题是 ssh 拒绝注销(“挂起”),因为它拒绝从/向后台作业丢失任何数据。这个问题也可以通过重定向所有三个 I/O 流来克服:
nohup ./myprogram > foo.out 2> foo.err < /dev/null &
另请注意,关闭的 SSH 会话并不总是向相关进程发送 HUP 信号。其中,这取决于是否分配了伪终端。
你可以用screen
它。
只需创建一个屏幕会话:screen -S rsync
然后,你用CTRL+分离你的屏幕A d
您可以断开与SSH 的连接
小智 6
该屏幕命令很好,但不能完全满足我的需求。
这工作得更好:
nohup rsync -va --delete ###.###.###.###:/var/www/sites/ /var/www/sites < /dev/null &
Run Code Online (Sandbox Code Playgroud)