搭建sftp服务,并使用rsync做多台机器间文件同步

一 首先搭建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是允许谁来拉取文件,根据自身情况设置注意。【注意】:本例中使用的是读取明文密码,密码被修改时会导致不能拉取数据,故此在需要的情况下,可以做需要同步的机器间的同步。

            配置详情参考如下:

搭建sftp服务,并使用rsync做多台机器间文件同步_第1张图片

 

    3 拉数据的主机,创建crontab 计划任务:

/usr/bin/rsync -avz root@IP::sftp /data/publicsftp/ --password-file=/etc/rs.passwd

你可能感兴趣的:(运维)