菜鸟科技网

rsync重启命令如何正确执行?

  1. 中断了正在运行的 rsync,想重新开始:最简单的方法就是直接重新运行命令。
  2. 更新了 rsync 的配置文件(通常是 rsyncd.conf),想让新配置生效:这需要重启 rsync 的守护进程(daemon)
  3. 想停止一个正在后台运行的 rsync 任务,然后重新启动一个新的:需要先找到并杀掉进程,再重新运行。

下面我将针对这三种情况,提供详细的命令和解释。

rsync重启命令如何正确执行?-图1
(图片来源网络,侵删)

中断了前台运行的 rsync,想重新开始

如果你是在终端直接运行 rsync 命令,它在前台执行,如果中断了(比如按了 Ctrl+C),或者你想重新运行一次,最直接的方法就是再次执行你的 rsync 命令。

方法: 直接在终端重新输入你的 rsync 同步命令即可。

示例:

# 第一次运行
rsync -avz --progress /local/path/ user@remote:/remote/path/
# 假设第一次运行被中断了,或者你想重新开始,再次运行同样的命令
rsync -avz --progress /local/path/ user@remote:/remote/path/

说明:

rsync重启命令如何正确执行?-图2
(图片来源网络,侵删)
  • 这种方式最简单,适用于手动执行的一次性同步任务。
  • 如果使用 --delete 选项,它会再次比较源和目标的所有文件,确保完全同步。

重启 rsync 守护进程 (Daemon Mode)

如果你的 rsync 是以守护进程模式rsync --daemon 或配置为系统服务)运行的,并且你修改了它的配置文件 /etc/rsyncd.conf,那么你需要重启这个守护进程来让新配置生效。

这和重启 Nginx 或 MySQL 服务非常相似。

方法 A: 使用 systemctl (推荐,适用于现代 Linux 系统,如 CentOS 7+, Ubuntu 16.04+)

如果你的系统使用 systemd 来管理服务,rsync 通常被安装为一个名为 rsyncd 的服务。

  1. 重启 rsync 服务

    rsync重启命令如何正确执行?-图3
    (图片来源网络,侵删)
    sudo systemctl restart rsyncd
  2. 重新加载配置 (更优雅的方式,如果支持) reload 命令会尝试让服务在不中断现有连接的情况下重新加载配置文件,这是首选方法。

    sudo systemctl reload rsyncd
  3. 检查服务状态

    sudo systemctl status rsyncd

方法 B: 使用 service 命令 (适用于旧版系统,如 CentOS 6, Ubuntu 14.04)

如果你的系统使用 SysVinit,可以使用 service 命令。

  1. 重启 rsync 服务

    sudo service rsync restart
  2. 检查服务状态

    sudo service rsync status

方法 C: 手动管理进程 (不推荐,除非你非常清楚自己在做什么)

如果你是手动启动的 rsync 守护进程(nohup rsync --daemon &),你需要手动找到并杀掉它,然后再重新启动。

  1. 找到 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
  2. 杀掉进程

    sudo kill 1234

    如果进程没有停止,可以强制杀掉:

    sudo kill -9 1234
  3. 重新启动守护进程

    sudo rsync --daemon --config=/etc/rsyncd.conf

    (注意:通常配置文件路径是默认的,可以省略 --config 参数)


停止并重新启动一个后台的 rsync 任务

如果你使用 nohupscreen/tmux 在后台运行了一个长时间的 rsync 任务,并且想用新的参数或新的源来重新启动它。

  1. 找到正在运行的 rsync 进程

    ps aux | grep rsync

    找到你的 rsync 任务的 PID。

  2. 停止该进程

    # 使用 kill 停止
    sudo kill <PID>
    # 如果不响应,使用强制停止
    sudo kill -9 <PID>
  3. 重新启动新的 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 更好。

重要提示: 在执行任何“重启”或“停止”操作前,请务必确认你操作的是正确的进程或服务,避免意外中断重要的同步任务。

分享:
扫描分享到社交APP
上一篇
下一篇