不用 nohup、不用 sshpass!rsync 后台传输 + 断 SSH 不中断的原生玩法

平时用 rsync 传大文件、大目录,大家经常遇到几个痛点:

  • 想后台运行,关终端不中断
  • 不想装 sshpass,也懒得配免密登录
  • 希望直接输密码,就能安心下班走人
  • 最好是 Linux 原生操作,不依赖任何额外工具

今天分享一个超实用的小技巧:只用 Ctrl+Z + bg + disown,实现 rsync 后台断点续传,关闭 SSH 依然稳定传输

一、场景说明

  • 本机:内网服务器
  • 目标机器:192.168.0.1
  • 同步目录:packages
  • 目标路径:/data/packages_/

需求:

  • rsync 增量同步、断点续传
  • 后台运行不占用终端
  • 直接输密码,不装插件
  • 关闭 SSH 终端,任务继续执行

二、完整操作步骤

1. 启动 rsync 并输入密码

bash

运行

ruby 复制代码
rsync -avP packages root@192.168.0.1:/data/packages_/.

输入密码后开始传输:

plaintext

css 复制代码
root@192.168.0.1's password:

2. 按下 Ctrl + Z 暂停任务

传输开始后按:

plaintext

复制代码
Ctrl + Z

终端输出:

plaintext

ruby 复制代码
[1]+  Stopped                 rsync -avP packages root@192.168.0.1:/data/packages_/.

3. 使用 bg 让任务后台继续运行

bash

运行

bash 复制代码
bg

输出:

plaintext

ruby 复制代码
[1]+ rsync -avP packages root@192.168.0.1:/data/packages_/. &

4. 执行 disown -h 解除终端绑定(核心)

bash

运行

bash 复制代码
disown -h

作用:

  • 让进程脱离当前 Shell
  • 关闭 SSH 不会收到挂断信号
  • 进程继续在后台稳定传输

三、验证任务是否正常运行

bash

运行

perl 复制代码
ps -ef | grep rsync

看到类似进程即正常:

plaintext

ruby 复制代码
root      12345  6789  0 10:00 pts/0    00:00:03 rsync -avP packages root@192.168.0.1:/data/packages_/.
root      12346 12345  0 10:00 pts/0    00:00:02 ssh -l root 192.168.0.1 rsync --server -vlogDtpre.iLsfxC --partial . /data/packages_/.

四、原理解析

  1. Ctrl + Z

    发送 SIGTSTP 信号,暂停前台进程并放入后台作业列表。

  2. bg

    将后台暂停的任务恢复运行,实现后台执行。

  3. disown -h

    终端退出时,系统会向子进程发送 SIGHUP 信号,默认会杀死进程。

    disown -h 让进程忽略挂断信号,变成孤儿进程由 systemd 托管,实现关终端不中断。

五、与 nohup 对比

表格

方式

优点

缺点

nohup &

适合脚本、一步到位

无法交互输密码,需 sshpass / 免密

Ctrl+Z → bg → disown

原生操作、可直接输密码、无依赖

需要手动几步操作

日常手动传大文件,disown 方式更灵活、更干净

六、总结

想要 rsync 后台传输、断点续传、关 SSH 不中断、又不想装任何工具:

  1. 执行 rsync → 输密码开始传输
  2. Ctrl + Z 暂停
  3. bg 放入后台继续
  4. disown -h 脱壳,关终端不死

纯 Linux 原生操作,通用所有发行版,服务器传大文件必备小技巧。

相关推荐
zyplayer-doc6 小时前
VuePress类静态文档站和动态知识库怎么选:两种技术路线的适用场景
javascript·人工智能·后端·安全·智能手机
用户938515635077 小时前
从前后端分离到前端接口工程:React + MockJS + Vite 解析
前端·后端·全栈
码事漫谈8 小时前
世界由什么构成——这个问题比你想的更缠人
后端
摇滚侠8 小时前
《SpringBoot 3:入门与应用实战》第 2 章 IOC 思想与实现 阅读笔记 1
spring boot·笔记·后端
山荷枝9 小时前
03-框架--Spring
java·后端·spring
ChaHae-In9 小时前
SpringBoot统一功能处理
java·spring boot·后端
65岁退休Coder11 小时前
LangChain v1.3.4 笔记 - 07 补充:链式调用 LCEL
后端·python·langchain
卷无止境11 小时前
FastAPI 部署在 Nginx 后面到底该怎么配
后端·python