标签:实时 cal user uid cti 加密传输 etc 通过 第一个
运维人员基本职责Rsync是一款开源的、快速的、多功能的、可实现全量及增量的本地或远程数据同步备份的优秀工具
rsync — a fast, versatile, remote (and local) file-copying tool
来自:http://www.samba.org/ftp/rsync/rsync.html
通过:man rsync
全量复制:是将所有备份数据都同步一遍
增量复制:只将变化的新增的数据,进行备份同步
1、shell模式,也称作本地模式
2、远程shell模式,此时可以利用ssh协议承载其数据传输过程
3、列表模式,其工作方式与ls相似,仅列出源的内容:-nv
4、服务器模式,此时,rsync可以工作在守护进程,能够接收客
户端的数据请求;在使用时,可以在客户端使用rsync命令把文件发送
到守护进程,也可以像服务器请求获取文件
1.2.1 具有本地数据备份复制功能(类似于cp命令)
本地文件数据备份
[root@backup ~]# \cp /etc/hosts /tmp/
[root@backup ~]# ll /tmp/hosts
-rw-r--r-- 1 root root 371 Nov 28 09:05 /tmp/hosts
[root@backup ~]# rsync /etc/hosts /tmp/
、 [root@backup ~]# ll /tmp/hosts
-rw-r--r-- 1 root root 371 Nov 28 09:07 /tmp/hosts
本地目录数据备份
[root@backup ~]# mkdir /oldboy_dir/
[root@backup ~]# touch /oldboy_dir/{a..e}
[root@backup ~]# tree /oldboy_dir/
/oldboy_dir/
├── a
├── b
├── c
├── d
└── e
[root@backup ~]# cp -r /oldboy_dir/ /tmp/
[root@backup ~]# ll /tmp/oldboy_dir/ -d
drwxr-xr-x 2 root root 4096 Nov 28 09:10 /tmp/oldboy_dir/
[root@backup ~]# tree /tmp/oldboy_dir/
/tmp/oldboy_dir/
├── a
├── b
├── c
├── d
└── e
0 directories, 5 files
[root@backup ~]# rsync -r /oldboy_dir/ /tmp/
[root@backup ~]# ll /tmp/oldboy_dir/ -d
ls: cannot access /tmp/oldboy_dir/: No such file or directory
说明:备份目录下面的数据内容备份过去了,但目录本身没有备份
[root@backup ~]# rsync -r /oldboy_dir /tmp/
[root@backup ~]# ll /tmp/oldboy_dir/ -d
drwxr-xr-x 2 root root 4096 Nov 28 09:13 /tmp/oldboy_dir/
[root@backup ~]# tree /tmp/oldboy_dir/
/tmp/oldboy_dir/
├── a
├── b
├── c
├── d
└── e
0 directories, 5 files
总结说明:利用rsync命令在备份数据目录时
备份的数据目录后面有 / 类似这样形式/oldboy_dir/,表示只将oldboy_dir目录下面的内容进行复制
备份的数据目录后面没有 / 类似这样形式/oldboy_dir, 表示将oldboy_dir目录下面的内容以及目录本身进行复制
1.2.2 具有远程数据备份复制功能(类似于scp命令)
[root@backup ~]# scp /etc/hosts 172.16.1.31:/tmp/
root@172.16.1.31‘s password:
hosts 100% 371 0.4KB/s 00:00
[root@backup ~]# scp -r /oldboy_dir/ 172.16.1.31:/tmp/
root@172.16.1.31‘s password:
Permission denied, please try again.
root@172.16.1.31‘s password:
c 100% 0 0.0KB/s 00:00
d 100% 0 0.0KB/s 00:00
e 100% 0 0.0KB/s 00:00
b 100% 0 0.0KB/s 00:00
a 100% 0 0.0KB/s 00:00
说明:scp命令属于全量复制
[root@backup ~]# rsync /etc/hosts 172.16.1.31:/tmp
root@172.16.1.31‘s password:
[root@backup ~]# rsync -rv /oldboy_dir 172.16.1.31:/tmp/
root@172.16.1.31‘s password:
sending incremental file list
oldboy_dir/
oldboy_dir/a
oldboy_dir/b
oldboy_dir/c
oldboy_dir/d
oldboy_dir/e
说明:rsync命令属于增量复制
1.2.3 数据删除功能(类似于rm命令)
[root@backup tmp]# mkdir /null
[root@backup tmp]# rsync -rv --delete /null/ /tmp/oldboy_dir/
sending incremental file list
deleting e
deleting d
deleting c
deleting b
deleting a
sent 24 bytes received 12 bytes 72.00 bytes/sec
total size is 0 speedup is 0.00
[root@backup tmp]# tree /tmp/oldboy_dir/
/tmp/oldboy_dir/
0 directories, 0 files
[root@backup tmp]#
说明:rsync命令清空目录内容或者清空文件内容效率比rm命令要高
1.2.4 可以进行数据信息查看(类似于ls命令)
[root@backup tmp]# rsync /etc/hosts
-rw-r--r-- 371 2017/11/27 12:15:46 hosts
Rsync通过其独特的“quick check”算法,它仅同步大小或者最后修改时间发生变化的文件或目录,
当然也可根据权限,属主等属性的变化同步
1) 支持拷贝普通文件与特殊文件如链接文件,设备等。
? 2) 可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。
#tar zcvf backup_1.tar.gz /opt/data -exclude=oldboy
说明:在打包/opt/data时就排除了oldboy命名的目录和文件。
? 3) 可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变-p。
? 4) 可实现增量同步,既只同步发生变化的数据,因此数据传输效率很高(tar -N)。
# tar -N 2008-01-29 -zcvf /backups/inc-backup_$(date +%F).tar.gz /home
将备份 /home 目录昨天以来修改过的文件
tar -N $(date -d yesterday "+%F") -zcvf /backups/inc-backup_$(date +%F).tar.gz /home
添加文件到已经打包的文件
tar -rf all.tar *.gif
说明:这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
? 5) 可以使用rcp,rsh,ssh等方式来配合进行隧道加密传输文件(rsync本身不对数据加密)
? 6) 可以通过socket(进程方式)传输文件和数据(服务端和客户端)*****。重点掌握
? 7) 支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像。
1.5 rsync软件工作原理
Local: rsync [OPTION...] SRC... [DEST]
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
1.6.1 本地数据备份功能(类似于cp)
Local: rsync [OPTION...] SRC... [DEST]
rsync ---数据备份命令
[OPTION...] ---命令相关参数
SRC... ---要进行本地备份的数据信息
[DEST] ---把数据备份到本地什么位置
1.6.2 远程数据备份功能
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
拉过程语法解释说明
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
rsync ---数据备份命令
[OPTION...] ---命令相关参数
[USER@] ---以什么用户身份进行数据信息拉取
HOST: ---远程主机地址信息,或者可以写为远程主机名称信息
SRC... ---要进行远程传输备份的远程数据信息
[DEST] ---把远程数据备份到本地什么位置
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
rsync ---数据备份命令
[OPTION...] ---命令相关参数
[USER@] ---以什么用户身份进行数据信息推送
HOST: ---远程主机地址信息,或者可以写为远程主机名称信息
SRC... ---要进行远程传输备份的本地数据信息
[DEST] ---把本地数据备份到远程什么位置
1.6.3 守护进程方式进行数据备份传输(服务端和客户端)
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync ---数据备份命令
[OPTION...] ---命令相关参数
[USER@] ---远程连接认证用户身份信息,认证用户为一个虚拟用户,不需要进行创建
HOST:: ---远程主机地址信息,或者可以写为远程主机名称信息
SRC... ---要进行远程传输备份的远程模块信息
[DEST] ---把远程数据备份到本地什么位置
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync ---数据备份命令
[OPTION...] ---命令相关参数
[USER@] ---远程连接认证用户身份信息,认证用户为一个虚拟用户,不需要进行创建
HOST:: ---远程主机地址信息,或者可以写为远程主机名称信息
SRC... ---本地要进行远程传输复制的文件或目录信息
DEST ---要进行远程传输备份的远程模块信息
1) 定时同步+rsync进行数据备份:一般是网站内部人员存储的数据信息,用定时同步
2) 实时同步+rsync进行数据备份:一般是网站外部人员存储的数据信息,用实时同步
会有全网数据备份项目说明
1.8.1 rsync守护进程服务端部署
第一个里程碑:检查部署软件服务是否存在
[root@backup /]# rpm -qa|grep rsync
rsync-3.0.6-12.el6.x86_64
第二个里程碑:进行rsync软件配置
vim /etc/rsyncd.conf --- 此配置文件默认不存在,需要创建生成
#rsync_config
#created by HQ at 2017
##rsyncd.conf start##
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = "backup dir by oldboy"
path = /backup
第三个里程碑:创建rsync备份目录管理用户
[root@backup /]# useradd -s /sbin/nologin -M rsync
[root@backup /]# id rsync
uid=1000(rsync) gid=1001(rsync) groups=1001(rsync)
第四个里程碑:创建rsync服务端备份数据目录
[root@backup /]# mkdir /backup
[root@backup /]# chown -R rsync.rsync /backup/
[root@backup /]# ll -d /backup/
drwxr-xr-x 2 rsync rsync 4096 Nov 28 11:22 /backup/
第五个里程碑:创建用户认证文件
[root@backup /]# echo ‘rsync_backup:oldboy123‘ >/etc/rsync.passsword
[root@backup /]# chmod 600 /etc/rsync.passsword
[root@backup /]# cat /etc/rsync.passsword
rsync_backup:oldboy123
[root@backup /]# ll /etc/rsync.passsword
-rw------- 1 root root 23 Nov 28 11:24 /etc/rsync.passsword
第六个里程碑:启动rsync服务,启动守护进程
[root@backup /]# rsync --daemon
[root@backup /]# ps -ef|grep rsync
root 4566 1 0 11:26 ? 00:00:00 rsync --daemon
root 4568 2809 0 11:27 pts/0 00:00:00 grep --color=auto rsync
[root@backup /]# netstat -lntup|grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0: LISTEN 4566/rsync
tcp 0 0 :::873 ::: LISTEN 4566/rsync
1.8.2 rsync守护进程客户端部署
客户端测试过程:
rsync -av /etc/hosts rsync_backup@172.16.1.41::backup
-n:测试,在不确定命令是否能按照意愿执行时,务必要实现测试
-v:详细输出模式,--verbose
-q:--quiet,静默模式
-c:--checksum,开启校验功能,强行对文件传输进行校验
-r:--recursive,递归复制 表示增加文件的意思
标签:实时 cal user uid cti 加密传输 etc 通过 第一个
原文地址:http://blog.51cto.com/13547156/2060616