如何在 Linux 中使用 rsync 工具通过网络管理文件

热门:
升级您的服务器配置! 申请 AVA 并使用 立减 15%
使用优惠码:

使用 ava.hosting 在 Linux 上掌握 rsync 文件管理

借助

rsync

,跨系统管理文件轻而易举;它是一款强大的 Linux 工具,用于在网络中同步和传输文件。无论你是在 ava.hosting 的高性能 VPS 还是 dedicated servers 上备份数据、镜像目录,还是迁移文件,

rsync

都通过仅复制源和目标之间的更改来确保高效。例如,你可以使用

rsync

将托管在 ava.hosting 上的网站文件备份到远程服务器,从而最大限度地减少带宽和时间。本指南涵盖

rsync

的安装、使用和自动化,以实现无缝文件管理,并针对 ava.hosting 可靠的基础设施进行了优化。

安装 rsync

大多数 Linux 发行版都预装了 rsync。要检查它是否已安装,请运行:

rsync --version

如果未安装,你可以使用发行版的包管理器进行安装:

  • Debian/Ubuntu:
    sudo apt install rsync
  • RHEL/CentOS:
    sudo yum install rsync
  • Fedora:
    sudo dnf install rsync
  • Arch Linux:
    sudo pacman -S rsync

📌 如何通过 PuTTY SSH 使用 rsync 将文件从 Windows 传输到远程服务器?
要在 Windows 上通过 PuTTY SSH 使用 rsync,你需要已安装:

PuTTY 用于 SSH 连接
Windows 上的 rsyncOpenSSH
Pagent(可选)用于使用 SSH 密钥自动认证

使用 MSYS2 在 Windows 上安装 rsync

如果你已经下载了 MSYS2,你可以使用 pacman(MSYS2 的包管理器)轻松安装 rsync。

  •  更新 MSYS2 和现有包
    在 MSYS2 终端中,运行:

pacman -Syu

  • 如果 MSYS2 在更新后自动关闭,请重新打开并运行:

pacman -Su

✅ 此步骤可确保你拥有包管理器的最新版本。

  •  安装 rsync
    现在使用以下命令安装 rsync:

pacman -S rsync


💡 如果你还需要用于 SSH 传输的 openssh,也请安装它:

pacman -S openssh

 验证安装
要验证 rsync 是否已正确安装,请运行:

rsync --version

rsync 基本语法

rsync 的基本语法是:

rsync [options] source destination

常用选项

  • -a : 归档模式(保留符号链接、权限、时间戳等)
  • -v : 详细输出
  • -z : 在传输过程中压缩文件数据
  • -P : 在传输过程中显示进度
  • -r : 递归复制目录
  • -e : 指定远程 shell(如 SSH)

使用 rsync 进行本地文件同步

要在两个本地目录之间同步文件:

rsync -av /source/directory/ /destination/directory/

源路径末尾的斜杠 / 可确保只复制目录内容,而不是目录本身。

通过网络使用 rsync

将文件传输到远程服务器

要将文件从本地系统传输到远程服务器:

rsync -avz /local/directory/ user@remote_host:/remote/directory/

*在 MSYS2 中添加命令后,我们将添加 SSH 数据以连接到远程服务器,结果将显示:
此命令使用 SSH 安全地将文件复制到远程服务器。

检查该命令是否已在你的远程服务器上成功执行:

ls -lah /home/user/test_backup/ [put_your_directory]

将文件从远程服务器传输到本地机器

要将文件从远程服务器复制到你的本地机器。默认情况下,rsync 使用 SSH 进行安全通信。你可以显式指定 SSH:

rsync -avz -e ssh /local/directory/ user@remote_host:/remote/directory/

如果 SSH 使用非默认端口(例如 2222),请这样指定:

rsync -avz -e "ssh -p 2222" /local/directory/ user@remote_host:/remote/directory/

同步并删除多余文件

要删除目标中源中不存在的多余文件:

第一步,我们在 PuttySSH 终端中添加额外文件:

cd /home/user/test_backup/
touch file1.txt file2.log file3.jpg
mkdir extra_files
touch extra_files/old_file.txt

现在同步不包含某些文件的目录,rsync 将删除源中不再存在的文件:

rsync -av --delete /source/directory/ /destination/directory/

📌 它的作用是什么?
服务器上所有存在但不在 test/local 中的文件都将被删除。

MSYS2 结果

PuttySSH 结果

警告: 请谨慎使用 –delete,因为它会永久删除目标中的文件。

排除文件和目录

要排除特定文件或目录:

rsync -av --exclude 'file_or_directory' /source/ user@remote_host:/destination/

MSYS2 结果

PuttySSH 结果

对于多个排除项,请使用:

rsync -av --exclude={'file1','dir1','*.log'} /source/ user@remote_host:/destination/

将 rsync 作为后台进程运行

你可以使用 nohup 在后台运行 rsync

nohup rsync -avz /source/ user@remote_host:/destination/

这使得进程即使在注销后也能继续运行。

在本地目录中,我们添加了一个新文件 new_file.txt33333333,然后断开了 PuttySSH 终端连接,上述命令使我们即使在服务器断开连接时也能发送文件。

使用 Cron Jobs 自动化文件传输

要使用 cron 安排自动同步,请打开 crontab:

crontab -e

添加一个任务,使 rsync 每天午夜运行一次:

0 0 * * * rsync -avz /source/ user@remote_host:/destination/

结论

rsync

Linux 文件管理中不可或缺的工具,提供高效的网络同步和传输能力。无论你是在备份 WordPress 网站、镜像日志,还是在 ava.hosting 可靠的 VPS 上迁移数据,

rsync

都能节省时间和带宽。例如,你可以使用

rsync

将 ava.hosting 服务器的

/var/www

目录安全地备份到远程位置,确保数据安全。借助 ava.hosting 的高性能基础设施和

rsync

的多样化选项,你可以简化工作流程、自动化备份,并充满信心地管理文件。