一 首先搭建sftp服务
1 首先需要确定openssh的版本,版本需要大于 4.8 p1版本(可以使用ssh -V命令查看版本)
2 使用root用户创建用户组(sftp),创建用户(sftptest),用户组指定为sftp,并设置密码
命令: groupadd sftp
useradd sftptest -s /sbin/nologin -g sftp
passwd sftptest
3 创建sftp组使用的目录,目录为 sftppath,因为使用chroot的方式,sftppath的上机目录,需要设置为root权限,并且具有755或750的权限。例子如下:
命令:mkdir -p /data/sftppath
chown sftptest:sftp sftppath
chmod 755 /data/sftppath
4 更改sshd配置文件(/etc/ssh/sshd.config)
在文件末尾添加如下行,缩进参考配置文件注释的部分,其中Group和User根据需求使用(分别是组和用户有权限)
Match Group sftp
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /data/publicsftp/sftp
ForceCommand internal-sftp
5 重新加载sshd服务使设置生效:service sshd reload
二 使用rsync进行同步
1 首先确保rsync包安装了(yum install rsync -y)
2 将rsync设置为开启启动(systemctl enable rsyncd)
3 更改被拉取主机配置文件 /etc/rsyncd.conf,host allow是允许谁来拉取文件,根据自身情况设置注意。【注意】:本例中使用的是读取明文密码,密码被修改时会导致不能拉取数据,故此在需要的情况下,可以做需要同步的机器间的同步。
配置详情参考如下:
3 拉数据的主机,创建crontab 计划任务:
/usr/bin/rsync -avz root@IP::sftp /data/publicsftp/ --password-file=/etc/rs.passwd