daemon方式就是先搭建一个服务器,这个服务器上面跑一个rsync服务,服务就称为daemon(daemon就是实时运行的程序),rsync监听端口是873,然后在客户端上面使用rsync命令,实现和服务器之间推拉动作。(推拉都是在客户端执行rsync命令)

本文中rsync服务端有两个网卡:网卡1连接外网,ip地址和掩码为10.0.0.41/24;网卡2连接内网,ip地址和掩码为172.16.1.41/24

搭建backup服务器rsyncdaemon服务模式之一rsync服务端配置_linux

 1. 统一版本:

[root@backup ~]# uname -m
x86_64
[root@backup ~]# uname -r
2.6.32-642.el6.x86_64
[root@backup ~]# rsync --version
rsync  version 3.0.6  protocol version 30
Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
    append, ACLs, xattrs, iconv, symtimes

rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.

查看rsync程序是否存在

[root@backup ~]# rpm -qa rsync
rsync-3.0.6-12.el6.x86_64

如果没有 rsync就用yum install rsync -y 安装。

2.rsync服务器搭建在备份服务器上面,然后在所有服务器上面通过命令就是推拉了。

[root@backup ~]# ll /etc/rsyncd.conf
ls: cannot access /etc/rsyncd.conf: No such file or directory

配置文件rsyncd.conf默认是不存在的

[root@backup ~]# vim /etc/rsyncd.conf

 中插入如下信息:
#rsync_config__________start
##rsyncd.conf start##
uid=rsync
gid=rsync
use chroot=no
max connections=200
timeout=300
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsync.lock
log file=/var/log/rsyncd.log
[backup]
path=/backup
ignore errors
read only=false
list=false
hosts allow=172.16.1.0/24
#hosts deny=0.0.0.0/32
auth users=rsync_backup
secrets file=/etc/rsync.password
#rsync_config________end


/etc/rsyncd.conf配置信息解释

##rsyncd.conf start##
uid=rsync  #虚拟用户,文件和进程都要满足属组要求,进程对应的用户(远端的命令使用rsync访问共享目录)
gid=rsync #进程对应的用户组
use chroot=no ##安全相关
max connections=200 #最大连接数
timeout=300 #超时参数
pid file=/var/run/rsyncd.pid #进程对应的进程号文件
lock file=/var/run/rsync.lock #锁文件,防止文件不一致
log file=/var/log/rsyncd.log  #日志文件 出错
[backup] #模块名称
path=/backup #服务器提供访问的目录
ignore errors #忽略错误
read only=false #可写
list=false #不能列表
hosts allow=172.16.1.0/24 ##允许那些机器过来连接
#hosts deny=0.0.0.0/32 ##拒绝哪些机器过来连接(0.0.0.0/32表示谁都可以过来,此处hosts deny前面要用#注释,如果不用#注释,任何ip都可以过来)
auth users=rsync_backup #虚拟用户,独立于系统账号之外的虚拟用户
secrets file=/etc/rsync.password #虚拟账号对应的用户和密码
#rsync_config________end


检查是否存在账号rsync,如果不存在就新建。 -s代表 不需要登录,-M代表不需要家目录

[root@backup ~]# id rsync
id: rsync: No such user
[root@backup ~]# useradd rsync -s /sbin/nologin -M

用tail -l查看刚刚建好的账号

[root@backup ~]# tail -1 /etc/passwd
rsync:x:501:501::/home/rsync:/sbin/nologin


启动服务:
[root@backup ~]# rsync --daemon

查看服务是否启动:
[root@backup ~]# ps -ef|grep rsync|grep -v grep
root       1344      1  0 23:54 ?        00:00:00 rsync --daemon

创建backup目录

[root@backup ~]# mkdir /backup

用户连接过来无法访问backup,需要修改/backup属组为rsync虚拟用户

[root@backup ~]# chown rsync.rsync /backup
[root@backup ~]# ls -ld /backup/
drwxr-xr-x 2 rsync rsync 4096 Aug  2 23:57 /backup/

vim rsync.password输入内容rsync_backup:oldboy 其中rsync_backup为用户名,oldboy为密码

[root@backup ~]# vim /etc/rsync.password

[root@backup ~]# cat /etc/rsync.password
rsync_backup:oldboy


因为/etc/rsync.password有用户和密码,所以不够安全。所以需要修改rsync.password的其他组的权限。

[root@backup ~]# ll /etc/rsync.password   
-rw-r--r-- 1 root root 20 Aug  3 00:07 /etc/rsync.password
[root@backup ~]# chmod 600 /etc/rsync.password

[root@backup ~]# ll /etc/rsync.password
-rw------- 1 root root 20 Aug  3 00:07 /etc/rsync.password


服务器端配置完成了

已知端口查看服务:

[root@backup ~]# lsof -i :873
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rsync   1344 root    4u  IPv4  11151      0t0  TCP *:rsync (LISTEN)
rsync   1344 root    5u  IPv6  11152      0t0  TCP *:rsync (LISTEN)

[root@backup ~]# netstat -lntup|grep 873
tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      1344/rsync         
tcp        0      0 :::873                      :::*                        LISTEN      1344/rsync

加入开机自启动:

[root@backup ~]# echo "/usr/bin/rsync --daemon" >>/etc/rc.local
[root@backup ~]# tail -1 /etc/rc.local
/usr/bin/rsync --daemon


总结rsync服务器配置过程:

1.查看rsync安装包

rpm -qa rsync

2.添加rsync服务的用户,管理本地目录的

useradd -s /sbin/nologin -M rsync

id rsync

3.生成rsyncd.conf配置文件

vi /etc/rsyncd.conf 放入事先准备的配置。man rsync.con去查相关参数。

4.根据rsyncd.conf的auth users配置账户,远程连接的,并根据secrets file参数生成密码文件

echo "rsync_backup:oldboy">/etc/rsync.password

cat /etc/rsync.password

5.为密码文件配置全新

chmod 600 /etc/rsync.password

ls -l /etc/rsync.password

6.创建共享的目录,并授权rsync服务管理

mkdir /backup -p

chown -R rsync.rsync /backup

如果没有/backup目录,就会chdir failed

7.启动rsync服务并检查

rsync --daemon

ps -ef|grep rsync|grep -v grep

lsof -i :873

8.加入开机自启动

echo "/usr/bin/rsync --daemon" >>/etc/rc.local

tail -1 /etc/rc.local

(over)

排错:

1.输出

2.日志tail /var/log/rsync.log