Skip to main content

1.rsync工具使用

rsync简介

rsync 是一个用于文件传输和同步的工具,它可以在本地系统之间或通过 SSH 在远程系统之间传输文件。rsync 的主要特点包括:

rsync功能

  • 增量传输: rsync 通过比较源和目标文件的差异,仅传输已更改的部分,从而实现增量传输,节省带宽和时间。
  • 支持复制文件、目录和链接: rsync 可以用于复制文件、目录以及符号链接,并可以递归地传输整个目录结构。
  • 支持远程传输: rsync 可以通过 SSH 协议实现远程文件传输,保证传输的安全性。
  • 支持同步和备份: rsync 可以用于实现文件同步,确保源和目标之间的文件保持一致。它也可以用于备份文件和目录。
  • 过滤和排除: rsync 允许通过过滤规则和排除规则来选择传输的文件,以便定制传输内容。

配置文件

rsync 可以通过配置文件指定常用选项,配置文件的默认位置是 /etc/rsyncd.conf。你可以创建一个自定义的配置文件,然后通过 -–config 选项指定该文件。

示例配置文件(rsyncd.conf):

# /etc/rsyncd.conf

uid = nobody
gid = nobody
use chroot = yes
max connections = 10
read only = yes
pid file = /var/run/rsyncd.pid

[module_name]
path = /path/to/module
comment = My Rsync Module
auth users = user1
secrets file = /etc/rsyncd.secrets
hosts allow = 192.168.1.0/24

示例运行 rsync 时指定配置文件:

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

SSH 配置

如果使用 SSH 进行远程传输,可以通过 SSH 的配置文件来优化 rsync

示例 SSH 配置文件(~/.ssh/config):

Host myserver
HostName example.com
User myuser
Port 22
IdentityFile ~/.ssh/id_rsa

然后,可以在 rsync 命令中使用主机别名 myserver

rsync -av -e ssh /source/path/ myserver:/destination/path/

常见命令

  • -a, --archive: 归档模式,递归传输目录,并保持所有文件的属性。
  • -v, --verbose: 显示详细输出。
  • -e, --rsh: 指定远程 shell 的路径,通常用于指定 SSH。
  • --delete: 删除目标中多余的文件。
  • --exclude: 排除特定的文件或目录。

本地文件传输

rsync -av /source/path/ /destination/path/

本地文件传输并删除目标中多余的文件

rsync -av --delete /source/path/ /destination/path/

远程文件传输(通过 SSH)

rsync -av -e ssh user@remote:/source/path/ /destination/path/

使用过滤规则

rsync -av --exclude='*.txt' /source/path/ /destination/path/