rsync的自动脚本实现方案(非rsyncd服务)

1、前言

rsyncd的方式笔者认为方便,但会在系统留下一个被攻击的服务点,笔者认为用自动函数+普通用户的方式较安全,故而写下此文备用。

2、实现

2.1、环境

rsyncSer:

ipaddress=10.168.0.100

client:

ipaddress=10.168.0.8

2.2、yum的安装

In rsyncSer & client

yum -y install rsync

2.3、服务端配置

In rsyncSer:

mkdir /files
chmod 700 -R /files/
useradd rsuser
echo rspw | passwd --stdin rsuser
setfacl -m u:rsuser:r-x /files

以上设置可保障资料的安全,避免其他非root用户获取。

2.4、客户端设置

In client:

2.4.1、创建脚本文件夹

mkdir ~/script

2.4.2、创建脚本

vim编辑~/script/rs.sh

#!/bin/bash
souUser=rsuser #服务端创建的用户名
souPwd=rspw #服务端创建的密码
souIP=10.168.0.100 #服务端ip address
souDir=/files/* #服务端的路径
desDir=/files #客户端的路径
auto_rsync () {
    expect -c "set timeout -1;
                spawn rsync -av --delete $2@$3:$4 $5;
                expect {
                    *assword:* {send -- $1\r;
                                 expect {
                                    *denied* {exit 2;}
                                    eof
                                 }
                    }
                    eof         {exit 1;}
                }
                "
    return $?
}
auto_rsync $souPwd $souUser $souIP $souDir $desDir

以上相当于手动执行:

rsync -av  --delete [email protected]:/files/* /files

2.4.3、安全设置

chmod 700 -R ~/script

2.4.4、定时任务

crontab -e

加入内容

*/15 * * * * sh ~/script/rs.sh


你可能感兴趣的:(shell,脚本,auto,rsync,自动)