rsync是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。
一 安装
rpm -ivh rsync-3.0.6-4.el5
rsync主要有三个配置文件
rsyncd.conf(主配置文件)
rsyncd.secrets(密码文件)
rsyncd.motd(rysnc服务器信息)
创建目录
mkdir /etc/rsyncd
cd /etc/rsyncd
创建文件
touch rsyncd.conf rsyncd.secrets rsyncd.motd
二 服务端配置
cat /etc/rsyncd/rsyncd.conf
uid = etnet
gid = etnet
use chroot = yes
max connections = 5
pid file = /var/run/rsync.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsync.log
[EtnetChinaUI]
path = /usr/local/tomcat/webapps/EtnetChinaUI
ignore errors
read only = no
write only = no
list = yes
auth users = etnet
secrets file = /etc/rsyncd/rsyncd.secrets
auth
users是必须在服务器上存在的真实的系统用户,如果想用多个用户以,号隔开
服务端密码文件格式
cat /etc/rsyncd/rsyncd.secrets
etnet:123456
密码文件的权限应该是600
chmod 600 /etc/rsyncd/rsyncd.secrets
以daemon方式启动服务
/usr/bin/rsync --daemon
--config=/etc/rsyncd/rsyncd.conf
三 rsync的命令格式:
1. rsync [OPTION]... SRC [SRC]... DEST
2. rsync [OPTION]... SRC [SRC]...
[USER@]HOST:DEST
3. rsync [OPTION]... [USER@]HOST:SRC DEST
4. rsync [OPTION]... [USER@]HOST::SRC [DEST]
5. rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
6. 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传输,不过只要在命令中省略掉本地机信息即可。
四 客户端
rsync客户端不需要配置,只需要安装rsync软件即可,安装过程和服务端安装一样。
1 从服务端“拉”文件
rsync -avzP
--password-file=/etc/rsyncd/rsyncd.secrets
etnet@192.168.1.23::EtnetChinaUI /root/EtnetChinaUI
把服务端EtnetChinaUI模块中的文件同步到本地/root/EtnetChinaUI目录下
-a, --archive 归档模式,保持所有文件属性,等同于 -rlptgoD
-v, --verbose 详细信息输出
-r, --recursive 对子目录进行递归处理
-R, --relative 使用相对路径信息
-b, --backup 创建备份
-z, --compress 对备份的文件在传输时进行压缩处理
--delete 用于同步目录,从 DEST 中将 SRC 不存在的文件进行删除
--password-file 使用认证的密码文件避免交互式输入密码
客户端的密码文件格式如下
cat /etc/rsyncd/rsyncd.secrets
123456
2 向服务端“推”文件
rsync -avzP --password-file=/etc/rsyncd/rsyncd.secrets
/root/EtnetChinaUI/ etnet@192.168.1.23::EtnetChinaUI
把本地/root/EtnetChinaUI下所有的文件同步到服务端EtnetChinaUI模块。
注意:
1) 向服务端推文件时,服务端的模块要对用户有写权限。模块的所属主,uid,gid要一致
2) 向服务端推文件时,本地路径后面带“/”和不带“/”意义不一样。
/root/EtnetChinaUI/是将/root/EtnetChinaUI下的所有文件“推”到rsync服务器的对应模块下,/root/EtnetChinaUI是将/root下EtnetChinaUI整个目录“推”到rsync服务器的对应模块下。
3 列出rsync服务端的文件列表
rsync -v --password-file=/etc/rsyncd/rsyncd.secrets
rsync://etnet@192.168.1.23/EtnetChinaUI
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27181165/viewspace-775762/
,如需转载,请注明出处,否则将追究法律责任。