软件仓
zookeeper操作
zookeeper单机安装
zookeeper集群安装
keeplived安装
Tomcat安装
Tomcat配置
tomcat问题
Ftp操作
proftpd文件共享
vsftpd文件共享
NFS文件共享(挂载)
NFS问题
ISCSI网络存储
Samba服务器
Rsync文件同步
Inotify工具
Inotify+Rsync脚本
DHCP服务器
DNS服务器
从DNS服务器
Etcd常用操作
etcd api常用操作
etcd 备份与恢复
Etcd web管理界面
etcd集群搭建
etcd集群管理
Screen终端软件
NTP时间服务
本文档使用MrDoc发布
返回首页
-
+
Rsync文件同步
2020年5月7日 13:27
admin
#Rsync命令 >##本地复制 rsync [选项] 本地源路径 [本地目标路径] >##通过远程shell复制 rsync [选项] [USER@]HOST:远程源路径 [本地目标路径] #下载 rsync [选项] [本地源路径] [USER@]HOST:[远程目标路径] #上传 >##通过rsync服务复制(需搭建rsync服务器) >####下载 rsync [选项] [USER@]HOST::模块名称+路径 [本地目标路径] rsync [选项] rsync://[USER@]HOST[:PORT]/模块名称+路径 [本地目标路径] >####上传 rsync [选项] [本地目标路径] [USER@]HOST::模块名称+路径 rsync [选项] [本地目标路径] rsync://[USER@]HOST[:PORT]/模块名称+路径 >####选项说明: |参数|说明| |--|--| |-v|显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息。 |-P|显示文件传输的进度信息。(实际上"-P"="--partial --progress",其中的"--progress"才是显示进度信息的)。 |-n --dry-run |仅测试传输,而不实际传输。常和"-vvvv"配合使用来查看rsync是如何工作的。 |-a --archive |归档模式,表示递归传输并保持文件属性。等同于"-rtopgDl"。 |-r --recursive|递归到目录中去。 |-t --times|保持修改时间属性。强烈建议任何时候都加上"-t",否则目标文件mtime会设置为系统时间,导致下次更新 | |检查出mtime不同从而导致增量传输无效。 |-o --owner|保持owner属性(属主)。 |-g --group|保持group属性(属组)。 |-p --perms|保持perms属性(权限,不包括特殊权限)。 |-D |是"--device --specials"选项的组合,即也拷贝设备文件和特殊文件。 |-l --links|如果文件是软链接文件,则拷贝软链接本身而非软链接所指向的对象。 |-z |传输时进行压缩提高效率。 |-R --relative|使用相对路径。意味着将命令行中指定的全路径而非路径最尾部的文件名发送给服务端,包括它们的属性。用法见下文示例。 |--size-only |默认算法是检查文件大小和mtime不同的文件,使用此选项将只检查文件大小。 |-u --update |仅在源mtime比目标已存在文件的mtime新时才拷贝。注意,该选项是接收端判断的,不会影响删除行为。 |-d --dirs |以不递归的方式拷贝目录本身。默认递归时,如果源为"dir1/file1",则不会拷贝dir1目录,使用该选项将拷贝dir1但不拷贝file1。 |--max-size |限制rsync传输的最大文件大小。可以使用单位后缀,还可以是一个小数值(例如:"--max-size=1.5m") |--min-size |限制rsync传输的最小文件大小。这可以用于禁止传输小文件或那些垃圾文件。 |--exclude |指定排除规则来排除不需要传输的文件。 |--delete |以SRC为主,对DEST进行同步。多则删之,少则补之。注意"--delete"是在接收端执行的,所以它是在exclude/include规则生效之后才执行的。 |-b --backup |对目标上已存在的文件做一个备份,备份的文件名后默认使用"~"做后缀。 |--backup-dir|指定备份文件的保存路径。不指定时默认和待备份文件保存在同一目录下。 |-e |指定所要使用的远程shell程序,默认为ssh。 |--port |连接daemon时使用的端口号,默认为873端口。 |--password-file|daemon模式时的密码文件,可以从中读取密码实现非交互式。注意,这不是远程shell认证的密码,而是rsync模块认证的密码。 |-W --whole-file|rsync将不再使用增量传输,而是全量传输。在网络带宽高于磁盘带宽时,该选项比增量传输更高效。 |--existing |要求只更新目标端已存在的文件,目标端还不存在的文件不传输。注意,使用相对路径时如果上层目录不存在也不会传输。 |--ignore-existing|要求只更新目标端不存在的文件。和"--existing"结合使用有特殊功能。 |--remove-source-files|要求删除源端已经成功传输的文件。 --- rsync -nr -i a b #测试传输 rsync -nr -i --exclude="a/2.txt" a b #排除指定文件 rsync -r -v /etc/cron.d /tmp --delete #以SRC为主,对DEST进行同步。多则删之,少则补之 rsync --list-only --port 888 rsync_backup@172.16.l0.6::longshuai/a/b --password-file=/tmp/rsync_passwd #需要访问模块中的某个文件 rsync --list-only rsync://rsync_backup@172.16.l0.6:888/longshuai/a/b --password-file=/tmp/rsync_passwd #上述的url写法 >####参考资料: #rsync:基本命令和用法 https://blog.csdn.net/qq_32706349/article/details/91451053 --- #搭建RSYNC服务器 >##安装rsync yum -y install rsync >##配置 >####配置文件:/etc/rsyncd.conf ######### 全局配置参数 ########## port=888 # 指定rsync端口。默认873 uid = rsync # rsync服务的运行用户,默认是nobody,文件传输成功后属主将是这个uid gid = rsync # rsync服务的运行组,默认是nobody,文件传输成功后属组将是这个gid use chroot = no # rsync daemon在传输前是否切换到指定的path目录下,并将其监禁在内 max connections = 200 # 指定最大连接数量,0表示没有限制 timeout = 300 # 确保rsync服务器不会永远等待一个崩溃的客户端,0表示永远等待 motd file = /var/rsyncd/rsync.motd # 客户端连接过来显示的消息 pid file = /var/run/rsyncd.pid # 指定rsync daemon的pid文件 lock file = /var/run/rsync.lock # 指定锁文件 log file = /var/log/rsyncd.log # 指定rsync的日志文件,而不把日志发送给syslog dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 # 指定哪些文件不用进行压缩传输 ------------------------------------------------------- ###下面指定模块,并设定模块配置参数,可以创建多个模块### [longshuai] # 模块ID path = /longshuai/ # 指定该模块的路径,该参数必须指定。启动rsync服务前该目录必须存在。rsync请求访问模块本质就是访问该路径。 ignore errors # 忽略某些IO错误信息 read only = false # 指定该模块是否可读写,即能否上传文件,false表示可读写,true表示可读不可写。所有模块默认不可上传 write only = false # 指定该模式是否支持下载,设置为true表示客户端不能下载。所有模块默认可下载 list = false # 客户端请求显示模块列表时,该模块是否显示出来,设置为false则该模块为隐藏模块。默认true hosts allow = 10.0.0.0/24 # 指定允许连接到该模块的机器,多个ip用空格隔开或者设置区间 hosts deny = 0.0.0.0/32 # 指定不允许连接到该模块的机器 auth users = rsync_backup # 指定连接到该模块的用户列表,只有列表里的用户才能连接到模块,用户名和对应密码保存在secrts file中, secrets file = /etc/rsyncd.passwd # 保存auth users用户列表的用户名和密码,每行包含一个username:passwd。由于"strict modes" ------------------------------------------------------- [xiaofang] # 以下定义的是第二个模块 path=/xiaofang/ read only = false ignore errors comment = anyone can access #注释 --- >####密码文件格式 echo "bao:<password>" >> /etc/rsyncd.passwd #注意:密码文件不可以对所有人开放可读权限,建议设置为600 >##启动与停止服务器 rsync --daemon #启动 echo "/usr/bin/rsync --daemon" >> /etc/rc.local #开机启动 killall rsync #停止
分享到: