[root@ansi-haproxy02 ~]# ll /etc/rsync.password* # 注意权限信息 600 或 400
-rw------- 1 root root 36 Sep 20 16:28 /etc/rsync.password
-rw------- 1 root root 19 Sep 24 11:30 /etc/rsync.password2
[root@ansi-haproxy02 ~]# cat /etc/rsync.password
rsync_backup_pwd
[root@ansi-haproxy02 ~]# cat /etc/rsync.password2
rsync_db_back_pwd
注意:客户端一个 password 文件不能存放多个密码,rsync 在读取文件的时候只会读取第一个密码。
客户端准备数据
[root@ansi-haproxy02 zhang]# pwd
/tmp/zhang
[root@ansi-haproxy02 zhang]# cp -a /etc/yum ./
[root@ansi-haproxy02 zhang]# ll
total 0
drwxr-xr-x. 6 root root 100 Nov 14 2018 yum
[root@ansi-haproxy02 zhang]# touch stu{01..100}
[root@ansi-haproxy02 zhang]# ls
stu001 stu008 stu015 stu022 stu029 stu036 stu043 stu050 stu057 stu064 stu071 stu078 stu085 stu092 stu099
stu002 stu009 stu016 stu023 stu030 stu037 stu044 stu051 stu058 stu065 stu072 stu079 stu086 stu093 stu100
stu003 stu010 stu017 stu024 stu031 stu038 stu045 stu052 stu059 stu066 stu073 stu080 stu087 stu094 yum
stu004 stu011 stu018 stu025 stu032 stu039 stu046 stu053 stu060 stu067 stu074 stu081 stu088 stu095
stu005 stu012 stu019 stu026 stu033 stu040 stu047 stu054 stu061 stu068 stu075 stu082 stu089 stu096
stu006 stu013 stu020 stu027 stu034 stu041 stu048 stu055 stu062 stu069 stu076 stu083 stu090 stu097
stu007 stu014 stu021 stu028 stu035 stu042 stu049 stu056 stu063 stu070 stu077 stu084 stu091 stu098
推拉数据
客户端向服务端推送数据
使用 rsync_backup 账号测试
情况1、需要校验用户密码
[root@ansi-haproxy02 zhang]# rsync -avz /tmp/zhang rsync_backup@172.16.1.181::back_data_module
Password:
sending incremental file list
………………
sent 6,202 bytes received 2,070 bytes 1,504.00 bytes/sec
total size is 1,117 speedup is 0.14
情况2、不要密码【密码文件】
# 方式一
# 从本地推送到服务端 back_data_module 模块路径下
[root@ansi-haproxy02 zhang]# rsync -avz --password-file=/etc/rsync.password /etc/yum rsync_backup@172.16.1.181::back_data_module
# 方式二
# 从本地推送到服务端 back_data_module 模块路径下的 zhang 目录下
[root@ansi-haproxy02 zhang]# rsync -avz --password-file=/etc/rsync.password /etc/systemd rsync://rsync_backup@172.16.1.181/back_data_module/zhang/
其中:back_data_module 为 rsync 配置中的模块名
客户端向服务端拉取数据
使用 rsync_db_back 账号测试
情况1:需要校验用户密码
1 [root@ansi-haproxy02 test]# rsync -avz rsync_db_back@172.16.1.181::back_data_module/zhang /tmp/test/
2 Password:
3 receiving incremental file list
4 …………
情况2、不要密码【密码文件】
# 方式一
# 从服务端 back_data_module 模块路径下的yum目录,拉取到本地 /tmp/test1/ 目录下
[root@ansi-haproxy02 kkkk]# rsync -avz --password-file=/etc/rsync.password2 rsync_db_back@172.16.1.181::back_data_module/yum /tmp/test1/
# 方式二
# 从服务端 back_data_module 模块路径下的yum目录,拉取到本地 /tmp/test2/ 目录下
[root@ansi-haproxy02 tmp]# rsync -avz --password-file=/etc/rsync.password2 rsync://rsync_db_back@172.16.1.181/back_data_module/yum /tmp/test2/
其中:back_data_module 为 rsync 配置中的模块名
注意点:
客户端路径末尾是否有 /
“/” 有:则表示推送该目录下的所有文件
“/” 无:则表示推送该目录,与该目录下所有文件
目标一端可以加一个不存在的目录
类似 cp 命令一样,我们可以在目标一端指定一个目录
推送时,目标一端有该目录则直接使用;没有则创建
Rsync 常见问题
故障点1:客户端密码文件属主不对
客户端以哪个用户执行命令,那么 password-file 文件的属主就是哪个用户。
当然为了安全起见,客户端的 password-file 文件属主最好是 root ,这时我们执行命令也用 root 用户。