配置服务器rsync服务
1.配置rsync服务配置文件:vim /etc/rsyncd.conf
配置文件里面内容如下:(此方式为指定用户的方式进行文件传输,可使用交互方式或非交互方式连接)
uid = rsync
gid = rsync
use chroot = no
#安全相关的配置 通常可以设置为no
fake super = yes
#权限的问题 rsync临时提权让你有权限
max connections = 200
#最大连接数默认是4
pid file = /var/run/rsyncd.pid
#进程号
log file = /var/log/rsyncd.log
#指定日志文件 显示错误信息或程序运行信息
# exclude = lost+found/
# transfer logging = yes
timeout = 300
#默认的超时时间 没有传输的时候多长时间断开
port = 873
#rsync 端口号默认是873 也可以改8873
read only = false
#只读 关闭
#auth user = rsync_backup
#指定登录用户的名称 用于客户端登录
#secrets file = /etc/rsync.passwd
#密码文件的路径
[backup]
#添加backup模块
comment = "Welcome to Azkaban RsyncBackUp"
path = /backup
auth users = rsync_backup
#指定登录用户的名称 用于客户端登录
secrets file = /etc/rsync.passwd
#密码文件的路径
2.创建一个虚拟用户rsync不添加属组,不允许用户登录:
useradd -s /sbin/nologin -M rsync
3.在etc下创建一个授权用户rsync_backup的密码文件rsync.passwd:
echo "rsync_backup:123456" > /etc/rsync.passwd
4.更改密码文件rsync.passwd的文件权限:
chmod 600 /etc/rsync.passwd
5.在根目录下创建一个名为backup的目录:
mkdir /backup
6.把backup这个目录及目录下内容的属主和属组都改为rsync:
chown -R rsync.rsync /backup/
7.启动rsync服务:
systemctl restart rsyncd
8.设置rsync服务开机自启动:
systemctl enable rsyncd
输完系统反馈:Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.
实验部署:客户端推送至服务器端实验部署——客户端部署
这部有俩种方式:交互式和非交互式
交互式:
交互式就是在我们执行了推送或拉取命令后系统提示输入该用户密码,当我们服务器配置为指定用户连接传输时,我们使用该用户传输时就被要求输入密码,每次传输命令执行后都要输密码。
非交互式:
1.变量非交互式:就是我们先在客户端设置一个临时变量,这样我们再执行传输命令时就 不需要输入密码了,直接执行,这是非交互中最为推荐的方式,好处是相对安全,在我们关闭客户端时这个变量会随之失效,
export RSYNC_PASSWORD=123456 #设置一个临时变量
2.密匙文件非交互式:就是我们创建一个密匙文件,然后执行命令时先读取密匙文件再执行传输命令,以此来达到非交互式传输。
echo '123456' > /etc/rsync.passwd #新建一个密码文件
chmod 600 /etc/rsync.passwd #修改文件权限
rsync -avzP --password-file=/etc/rsync.passwd /tmp/8848 rsync_backup@10.0.0.139::backup #命令中指定密匙文件位置