Linux文件拷贝——rsync

rsync命令:

-r 是递归
-l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
-z 传输时压缩;
-P 传输进度;
-v 传输时的进度等信息,和-P有点关系,自己试试。可以看文档;
-u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时
--progress是指显示出详细的进度情况
--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致
--password-file=/password/path/file来指定密码文件,这样就可以在脚本中使用而无需交互式地输入验证密码了,这里需要注意的是这份密码文件权限属性要设得只有属主可读。

 

公共的部分

安装rsync

yum -y install rsync 联网安装,两边都要装(手敲)

rpm -qa rsync  查看软件是否安装

服务端

创建文件夹

touch /etc/rsyncd.conf(rsyncd.conf文件内容在本篇文章最下面)

touch /etc/rsyncd.secrets

touch /etc/rsyncd.motd

将rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功!

chmod  600  /etc/rsyncd.secrets

配置rsyncd.motd文件(不写也可以,随便写什么内容,只是一个欢迎页面)

配置rsyncd.secrets文件(username:password格式,多个用户换行)

.服务端添加 添加用户:密码.

vim /etc/rsyncd.secrets

root:123456

rsyncd.conf文件配置参数

pid file = /var/run/rsyncd.pid   #此路径不用配置,自动创建,如果配置了会报错(如果已经存在,就去删掉)

port=873       #指定运行端口,默认是873,您可以自己指定

address=192.168.0.144       #服务端IP地址

uid=root       #指定执行的用户和用户组,默认是nobody,可能遇到权限问题,有些文件从服务器上拉不下来

gid=root  

read only=yes   #只读选择,也就是说,不让客户端上传文件到服务器上

hosts allow=192.168.0.145   #允许的IP,多个IP可以用,分隔

max connections=5     #允许最大连接的客户端数

motd file=/etc/rsyncd.motd   #rsyncd.motd文件路径

log file=/var/log/rsync.log    #rsync服务器日志

transfer logging=yes  #传输文件的日志

log format = %t %a %m %f %b  #日志格式

[test]  #自定义模块

path=/opt/u01/  #指定文件目录所在位置,这是必须指定的 

ignore errors  #忽略IO错误

list=yes  #list 意思是把rsync 服务器上提供同步数据的目录在服务器上模块是否显示列出来

auth users=root  #必须系统存在,多个用户用“,”分隔

secrets file=/etc/rsyncd.password   #密码文件的位置

comment=linuxsir home data    #注释(随便啥内容)

exclude = beinan/ samba/ #排除/opt/u01/下的文件夹,多个用空格隔开

[data]  

path=/opt

list=yes

ignore errors

auth users=root

secrets file=/etc/rsyncd.secrets

comment=This is RHEL 4 data 

 

关闭防火墙,

开放873端口:iptables -A  INPUT  -p  tcp  --dport  873  -j  ACCEPT

Linux文件拷贝——rsync_第1张图片

启动rsync服务端:#/usr/bin/rsync --daemon  --config=/etc/rsyncd/rsyncd.conf

查看状态 lsof -i :873

 首先:我们看看rsync服务器上提供了哪些可用的数据源

rsync  --list-only  [email protected]::

Linux文件拷贝——rsync_第2张图片

客户端

vim /etc/xinetd.d/rsync修改参数

客户端disable = no,其他不动。

# default: off

# description: The rsync server is a good addition to an ftp server, as it \

#       allows crc checksumming etc.

service rsync

{

        disable = no

        flags           = IPv6

        socket_type     = stream

        wait            = no

        user            = root

        server          = /usr/bin/rsync

        server_args     = --daemon

        log_on_failure  += USERID

}

rsyncd.conf和rsyncd.motd都不需要配置

touch /etc/rsyncd.secrets

rsyncd.secrets文件(该文件是免密设置,可以不配置,那么需要手动输入密码)格式:密码

vim /etc/rsyncd.secrets

123456

rsync  --list-only  [email protected]::

Linux文件拷贝——rsync_第3张图片

 

同步文件

从远程同步文件到本地

rsync -avz --password-file=/etc/rsyncd.password [email protected]::test /opt/u01/

rsync -avz  密码文件位置 服务端用户名@服务端IP::自定义模块名 同步到本地的地址

本地同步到本地

rsync -avH /uu01/ 192.168.0.131:/hy

rsync -avH 本地目录 本地IP:本地路径

(将本地uu01的文件夹下的文件同步到hy文件夹下)

rsync -avH /uu01 192.168.0.131:/hy

(将本地uu01文件夹(包括里面的文件)同步到hy文件夹下)

从本地同步到远程

read only=no,不然会报错

rsync -av /hy [email protected]::test

rsync -av 本地路径 远程用户@远程IP::模块名

(将本地的hy文件夹同步到test的模块中的/opt/u01路径下)

 

附件:rsyncd.conf内容


pid file = /var/run/rsyncd.pid
port=873
address=192.168.0.144
uid=root
gid=root
read only=yes
hosts allow=192.168.0.145
max connections=5
motd file=/etc/rsyncd.motd
log file=/var/log/rsync.log
transfer logging=yes
[test]
path=/opt/u01/
ignore errors
read only=no
list=no
hosts allow=192.168.0.145
auth users=root
list=yes
ignore errors
secrets file=/etc/rsyncd.password
comment=this is test
[data]
path=/opt
list=yes
ignore errors
auth users=root
secrets file=/etc/rsyncd.secrets
comment=this is data

完。


 

你可能感兴趣的:(Linux文件拷贝——rsync)