不用 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 原生操作,通用所有发行版,服务器传大文件必备小技巧。

相关推荐
lifewange3 小时前
RESTful 是什么
后端·restful
Java编程爱好者3 小时前
这 4 种 SQL 写法,数据量一大就是生产事故(SQL 性能篇)
后端
小旭95273 小时前
分布式事务 Seata 详解 + 链路追踪 SkyWalking 实战
java·分布式·后端·信息可视化·skywalking
曹牧3 小时前
Spring:@RequestMapping 注解匹配顺序
java·后端·spring
AI攻城狮4 小时前
DeepSeek 的 Vision 能力要来了吗?
人工智能·后端·openai
用户622475758464 小时前
面试官问我:"如何实现你项目中的这块代码."我说:"看好了."
后端
空中海4 小时前
Nacos 2: Spring Boot Demo 实战
java·spring boot·后端
阿丰资源4 小时前
基于Spring Boot的美容院管理系统(附源码+数据库+文档)
数据库·spring boot·后端
TE-茶叶蛋4 小时前
Spring自动配置分析
java·后端·spring
北风toto4 小时前
SpringBoot 获取配置文件值、获取环境变量的方式
java·spring boot·后端