daemon方式就是先搭建一个服务器,这个服务器上面跑一个rsync服务,服务就称为daemon(daemon就是实时运行的程序),rsync监听端口是873,然后在客户端上面使用rsync命令,实现和服务器之间推拉动作。(推拉都是在客户端执行rsync命令)
本文中rsync服务端有两个网卡:网卡1连接外网,ip地址和掩码为10.0.0.41/24;网卡2连接内网,ip地址和掩码为172.16.1.41/24
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
本文转自sandshell博客51CTO博客,原文链接http://blog.51cto.com/sandshell/1952198如需转载请自行联系原作者
sandshell