- 中断了正在运行的 rsync,想重新开始:最简单的方法就是直接重新运行命令。
- 更新了 rsync 的配置文件(通常是
rsyncd.conf),想让新配置生效:这需要重启 rsync 的守护进程(daemon)。 - 想停止一个正在后台运行的 rsync 任务,然后重新启动一个新的:需要先找到并杀掉进程,再重新运行。
下面我将针对这三种情况,提供详细的命令和解释。

中断了前台运行的 rsync,想重新开始
如果你是在终端直接运行 rsync 命令,它在前台执行,如果中断了(比如按了 Ctrl+C),或者你想重新运行一次,最直接的方法就是再次执行你的 rsync 命令。
方法: 直接在终端重新输入你的 rsync 同步命令即可。
示例:
# 第一次运行 rsync -avz --progress /local/path/ user@remote:/remote/path/ # 假设第一次运行被中断了,或者你想重新开始,再次运行同样的命令 rsync -avz --progress /local/path/ user@remote:/remote/path/
说明:

- 这种方式最简单,适用于手动执行的一次性同步任务。
- 如果使用
--delete选项,它会再次比较源和目标的所有文件,确保完全同步。
重启 rsync 守护进程 (Daemon Mode)
如果你的 rsync 是以守护进程模式(rsync --daemon 或配置为系统服务)运行的,并且你修改了它的配置文件 /etc/rsyncd.conf,那么你需要重启这个守护进程来让新配置生效。
这和重启 Nginx 或 MySQL 服务非常相似。
方法 A: 使用 systemctl (推荐,适用于现代 Linux 系统,如 CentOS 7+, Ubuntu 16.04+)
如果你的系统使用 systemd 来管理服务,rsync 通常被安装为一个名为 rsyncd 的服务。
-
重启 rsync 服务
(图片来源网络,侵删)sudo systemctl restart rsyncd
-
重新加载配置 (更优雅的方式,如果支持)
reload命令会尝试让服务在不中断现有连接的情况下重新加载配置文件,这是首选方法。sudo systemctl reload rsyncd
-
检查服务状态
sudo systemctl status rsyncd
方法 B: 使用 service 命令 (适用于旧版系统,如 CentOS 6, Ubuntu 14.04)
如果你的系统使用 SysVinit,可以使用 service 命令。
-
重启 rsync 服务
sudo service rsync restart
-
检查服务状态
sudo service rsync status
方法 C: 手动管理进程 (不推荐,除非你非常清楚自己在做什么)
如果你是手动启动的 rsync 守护进程(nohup rsync --daemon &),你需要手动找到并杀掉它,然后再重新启动。
-
找到 rsync 进程的 PID
ps aux | grep rsync
你会看到类似下面的输出,找到
grep rsync那一行之外,包含rsync --daemon的那一行,并记下它的 PID (第二列的数字)。root 1234 0.0 0.0 1836 640 ? Ss 10:30 0:00 rsync --daemon user 5678 0.0 0.0 3724 1640 pts/0 S+ 10:31 0:00 grep --color=auto rsync -
杀掉进程
sudo kill 1234
如果进程没有停止,可以强制杀掉:
sudo kill -9 1234
-
重新启动守护进程
sudo rsync --daemon --config=/etc/rsyncd.conf
(注意:通常配置文件路径是默认的,可以省略
--config参数)
停止并重新启动一个后台的 rsync 任务
如果你使用 nohup 或 screen/tmux 在后台运行了一个长时间的 rsync 任务,并且想用新的参数或新的源来重新启动它。
-
找到正在运行的 rsync 进程
ps aux | grep rsync
找到你的 rsync 任务的 PID。
-
停止该进程
# 使用 kill 停止 sudo kill <PID> # 如果不响应,使用强制停止 sudo kill -9 <PID>
-
重新启动新的 rsync 任务 使用你新的命令重新启动它。
# 示例:使用 nohup 在后台运行,并将输出重定向到日志文件 nohup rsync -avz --progress /new/local/path/ user@remote:/new/remote/path/ > rsync.log 2>&1 &
总结与推荐
| 你的场景 | 推荐的命令 | 说明 |
|---|---|---|
| 手动运行,想重新执行 | rsync [your_options] ... |
最简单直接,直接在终端重新输入命令。 |
修改了 /etc/rsyncd.conf 配置 |
sudo systemctl restart rsyncd |
这是最常见的服务重启需求,使用 systemctl 是现代 Linux 的标准做法。 |
| 后台任务被中断,想重跑 | kill <PID> rsync [new_options] ... |
先找到并杀掉旧进程,再用新命令启动新进程。 |
| 想优雅地重新加载 rsyncd 配置 | sudo systemctl reload rsyncd |
尝试不中断现有连接的情况下应用新配置,比 restart 更好。 |
重要提示: 在执行任何“重启”或“停止”操作前,请务必确认你操作的是正确的进程或服务,避免意外中断重要的同步任务。
