1、前言
rsyncd的方式笔者认为方便,但会在系统留下一个被攻击的服务点,笔者认为用自动函数+普通用户的方式较安全,故而写下此文备用。
2、实现
2.1、环境
rsyncSer:
ipaddress=10.168.0.100
client:
ipaddress=10.168.0.8
2.2、yum的安装
In rsyncSer & client
1
<code>yum -y </code><code>install</code> <code>rsync</code>
2.3、服务端配置
In rsyncSer:
2
3
4
5
<code>mkdir</code> <code>/files</code>
<code>chmod</code> <code>700 -R </code><code>/files/</code>
<code>useradd</code> <code>rsuser</code>
<code>echo</code> <code>rspw | </code><code>passwd</code> <code>--stdin rsuser</code>
<code>setfacl -m u:rsuser:r-x </code><code>/files</code>
以上设置可保障资料的安全,避免其他非root用户获取。
2.4、客户端设置
In client:
2.4.1、创建脚本文件夹
<code>mkdir</code> <code>~</code><code>/script</code>
2.4.2、创建脚本
vim编辑~/script/rs.sh
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<code>#!/bin/bash</code>
<code>souUser=rsuser </code><code>#服务端创建的用户名</code>
<code>souPwd=rspw </code><code>#服务端创建的密码</code>
<code>souIP=10.168.0.100 </code><code>#服务端ip address</code>
<code>souDir=</code><code>/files/</code><code>* </code><code>#服务端的路径</code>
<code>desDir=</code><code>/files</code> <code>#客户端的路径</code>
<code>auto_rsync () {</code>
<code> </code><code>expect -c "</code><code>set</code> <code>timeout -1;</code>
<code> </code><code>spawn </code><code>rsync</code> <code>-av --delete $2@$3:$4 $5;</code>
<code> </code><code>expect {</code>
<code> </code><code>*assword:* {send -- $1\r;</code>
<code> </code><code>expect {</code>
<code> </code><code>*denied* {</code><code>exit</code> <code>2;}</code>
<code> </code><code>eof</code>
<code> </code><code>}</code>
<code> </code><code>}</code>
<code> </code><code>eof {</code><code>exit</code> <code>1;}</code>
<code> </code><code>}</code>
<code> </code><code>"</code>
<code> </code><code>return</code> <code>$?</code>
<code>}</code>
<code>auto_rsync $souPwd $souUser $souIP $souDir $desDir</code>
以上相当于手动执行:
<code>rsync</code> <code>-av --delete [email protected]:</code><code>/files/</code><code>* </code><code>/files</code>
2.4.3、安全设置
<code>chmod</code> <code>700 -R ~</code><code>/script</code>
2.4.4、定时任务
<code>crontab</code> <code>-e</code>
加入内容
<code>*</code><code>/15</code> <code>* * * * sh ~</code><code>/script/rs</code><code>.sh</code>
<code></code>
本文转自 tanzhenchao 51CTO博客,原文链接:http://blog.51cto.com/cmdschool/1720998,如需转载请自行联系原作者