[linux] rsync 文件同步-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

rsync 是一个开源的、快速且高度可定制的文件同步工具。

它可以通过本地网络或远程网络传输文件并且只会传输发生更改的部分从而大大提高了文件同步的效率。

文章目录

以下是 rsync 的一些常见用法和选项

本地同步

  1. 本地同步使用 rsync 可以将一个目录中的所有文件和子目录同步到另一个目录命令如下
rsync -avz /path/to/source /path/to/destination

其中
-a 表示归档模式将尝试保留文件权限、时间戳等元数据
-v 表示详细输出信息
-z 表示启用压缩以加快传输速度。


远程同步

远程同步到本地

远程同步使用 rsync 还可以在两个不同的机器之间同步文件命令如下

rsync -avz -e ssh user@host:/path/to/source /path/to/destination

这个命令是使用 rsync 进行远程文件同步的常见用法。下面是对该命令的解释

-a (archive)以归档模式进行同步保留文件的权限、所有者、组、时间戳等元数据信息。
-v (verbose)显示详细的输出信息让你可以看到哪些文件被同步。
-z (compress)启用压缩通过网络传输文件时可以减少传输的数据量加快传输速度。
-e ssh: 选项参数指定使用 SSH 协议进行远程连接和传输。

user@host:/path/to/source: 源文件路径表示要同步的文件或目录所在的远程主机、用户名和路径。

/path/to/destination: 目标文件路径表示同步后文件或目录要保存到的本地位置。

使用该命令时rsync 将会通过 SSH 连接到远程主机在源目录中找到变更的文件并将其复制到本地的目标目录中。

如果目标目录不存在则会创建它。同时rsync 会检查目标目录中的文件如果源目录中已经删除了某个文件rsync 也会将其从目标目录中删除。

请注意运行该命令需要确保远程主机能够通过 SSH 连接并且你有权限访问源目录和目标目录。

本地同步到远程

rsync -avz -e ssh /path/to/source user@host:/path/to/destination

同步单个文件

#!/bin/bash

# 定义本地文件路径和远程主机信息
local_file=/path/to/local/file.txt
remote_host=user@remotehost:/path/to/remote/

# 使用 rsync 同步单个文件

rsync -avz --progress "$local_file" "$remote_host"

-a 表示使用归档模式同步文件保留文件的权限、时间戳等元数据。-v 表示在终端显示详细输出信息。-z 表示启用压缩传输可以加快传输速度。

--progress 表示显示传输进度。

运行脚本时rsync 命令会将本地文件传输到远程主机指定的路径。

需要注意的是如果你只想同步文件夹下的某个文件需要在 local_file 中指定文件所在的路径例如 /path/to/folder/file.txt。


排除

同步时排
除某些文件或目录有时候我们需要排除特定的文件或目录不进行同步可以使用 --exclude 选项例如

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

其中 --exclude=‘*.txt’ 表示排除所有扩展名为 .txt 的文件。

删除

同步时删除目标目录中不存在的文件使用 --delete 选项可以在同步时删除目标目录中不存在的文件例如

rsync -avz --delete /path/to/source /path/to/destination

其中 --delete 表示删除目标目录中不存在的文件。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: linux