[svc]rsync简单部署

Posted 毛台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[svc]rsync简单部署相关的知识,希望对你有一定的参考价值。

安装rsync服务端-backup服务器

yum install rsync -y

useradd rsync -s /sbin/nologin -M
chown -R rsync.rsync /data

cat >/etc/rsyncd.conf<<EOF
uid = rsync
gid = rsync
use chroot = no
max connections = 100
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

ignore errors
read only = false
list = false
hosts allow = 192.168.2.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password

[data]
path=/data
EOF

echo "rsync_backup:123456" > /etc/rsync.password
chmod 600 /etc/rsync.password

rsyncd --daemon #启动
rsync --daemon --address=192.168.2.11

pkill rsync
kill –USR2 `cat /var/run/rsyncd.pid` #优雅关闭
kill -HUP `cat /var/run/rsyncd.pid`
- 客户端: 执行推拉操作
yum install rsync -y
echo "123456" >/etc/rsync.password
chmod 600 /etc/rsync.password


rsync -avz [email protected]::data /data #会提示密码
                                      模块名

- 拉取
rsync -avz [email protected]::data /data --password-file /etc/rsync.password

- 推送(到备份服务器-rsync服务端)
rsync -avz /data [email protected]::data --password-file /etc/rsync.password
- 排除单个文件
rsync -avz /data/ --exclude=a.log [email protected]::data --password-file=/etc/rsync.password

- 排除多个文件
rsync -avz /data/ --exclude={1.md,2.md,3.md} [email protected]::data --password-file=/etc/rsync.password

rsync -avz /data1/ --exclude={a..g}.txt [email protected]::data --password-file=/etc/rsync.password

--exclude-from
[[email protected] /]# cat paichu.log 
1
2

rsync -avz /data/ --exclude-from=paichu.log [email protected]::data  --password-file=/etc/rsync.password
man rsyncd.conf # 查看配置选项
man rsync       # 查看启动参数
[[email protected] ~]# netstat -ntulp |grep rsync
tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      1637/rsync          
tcp        0      0 :::873                      :::*                        LISTEN      1637/rsync

配置小结

rsync server:

1,vim /etc/rsyncd.conf(用户rsync, 模块,目录,非系统虚拟用户 及密码文件)
2,创建共享目录 /data
3,创建rsync用户并授权访问/data
4,创建密码文件,复制配置文件里的路径,然后添加密码内容
  内容:虚拟用户名:密码
5,密码文件权限 600
6,rsync –daemon  然后放入 /etc/rc.local
7,tail /var/log/rsyncd.log  #看日志

rsync客户端-执行推拉操作

1,密码文件和服务端没任何关系. --password-file=/etc/rsync.password,内容仅包含密码
2, /etc/rsync.password 600

排错

1,防火墙和selinux
2,/var/log/rsyncd.log
3,整个部署流程整体考虑排查
4,操作习惯

1,部署流程熟练
2,原理理解
3,学会看日志,命令行输入rsync命令.日志输入/var/log/rsyncd.log
会部署 会原理 会看日志

服务端没目录
服务端目录没授权
服务器rsync.password 权限问题
No route 防火墙问题

无差异备份:企业里要求数据一模一样

rsync推送企业工作常见:
--delete有风险: 一般不要用
本地有啥,远端就有啥,本地没有的远端有也要删除.远端的目录数据可能丢失.

rsync -avz --delete [email protected]::data /data1/ --password-file=/etc/rsync.password

--delete # 除非实在没办法在用,一般别用.
万一要用:
推送: 先备份远端,然后再执行
拉取: 先备份本地然后再执行

全网备份引子

[[email protected] scripts]# cat back.sh 
#bin/sh
dir="`ifconfig eth0|awk -F '[ :]+' 'NR==2 {print $4}'`_$(date +%F)"
mkdir /backup/$dir_ -p &&/bin/cp /var/spool/cron/root /backup/$dir/cron_root_$(date +%F) &&/bin/cp /etc/rc.local /backup/$dir/rc.local_$(date +%F) &&rsync -az /backup/ [email protected]::backup/ --password-file=/etc/rsync.password

- 追加定时任务
[[email protected] scripts]# crontab –e 
#############
00 01 * * *  /bin/sh /root/shell/back.sh >/dev/null 2>&1

说明:
1,和别的时间错开,不一定晚上12点.
2,这样就实现全网备份
3,如同黄雀一样,rsyncbackup服务器后还有rsyncserver来备份他自己的数据,根据公司规模来.

企业面试题:
老板让备份 web server本地保留7天备份 backup服务器180天.

以上是关于[svc]rsync简单部署的主要内容,如果未能解决你的问题,请参考以下文章

rsync nfs 实时同步,结合实战

自动化部署安装nfs+rsync+sersync+nfs客户端+SMTP

使用Gulp-Rsync部署前端项目 | 前端

[svc]HTTPS证书生成原理和部署细节

标准库 svc—程序及服务控制

二.RSYNC备份服务