linux rsync简介与使用

一、简介
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。

它的特性如下:
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。
          rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。
安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜象。

二、操作流程
1. 服务器端启动
# usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf

可能需要root权限运行.
/etc/rsyncd/rsyncd.conf 是你刚才编辑的rsyncd.conf的位置.
也可以在/etc/rc.d/rc.local里加入让系统自动启动等.

2. 客户端同步
rsync -参数 用户名@同步服务器的IP::rsyncd.conf中那个方括号里的内容 本地存放路径 

如:
  rsync -avzP [email protected]::nemo /backup

说明:
-a 参数,相当于-rlptgoD,
-r 是递归 
-l 是链接文件,意思是拷贝链接文件
-p 表示保持文件原有权限;
-t 保持文件原有时间;
-g 保持文件原有用户组;
-o 保持文件原有属主;
-D 相当于块设备文件;
-z 传输时压缩;
-P 传输进度;
-v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;

三、安装
1. Ubuntu安装: 
# sudo apt-get install rsync
2. RedHat: 
# yum install rsync
3.编译安装
rsync的编译安装非常简单,只需要以下简单的几步:
[root@www rsync-2.4.6]# ./configure
[root@www rsync-2.4.6]# make
[root@www rsync-2.4.6]# make install
但是需要注意的是必须在服务器A和B上都安装rsync,
其中A服务器上是以服务器模式运行rsync,
而B上则以客户端方式运行rsync。
这样在web服务器A上运行rsync守护进程,在B上定时运行客户程序来备份web服务器A上需要备份的内容。

四、rpm包安装、配置rsync同步数据
4.1 安装
[root@Hammer home]# rpm -qa |grep rsync #检查系统是否安装了rsync软件包
rsync-2.6.8-3.1
[root@Hammer CentOS]# rpm -ivh rsync-2.6.8-3.1.i386.rpm # 如果没有安装则手动安装
[root@test rsync-3.0.4]# vim /etc/xinetd.d/rsync 

4.2 配置Server端
1. 配置rsync server
# vi /etc/xinetd.d/rsync
将disable=yes改为no

service rsync
{
  disable = no
  socket_type = stream
  wait = no
  user = root
  server = /usr/bin/rsync
  server_args = --daemon
  log_on_failure += USERID
}

2. 配置rsync自动启动
[root@test etc]# chkconfig rsync on
[root@test etc]# chkconfig rsync --list
rsync on

3. 配置rsyncd.conf 
[root@test etc]# vim rsyncd.conf 

uid = root
gid = root
use chroot = no
max connections = 4
strict modes = yes
port = 873
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

[backup]
path = /srv
comment = This is test
auth users = scihoo
uid = root
gid = root
secrets file = /home/rsync.ps
read only = no
list = no

4. 确保etc/services中rsync端口号正确
[root@test etc]# vim /etc/services
rsync 873/tcp # rsync
rsync 873/udp # rsync

5. 配置rsync密码
(在上边的配置文件中已经写好路径)/home/rsync.ps(名字随便写,只要和上边配置文件里的一致即可),
格式(一行一个用户)
[root@test etc]# vi /home/rsync.ps 
scihoo:scihoo

6. 配置rsync密码文件权限
[root@test home]# chown root.root rsync.ps 
[root@test home]# chmod 400 rsync.ps 

7. 启动配置
[root@test home]# /etc/init.d/xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]

8. 如果xinetd没有的话,需要安装一下
[root@test home]# yum -y install xinetd

启动rsync server
RSYNC服务端启动的两种方法
9、启动rsync服务端(独立启动)
[root@test home]# /usr/bin/rsync --daemon

10、启动rsync服务端 (有xinetd超级进程启动)
[root@test home]# /etc/init.d/xinetd reload

11. 加入rc.local
在各种操作系统中,rc文件存放位置不尽相同,可以修改使系统启动时把rsync --daemon加载进去。
[root@test home]# vi /etc/rc.local
/usr/local/rsync –daemon #加入一行

12. 检查rsync是否启动
[root@test home]# lsof -i :873
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
xinetd 4396 root 5u IPv4 633387 TCP *:rsync (LISTEN)

4.3 客户端配置
1. 配置三个过程就可以了
1.1 设定密码文件
1.2 测试rsync执行指令
1.3 将rsync指令放入工作排程(crontab)
[root@aj1 home]# vi /etc/xinetd.d/rsync 

# default: off
# description: The rsync server is a good addition to an ftp server, as it \
# allows crc checksumming etc.
service rsync
{
  disable = yes
  socket_type = stream
  wait = no
  user = root
  server = /usr/bin/rsync
  server_args = --daemon
  log_on_failure += USERID
}

1.1 配置密码文件 (注:为了安全,设定密码档案的属性为:600。rsync.ps的密码一定要和Rsync Server密码设定案里的密码一样)
[root@aj1 home]# vi rsync.ps 
sciooo
[root@aj1 home]# chown root.root .rsync.ps # 注意必须给权限
[root@aj1 home]# chmod 600 .rsync.ps # 必须修改权限

1.2 从服务器上下载文件
[root@aj1 rsync-3.0.4]# rsync -avz --password-file=/home/rsync.ps [email protected]::backup /home/

从本地上传到服务器上去
[root@aj1 rsync-3.0.4]# rsync -avz --password-file=/home/rsync.ps /home [email protected]::backup

你可能感兴趣的:(linux rsync简介与使用)