2019-04-08 11:31:36 +08:00
|
|
|
|
# Rsync 的使用
|
|
|
|
|
|
2019-12-25 10:20:29 +08:00
|
|
|
|
## 参数说明
|
|
|
|
|
|
2020-05-20 16:18:39 +08:00
|
|
|
|
```bash
|
2019-12-25 10:20:29 +08:00
|
|
|
|
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
|
2020-07-10 06:58:42 +08:00
|
|
|
|
-e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
|
2019-12-25 10:20:29 +08:00
|
|
|
|
-g, --group 保持文件属组信息
|
2020-07-10 06:58:42 +08:00
|
|
|
|
-H, --hard-links 保留硬链结
|
|
|
|
|
-l, --links 保留软链结,加上这个参数,同步过来的文件会保持之前的软链接属性不变
|
2019-12-25 10:20:29 +08:00
|
|
|
|
-o, --owner 保持文件属主信息
|
2020-07-10 06:58:42 +08:00
|
|
|
|
-p, --perms 保持文件权限
|
2019-12-25 10:20:29 +08:00
|
|
|
|
-r, --recursive 对子目录以递归模式处理。同步目录的时候要加上这个参数
|
2020-07-10 06:58:42 +08:00
|
|
|
|
-v, --verbose 详细模式输出
|
2019-12-25 10:20:29 +08:00
|
|
|
|
-z, --compress 对备份的文件在传输时进行压缩处理
|
2020-07-10 06:58:42 +08:00
|
|
|
|
--bwlimit=KBPS 限制I/O带宽,KBytes per second
|
2019-12-25 10:20:29 +08:00
|
|
|
|
--delete 删除那些目标目录中有而源目录中没有的多余文件。这个是rsync做增量方式的全备份的最佳选择方案!!!!!!
|
|
|
|
|
--delete-after 在同步操作之后做比较,删除那些目标目录中有而源目录中没有的多余文件
|
2020-07-10 06:58:42 +08:00
|
|
|
|
--delete-before 接受者在输出之前进行删除操作。即先将目标目录中文件全部删除,再将源目录文件拷贝过去。这是rsync保持目标目录跟源目录一致的方案!!!
|
2019-12-25 10:20:29 +08:00
|
|
|
|
--delete-excluded 删除目标目录中那些被该选项指定排除的文件
|
|
|
|
|
--exclude 指定同步时需要过滤掉的文件或子目录(即不需要同步过去的),后面直接跟不需要同步的单个文件名或子目录(不需要跟路径) ,过滤多个文件或子目录,就使用多个--exclude
|
|
|
|
|
--exclude-from 指定同步时需要过滤掉的文件或子目录,后面跟文件(比如/root/exclue.txt),然后将不需要同步的文件和子目录放到/root/exclue.txt下。
|
2020-07-10 06:58:42 +08:00
|
|
|
|
--ignore-errors 即使出现IO错误也进行删除,忽略错误
|
2019-12-25 10:20:29 +08:00
|
|
|
|
--log-format=formAT 指定日志文件格式
|
|
|
|
|
--password-file=FILE 从FILE中得到密码
|
2020-07-10 06:58:42 +08:00
|
|
|
|
--port=PORT 指定其他的rsync服务端口
|
|
|
|
|
--progress 打印同步的过程
|
|
|
|
|
--remove-source-files sender removes synchronized files (non-dirs)
|
|
|
|
|
--stats 给出某些文件的传输状态
|
|
|
|
|
--timeout=TIME 同步过程中,IP超时时间,单位为秒
|
|
|
|
|
--version 打印版本信息
|
2019-12-25 10:20:29 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 使用示例
|
|
|
|
|
|
2019-04-08 11:31:36 +08:00
|
|
|
|
带进度拷贝如下
|
|
|
|
|
|
2020-05-20 16:18:39 +08:00
|
|
|
|
```bash
|
2019-12-25 10:20:29 +08:00
|
|
|
|
rsync -arlP <src> <dst>
|
2019-12-25 10:02:19 +08:00
|
|
|
|
```
|
2019-04-08 11:31:36 +08:00
|
|
|
|
|
|
|
|
|
带压缩的拷贝
|
|
|
|
|
|
2020-05-20 16:18:39 +08:00
|
|
|
|
```bash
|
2020-07-10 16:34:44 +08:00
|
|
|
|
rsync -avzzrlP <src> <dst>
|
2019-12-25 10:02:19 +08:00
|
|
|
|
```
|
2019-04-08 11:31:36 +08:00
|
|
|
|
|
|
|
|
|
远程拷贝
|
|
|
|
|
|
2020-05-20 16:18:39 +08:00
|
|
|
|
```bash
|
2020-07-10 16:34:44 +08:00
|
|
|
|
rsync -avzzrlP <file> <usrname>@<IP>:<path & name>
|
2019-12-25 10:20:29 +08:00
|
|
|
|
# 或
|
2020-07-10 16:34:44 +08:00
|
|
|
|
rsync -avzzrlP <usrname>@<IP>:<path & name> <file>
|
2019-12-25 10:43:55 +08:00
|
|
|
|
# 或
|
2020-07-10 16:34:44 +08:00
|
|
|
|
rsync -avzzrlP -e 'ssh -p <port>' <usrname>@<IP>:<path & name> <file>
|
2019-12-25 10:20:29 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
排除文件或目录
|
|
|
|
|
|
2020-05-20 16:18:39 +08:00
|
|
|
|
```bash
|
2020-07-10 16:34:44 +08:00
|
|
|
|
rsync -avzzrlP <usrname>@<IP>:<path & name> --exclude <exclude file1> --exclude <exclude fileN> <file>
|
2019-12-25 10:02:19 +08:00
|
|
|
|
```
|
2020-07-10 06:58:42 +08:00
|
|
|
|
|
2020-07-10 06:59:57 +08:00
|
|
|
|
同步后删除源文件,相当于移动文件操作(不影响目录)
|
2020-07-10 06:58:42 +08:00
|
|
|
|
|
|
|
|
|
```bash
|
2020-07-10 16:34:44 +08:00
|
|
|
|
rsync -avzzrlP --remove-source-files <src> <dest>
|
2020-07-10 06:58:42 +08:00
|
|
|
|
```
|