You've already forked www.colben.cn
update
This commit is contained in:
101
content/post/rsync.md
Normal file
101
content/post/rsync.md
Normal file
@@ -0,0 +1,101 @@
|
||||
---
|
||||
title: "rsync 命令"
|
||||
date: 2019-10-29T21:21:14+08:00
|
||||
lastmod: 2019-10-29T21:21:14+08:00
|
||||
keywords: []
|
||||
tags: ["rsync", "同步"]
|
||||
categories: ["shell"]
|
||||
---
|
||||
|
||||
# 简介
|
||||
- rsync(Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。
|
||||
- 支持:
|
||||
- 本地复制
|
||||
- 与其他SSH同步
|
||||
- 与rsync主机同步
|
||||
|
||||
# rsyncd 源服务
|
||||
- 创建 rsync 配置文件 /etc/rsyncd.conf,内容如下
|
||||
```ini
|
||||
# 限制客户端登陆身份为 nobody:nobody
|
||||
uid = nobody
|
||||
gid = nobody
|
||||
# 禁锢在源目录下
|
||||
use chroot = yes
|
||||
# 指定监听端口,默认监听 tcp 873 端口
|
||||
port = 873
|
||||
# 指定监听地址,默认监听全部网卡
|
||||
address = 192.168.1.101
|
||||
# 允许访问的客户端地址
|
||||
hosts allow = 192.168.1.0/24
|
||||
max connections = 4
|
||||
# 日志位置
|
||||
log file = /var/log/rsyncd.log
|
||||
# PID 文件位置
|
||||
pid file = /var/run/rsyncd.pid
|
||||
exclude = lost+found/
|
||||
transfer logging = yes
|
||||
timeout = 900
|
||||
ignore nonreadable = yes
|
||||
# 同步时不压缩的文件类型
|
||||
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
|
||||
# 账户文件,每行格式 user:password,权限 600
|
||||
secrets file = /etc/rsyncd_users.db
|
||||
|
||||
[data1]
|
||||
# 源目录实际路径,注意该目录需要对 nobody 用户可读
|
||||
path = /path/to/data1
|
||||
# 描述
|
||||
comment = sth about dir data1
|
||||
# 只读
|
||||
read only = yes
|
||||
# 授权账户
|
||||
auth users = backuper
|
||||
```
|
||||
- 创建备份帐号信息
|
||||
```bash
|
||||
echo 'backuper:123456' > /etc/rsyncd_users.db
|
||||
chmod 0600 /etc/rsyncd_users.db
|
||||
```
|
||||
- 启动 rsyncd 服务
|
||||
```bash
|
||||
systemctl start rsyncd
|
||||
```
|
||||
|
||||
# rsync 命令选项
|
||||
- -r: 递归模式,包含目录及子目录中所有文件
|
||||
- -l: 对于符号链接文件仍然复制为符号链接文件
|
||||
- -p: 保留文件的权限标记
|
||||
- -t: 保留文件的时间标记
|
||||
- -g: 保留文件的属组标记(仅超级用户使用)
|
||||
- -o: 保留文件的属主标记(仅超级用户使用)
|
||||
- -D: 保留设备文件及其他特殊文件
|
||||
- -a: 归档模式,递归并保留对象属性,等同于 -rlptgoD
|
||||
- -v: 显示同步过程的详细(verbose)信息
|
||||
- -z: 在传输文件时进行压缩(compress)
|
||||
- -H: 保留硬连接文件
|
||||
- -A: 保留ACL属性信息
|
||||
- --delete: 删除目标位置有而原始位置没有的文件
|
||||
- --checksum: 根据对象的校验和来决定是否跳过文件
|
||||
- --password-file: 指定包含密码的文件
|
||||
|
||||
# 简单使用
|
||||
- 本地复制,类似 cp 命令
|
||||
```bash
|
||||
rsync -a /etc/passwd 123.txt
|
||||
```
|
||||
- 与其他 ssh 同步
|
||||
```bash
|
||||
rsync -av root@192.168.1.100:/root/123.txt .
|
||||
```
|
||||
- 与 rsync 主机同步
|
||||
```bash
|
||||
rsync -avz backuper@192.168.1.100::data1 /root
|
||||
# 或者
|
||||
rsync -avz rsync://backuper@192.168.1.100/data1 /root
|
||||
```
|
||||
- 向同步源服务上传文件时,直接调换源参数和目的参数,注意客户端可写上传目录
|
||||
|
||||
# 参考
|
||||
- [https://www.linuxidc.com/Linux/2019-08/160108.htm](https://www.linuxidc.com/Linux/2019-08/160108.htm)
|
||||
|
Reference in New Issue
Block a user