不知道什么是rsync,请查看 rsync 。shell
#检查是否安装过rsync,或者使用命令 rpm -qa|grep rsync 也能够 whereis rsync #若是结果相似下面这张状况,则已经安装 # rsync: /usr/bin/rsync /usr/share/man/man1/rsync.1.gz #若是结果是,那么说明当前服务器尚未安装过rsync # rsync: #使用yum安装rsync yum install rsync
默认安装后,在/etc目录下,并不存在rsyncd目录,须要手动建立配置文件目录安全
makdir /etc/rsyncd
在/etc/rsyncd目录下建立以下文件服务器
touch /etc/rsyncd/rsyncd.conf #主配置文件 touch /etc/rsyncd/rsyncd.secrets #用户名密码文件,一组用户一行,用户名和密码使用 : 分割 touch /etc/rsyncd/rsyncd.motd #非必须,链接上rsyncd显示的欢迎信息,此文件可不建立
必须注意的是,rsyncd服务的密码文件权限必须是600tcp
chmod 0600 /etc/rsyncd/rsyncd.secrets
###################################################################################################### # ******进程相关全局配置****** ###################################################################################################### # = 后面的值可根据本身的实际状况更改 # pid file 守护进程pid文件 # port 守护进程监听端口,可更改,由xinetd容许rsyncd时忽略此参数 # address 守护进程监听ip,由xinetd容许rsyncd时忽略此参数 pid file = /usr/local/var/run/rsyncd.pid port = 873 address = 192.168.1.2 #rsyncd 守护进程运行系统用户全局配置,也可在具体的块中独立配置, uid = root gid = root #容许 chroot,提高安全性,客户端链接模块,首先chroot到模块path参数指定的目录下 #chroot为yes时必须使用root权限,且不能备份path路径外的连接文件 use chroot = yes #只读 read only = no #只写 write only = no #容许访问rsyncd服务的ip,ip端或者单独ip之间使用空格隔开 hosts allow = 192.168.0.1/255.255.255.0 198.162.145.1 10.0.1.0/255.255.255.0 #不容许访问rsyncd服务的ip,*是所有(不涵盖在hosts allow中声明的ip,注意和hosts allow的前后顺序) hosts deny = * #客户端最大链接数 max connections = 5 #欢迎文件路径,可选的 #motd file = /etc/rsyncd/rsyncd.motd #日志相关 # log file 指定rsync发送消息日志文件,而不是发送给syslog,若是不填这个参数默认发送给syslog # transfer logging 是否记录传输文件日志 # log format 日志文件格式,格式参数请google # syslog facility rsync发送消息给syslog时的消息级别, # timeout链接超时时间 log file = /usr/local/logs/rsyncd.log transfer logging = yes log format = %t %a %m %f %b syslog facility = local3 timeout = 300 ###################################################################################################### # ******模块配置(多个)****** ###################################################################################################### #模块 模块名称必须使用[]环绕,好比要访问data1,则地址应该是data1user@192.168.1.2::data1 [data1] #模块根目录,必须指定 path=/home/username #是否容许列出模块里的内容 list=yes #忽略错误 #ignore errors #模块验证用户名称,可以使用空格或者逗号隔开多个用户名 auth users = data1user #模块验证密码文件 可放在全局配置里 secrets file=/etc/rsyncd/rsyncd.secrets #注释 comment = some description about this moudle #排除目录,多个之间使用空格隔开 exclude = test1/ test2/
能够直接copy上述内容,做为本身rsyncd服务的配置模板ui
#默认配置文件是/etc/rsyncd.conf,因此须要显式的指定配置文件 /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf #假设使用putty,xshell终端操做,保证终端断开进程仍然执行 nohup /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
为了保证开机时自动启动,须要手动加上面的命令(/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf)加入 /etc/rc.local 文件中
若是服务器开启了防火墙,必须保证端口能穿过防火墙this
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
端口号修改成实际端口号便可google
server_args = --daemon --config=/etc/rsyncd/rsyncd.conf
注意系统若是没有安装xinetd,须要 yum intall xinetdrest
chkconfig rsync on service xinetd restart
示例1:日志
rsync -avzP data1user@192.168.1.2::data1 ~/data1
保持传输原有文件权限,用户,用户组,时间,递归的把data1模块数据复制到用户家目录的data1目录里,
参数 a的意思就是 保留文件原有权限,用户,用户组,时间且递归的copy包括连接文件,块设备在内的全部文件,这个参数很经常使用
参数 v是显示传输信息
参数 P显示传输进度
参数 z是压缩传输内容进行传输code
假设要保持data1模块和用户家目录模块内容彻底一致,加上参数 --delete,这样会删除在~/data1目录里可是不在data1模块里的文件(夹)
rsync -avzP --delete data1user@192.168.1.2::data1 ~/data1
示例2:
rsync -avzP --delete --password-file=/~/rsync/data1.secrets data1user@192.168.1.2::data1 ~/data1
传输时自动使用密码文件而不用手动输入,注意密码文件权限必须是600
文中若有疏漏不当之处请指正。