Linux Rsync文件同步备份
2016-09-07 17:32
288 查看
一、rsync介绍
Rsync 是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件。 Rsync 本来是用以取代 rcp 的一个工具,它当前由 rsync.samba.org 维护。 Rsync 使用所谓的“ Rsync 演算法 ”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。运行 Rsync server 的机器也叫 backup server ,一个 Rsync server 可同时备份多个 client 的数据;也可以多个 Rsync server 备份一个 client 的数据。
Rsync 可以搭配 rsh 或 ssh 甚至使用 daemon 模式。 Rsync server 会打开一个 873 的服务通道 (port) ,等待对方 Rsync 连接。连接时, Rsync server 会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送二个文件之间不同的部份。
Rsync 支持大多数的类 Unix 系统,无论是 Linux 、 Solaris 还是 BSD 上都经过了良好的测试。此外,它在 windows 平台下也有相应的版本,比较知名的有 cwRsync 和 Sync2NAS 。
Rsync 的基本特点如下:
1. 可以镜像保存整个目录树和文件系统;
2. 可以很容易做到保持原来文件的权限、时间、软硬链接等;
3. 无须特殊权限即可安装;
4. 优化的流程,文件传输效率高;
5. 可以使用 rcp 、 ssh 等方式来传输文件,当然也可以通过直接的 socket 连接;
6. 支持匿名传输。
二、rsync 的命令格式可以为以下六种:
rsync [OPTION]... SRC DEST
rsync [OPTION]... SRC [USER@]HOST:DEST
rsync [OPTION]... [USER@]HOST:SRC DEST
rsync [OPTION]... [USER@]HOST::SRC DEST
rsync [OPTION]... SRC [USER@]HOST::DEST
rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
对应于以上六种命令格式, rsync 有六种不同的工作模式:
1) 拷贝本地文件。当 SRC 和 DES 路径信息都不包含有单个冒号 ":" 分隔符时就启动这种工作模式。
2) 使用一个远程 shell 程序 ( 如 rsh 、 ssh) 来实现将本地机器的内容拷贝到远程机器。当 DST 路径地址包含单个冒号 ":" 分隔符时启动该模式。
3) 使用一个远程 shell 程序 ( 如 rsh 、 ssh) 来实现将远程机器的内容拷贝到本地机器。当 SRC 地址路径包含单个冒号 ":" 分隔符时启动该模式。
4) 从远程 rsync 服务器中拷贝文件到本地机。当 SRC 路径信息包含 "::" 分隔符时启动该模式。
5) 从本地机器拷贝文件到远程 rsync 服务器中。当 DST 路径信息包含 "::" 分隔符时启动该模式。
6) 列远程机的文件列表。这类似于 rsync 传输,不过只要在命令中省略掉本地机信息即可。
三、实例介绍
[backup@backup /]#/usr/bin/rsync -vzrltogp --progress --delete user@x.x.x.168::attachment /usr/local/apache/htdocs/pub/html/ --password-file=/etc/rsync.scrt
备注:attachment是在/etc/rsyncd.conf中配置,后面有详细介绍
上面这个命令行中-vzrtopg代表的意思是:
-v表示verbose(详细)
-z表示zip(压缩)
-r表示recursive(递归目录)
-topg是保持文件原有属性如o=owner(属主)、t=times(时间)、p=perms(权限)、g=group(组)的参数 -H表示保持硬连接
-l:保留软链结
-u:表示只更新源文件比目标时间新的文件
--progress是指显示出详细的进度情况
--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。
user@x.x.x.168::attachment 是表示对服务器x.x.x.168中的attachment模块进行备份,登录帐号是user --password-file = /etc/rsync.scrt来指定密码文件,这里需要注意的是这份密码文件权限属性要设得只有属主可读(权限为600),属主为正在运行此命令的用户。
-a:(-a, --archive equivalent to -rlptgoD)以archive模式操作,复制目录、符号连接在这里面
log file = /var/log/rsync/rsyncd.log #日志记录文件
motd file = /var/log/rsync/rsyncd.motd #欢迎消息
strict modes =yes #是否检查口令文件的权限
查看rsync的配置文件rsyncd.conf
[root@auc-test2 ~]# cat /etc/rsyncd.conf
[attachment] # 指定认证的备份模块名
path = /www/htdocs/pub/attachment/ # 需要备份的目录
comment = BACKUP attachment # 注释
ignore errors # 忽略一些无关的IO错误
read only = false # 设置为非只读,即可以传至服务器的相应目录。
list = false # 不允许列文件
#exclude = test/ test.php #设置不同步的目录或文件用空格隔开
#hosts allow = 210.51.0.80 #允许连接服务器的主机IP地址,如果多个ip则用空格隔开
#hosts deny = 0.0.0.0/0.0.0.0 #禁止连接服务器的主机IP地址,也可为*,表示所有。
auth users = msyn # 认证的用户名,如果没有这行,则表明是匿名 secrets file = /etc/rsyncd.scrt # 认证文件名,用来存放密码
[98htdocs]
uid = nobody gid = nobody
path = /www/htdocs/ #ignore errors read only = true
list = true
#hosts allow = 210.51.0.98
#hosts deny = 202.108.211.38
#hosts deny = 0.0.0.0/0.0.0.0
auth users = msyn,myname2
secrets file = /etc/rsyncd.scrt
==========================================================
这里分别定义了[attachment]、[98htdocs],分别对应于二个需要备份的目树。二个模块授权的备份用户分别为msyn,msyn,98syn,用户信息保存在文件 /etc/rsyncd.secrets,其内容如下:
[root@auc-test2 ~]# cat /etc/rsyncd.secrets
rsync:123456
或者
[root@auc-test2 ~]# cat /etc/rsync.secrets
123456
注意:该文件只能是root用户可读写的,注意,出于安全目的,这个文件的属性必需是只有属主可读,否则rsync将拒绝运行。
我们可以设置它的属性为600:
[root@www /etc]# chmod 600 /etc/rsyncd.secrets
这些文件配置完毕以后,就需要在主服务器上启动rsyncd服务:
[root@www /etc]# /usr/local/bin/rsync --daemon
执行完毕上面的命令后,rsync即可启动。rsync默认服务端口为873,服务器在该端口接收客户的匿名或者认证方式的备份请求。
c897
Rsync 是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机间的文件。 Rsync 本来是用以取代 rcp 的一个工具,它当前由 rsync.samba.org 维护。 Rsync 使用所谓的“ Rsync 演算法 ”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。运行 Rsync server 的机器也叫 backup server ,一个 Rsync server 可同时备份多个 client 的数据;也可以多个 Rsync server 备份一个 client 的数据。
Rsync 可以搭配 rsh 或 ssh 甚至使用 daemon 模式。 Rsync server 会打开一个 873 的服务通道 (port) ,等待对方 Rsync 连接。连接时, Rsync server 会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送二个文件之间不同的部份。
Rsync 支持大多数的类 Unix 系统,无论是 Linux 、 Solaris 还是 BSD 上都经过了良好的测试。此外,它在 windows 平台下也有相应的版本,比较知名的有 cwRsync 和 Sync2NAS 。
Rsync 的基本特点如下:
1. 可以镜像保存整个目录树和文件系统;
2. 可以很容易做到保持原来文件的权限、时间、软硬链接等;
3. 无须特殊权限即可安装;
4. 优化的流程,文件传输效率高;
5. 可以使用 rcp 、 ssh 等方式来传输文件,当然也可以通过直接的 socket 连接;
6. 支持匿名传输。
二、rsync 的命令格式可以为以下六种:
rsync [OPTION]... SRC DEST
rsync [OPTION]... SRC [USER@]HOST:DEST
rsync [OPTION]... [USER@]HOST:SRC DEST
rsync [OPTION]... [USER@]HOST::SRC DEST
rsync [OPTION]... SRC [USER@]HOST::DEST
rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
对应于以上六种命令格式, rsync 有六种不同的工作模式:
1) 拷贝本地文件。当 SRC 和 DES 路径信息都不包含有单个冒号 ":" 分隔符时就启动这种工作模式。
2) 使用一个远程 shell 程序 ( 如 rsh 、 ssh) 来实现将本地机器的内容拷贝到远程机器。当 DST 路径地址包含单个冒号 ":" 分隔符时启动该模式。
3) 使用一个远程 shell 程序 ( 如 rsh 、 ssh) 来实现将远程机器的内容拷贝到本地机器。当 SRC 地址路径包含单个冒号 ":" 分隔符时启动该模式。
4) 从远程 rsync 服务器中拷贝文件到本地机。当 SRC 路径信息包含 "::" 分隔符时启动该模式。
5) 从本地机器拷贝文件到远程 rsync 服务器中。当 DST 路径信息包含 "::" 分隔符时启动该模式。
6) 列远程机的文件列表。这类似于 rsync 传输,不过只要在命令中省略掉本地机信息即可。
三、实例介绍
[backup@backup /]#/usr/bin/rsync -vzrltogp --progress --delete user@x.x.x.168::attachment /usr/local/apache/htdocs/pub/html/ --password-file=/etc/rsync.scrt
备注:attachment是在/etc/rsyncd.conf中配置,后面有详细介绍
上面这个命令行中-vzrtopg代表的意思是:
-v表示verbose(详细)
-z表示zip(压缩)
-r表示recursive(递归目录)
-topg是保持文件原有属性如o=owner(属主)、t=times(时间)、p=perms(权限)、g=group(组)的参数 -H表示保持硬连接
-l:保留软链结
-u:表示只更新源文件比目标时间新的文件
--progress是指显示出详细的进度情况
--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。
user@x.x.x.168::attachment 是表示对服务器x.x.x.168中的attachment模块进行备份,登录帐号是user --password-file = /etc/rsync.scrt来指定密码文件,这里需要注意的是这份密码文件权限属性要设得只有属主可读(权限为600),属主为正在运行此命令的用户。
-a:(-a, --archive equivalent to -rlptgoD)以archive模式操作,复制目录、符号连接在这里面
log file = /var/log/rsync/rsyncd.log #日志记录文件
motd file = /var/log/rsync/rsyncd.motd #欢迎消息
strict modes =yes #是否检查口令文件的权限
查看rsync的配置文件rsyncd.conf
[root@auc-test2 ~]# cat /etc/rsyncd.conf
[attachment] # 指定认证的备份模块名
path = /www/htdocs/pub/attachment/ # 需要备份的目录
comment = BACKUP attachment # 注释
ignore errors # 忽略一些无关的IO错误
read only = false # 设置为非只读,即可以传至服务器的相应目录。
list = false # 不允许列文件
#exclude = test/ test.php #设置不同步的目录或文件用空格隔开
#hosts allow = 210.51.0.80 #允许连接服务器的主机IP地址,如果多个ip则用空格隔开
#hosts deny = 0.0.0.0/0.0.0.0 #禁止连接服务器的主机IP地址,也可为*,表示所有。
auth users = msyn # 认证的用户名,如果没有这行,则表明是匿名 secrets file = /etc/rsyncd.scrt # 认证文件名,用来存放密码
[98htdocs]
uid = nobody gid = nobody
path = /www/htdocs/ #ignore errors read only = true
list = true
#hosts allow = 210.51.0.98
#hosts deny = 202.108.211.38
#hosts deny = 0.0.0.0/0.0.0.0
auth users = msyn,myname2
secrets file = /etc/rsyncd.scrt
==========================================================
这里分别定义了[attachment]、[98htdocs],分别对应于二个需要备份的目树。二个模块授权的备份用户分别为msyn,msyn,98syn,用户信息保存在文件 /etc/rsyncd.secrets,其内容如下:
[root@auc-test2 ~]# cat /etc/rsyncd.secrets
rsync:123456
或者
[root@auc-test2 ~]# cat /etc/rsync.secrets
123456
注意:该文件只能是root用户可读写的,注意,出于安全目的,这个文件的属性必需是只有属主可读,否则rsync将拒绝运行。
我们可以设置它的属性为600:
[root@www /etc]# chmod 600 /etc/rsyncd.secrets
这些文件配置完毕以后,就需要在主服务器上启动rsyncd服务:
[root@www /etc]# /usr/local/bin/rsync --daemon
执行完毕上面的命令后,rsync即可启动。rsync默认服务端口为873,服务器在该端口接收客户的匿名或者认证方式的备份请求。
c897
相关文章推荐
- linux 下 rsync 备份/同步文件
- Linux:RSync实现文件备份同步图解及代码
- linux中部署rsync实现文件远程备份及同步
- rsync从linux到linux的文件同步备份
- rsync从linux到linux的文件同步备份
- rsync从linux到linux的文件同步备份
- rsync从linux到linux的文件同步备份
- Linux命令之文件同步、定时备份 -rsync,cron,crontab
- Linux命令之文件同步、定时备份 -rsync,cron,crontab
- rsync从linux到linux的文件同步备份
- Linux下简单粗暴使用rsync实现文件同步备份【转】
- linux中部署rsync实现文件远程备份及同步(centos x64 6.8)
- linux下文件备份同步工具rsync
- linux rsync 不同服务器之间的文件备份同步
- rsync从linux到linux的文件同步备份
- rsync从linux到linux的文件同步备份
- Linux命令之文件同步、定时备份 -rsync,cron,crontab
- 文件备份,同步工具rsync服务器端的安装及配置
- 使用rsync在windows和linux两个系统中进行文件同步
- Linux 下使用 rsync 同步文件