守护进程实现,将daemon配置在backup服务器,因为这样其他服务器就能通过服务推即可。
服务端配置流程:
前提两台服务41为backup服务 31是其他服务器即客户端
在41服务器中配置 vim /etc/rsyncd.conf 内容如下:
1.查看rsync安装包
rpm -qa rsync 如果没有 yum -y install rsync
2.添加rsync服务的用户,管理本地目录
useradd -s /sbin/nologin -M rsync -s表示不登陆的虚拟用户, -M表示不需要家目录
id rsync
3.生成rsyncd.conf配置文件
vim /etc/rsycd.conf 放入事先准备的配置。可以man rsyncd.conf去查即如下内容
#rsync_config_____start #created by oldboy 2018.05.17 14:55 #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 即都可以访问 auth users = rsync_backup 使用虚拟用户名 secrets file = /etc/rsync.password 密码存放文件 #rsync_config_____end
4.根据rsyncd.conf的auth users 配置账户,远程连接的。
并根据secrets file 参数生产密码文件/etc/rsync.password,将用户名和密码按以下格式写入文件
echo "rsync_backup:oldboy" > /etc/rsync.password
cat /etc /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 查看873端口是否监听或netstat -lntup |grep 873
8.加入开机自启动
echo "/usr/bin/rsync --daemon" >> /etc/rc.local
tail -l /etc/rc.local
客户端配置流程
1.查看rsync安装包
rpm -qa rsync 如果没有 yum -y install rsync
2.创建密码文件,留下密码,客户端只有密码
vim /etc/rsync.password 创建密码文件
echo "oldboy" > /etc/rsync.password 写入密码 建议与服务端相同,这里用oldboy
chmod 600 /etc/rsync.password 设置权限
3.文件同步
一般在客户端本地创建一个目录,用作本地临时备份,过后统一用rsync推过去
/tmp/指的是客户端要推的数据的本地目录;rsync_backup服务端配置文件的虚拟用户;backup 指服务端配置文件中的模块名 后面的表示免密码操作
推送push (2种方法):
1方:rsync [option] src... [user]@host::dest
例:rsync -avz /tmp/ rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.password
以上的解释 /tmp/指的是客户端要推的数据的本地目录;rsync_backup服务端配置文件的虚拟用户;10.0.0.41指的是服务端的ip,不是配置文件中的ip;backup 指服务端配置文件中的模块名 --password-file=/etc/rsync.password表示免密码操作 (不加的话需要输入密码,这里密码为oldboy)
2方:rsync [option] src... rsync://[user@]host[:port]/dest
例:rsync -avz /tmp/test.txt rsync://rsync_backup@10.0.0.41/backup --password-file=/etc/rsync.password
拉取pull(2种方法):
1方:rsync [option] [user]@host::src...[dest]
rsync -avz rsync backup@10.0.0.8::oldboy /tmp/ --password-file=/etc/rsync.password
2方:rsync [option] rsync:// [user]@host[:port]/src...[dest]
rsync -avz rsync://rsync_backup@10.0.0.8/backup/ /tmp/ --password-file=/etc/rsync.password