Rsync服务模式-服务端配置
为什么需要服务模式
Rsync 借助 SSH 协议同步数据存在的缺陷:
1.使用系统用户(不安全) /etc/passwd
2.使用普通用户(会导致权限不足情况)
3.守护进程传输方式: rsync 自身非常重要的功能(不使用系统用户,更加安全)
1.安装rsync
yum install rsync -y
2.修改配置文件
复制粘贴如下代码即可
cat > /etc/rsyncd.conf << 'EOF'
uid = www
gid = www
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[backup]
comment = yuchaoit.cn about rsync
path = /backup
[data]
comment = this is secord backup dir,to website data..
path = /data
EOF
配置文件解释
uid = www # 运行进程的用户
gid = www # 运行进程的用户组
port = 873 # 监听端口
fake super = yes # 无需让 rsync 以 root 身份运行,允许接收文件的完整属性
use chroot = no # 禁锢推送的数据至某个目录, 不允许跳出该目录
max connections = 200 # 最大连接数
timeout = 600 # 超时时间
ignore errors # 忽略错误信息
read only = false # 对备份数据可读写
list = false # 不允许查看模块信息
auth users = rsync_backup # 定义虚拟用户,作为连接认证用户
secrets file = /etc/rsync.passwd # 定义 rsync 服务用户连接认证密码文件路径
[backup] # 定义模块信息
comment = 注释信息 # 模块注释信息
path = /backup # 定义接收备份数据目录
3.创建用户以及数据目录
根据你的配置文件中定义的信息,创建对应的用户,备份的目录
该无法登录的用户,只是用于运行进程的账户
useradd -u 1000 -M -s /sbin/nologin www
创建配置文件中定义的2个备份目录
mkdir -p /data/ /backup
修改备份目录的权限
[root@rsync-41 ~]#chown -R www:www /data/
[root@rsync-41 ~]#chown -R www:www /backup/
[root@rsync-41 ~]#ll -d /data /backup/
drwxr-xr-x 2 www www 6 Apr 20 11:34 /backup/
drwxr-xr-x 2 www www 6 Apr 20 11:34 /data
4.创建rsync专用的账户密码(这一步很重要,有错基本也是来这排查)
1.创建密码文件,写入账户和密码,用于和客户端连接时候的认证
vim /etc/rsync.passwd
2.写入账户密码
[root@rsync-41 ~]#cat /etc/rsync.passwd
rsync_backup:chaoge666
3.待会客户端向rsync服务器推送数据,就得用这个账号密码!!!!
4.这一步,非常重要,rsync要求降低密码文件的权限,且必须是600
chmod 600 /etc/rsync.passwd
[root@rsync-41 ~]#ll /etc/rsync.passwd
-rw------- 1 root root 23 Apr 20 11:36 /etc/rsync.passwd
5.加入开机自启动
设置rsyncd服务,运行,且开机自启
systemctl start rsyncd
systemctl enable rsyncd
6.检查服务是否运行
systemctl status rsyncd
[root@rsync-41 ~]#ps -ef|grep 'rsync' | grep -v 'grep'
root 6078 1 0 11:46 ? 00:00:00 /usr/bin/rsync --daemon --no-detach
[root@rsync-41 ~]#netstat -tunlp|grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 6078/rsync
tcp6 0 0 :::873 :::* LISTEN 6078/rsync
Rsync服务模式-客户端配置
1.安装rsync
yum install rsync -y
2.配置密码文件及授权
此时rsync客户端,需要把数据推送到rsync服务端
但是需要账户认证,这个账户密码,是服务端指定好的
rsync_backup
chaoge666
客户端需要做的操作有2个,提供密码认证 二选一
1. 生成密码文件,每次连接都指定这个密码文件(在客户端生成)
echo 'chaoge666' > /etc/my_rsync.pwd
还必须降低密码文件的权限才行,必须是600
chmod 600 /etc/my_rsync.pwd
此时可以传输数据了,往data模块下传输
rsync -avzP --password-file=/etc/my_rsync.pwd /tmp/200M.log rsync_backup@rsync-41::data
如果是脚本中的话,去掉vP显示过程的参数去掉
rsync -az --password-file=/etc/my_rsync.pwd /tmp/200M.log rsync_backup@rsync-41::data
2. 生成密码变量,让当前系统中存在叫做 RSYNC_PASSWORD 这个变量,以及变量的值,是配置文件中的密码即可
export RSYNC_PASSWORD='chaoge666'
rsync -avzP /tmp/200M.log rsync_backup@rsync-41::backup
下载备份服务器的数据
撤销这个密码变量
unset RSYNC_PASSWORD
或者重新登录,只要密码变量失效,就必须得输入密码了,或者使用密码文件
非交互式的密码认证方式
1,使用密码变量
export RSYNC_PASSWORD='chaoge666'
2.指定密码文件
rsync -avzP --password-file=/etc/my_rsync.pwd rsync_backup@rsync-41::backup /tmp/
rsync -avzP --password-file=/etc/my_rsync.pwd rsync_backup@rsync-41::backup/222222222.log /tmp/
标签:rsync,部署,root,www,41,etc,backup
From: https://www.cnblogs.com/btcm409181423/p/18043459