安装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 mkdir /data
chown -R rsync.rsync /data rsync --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 rsync_backup@192.168.2.11::data /data #会提示密码
模块名 - 拉取
rsync -avz rsync_backup@192.168.2.11::data /data --password-file /etc/rsync.password - 推送(到备份服务器-rsync服务端)
rsync -avz /data rsync_backup@192.168.2.11::data --password-file /etc/rsync.password
- 排除单个文件
rsync -avz /data/ --exclude=a.log rsync_backup@192.168.2.11::data --password-file=/etc/rsync.password - 排除多个文件
rsync -avz /data/ --exclude={1.md,2.md,3.md} rsync_backup@192.168.2.11::data --password-file=/etc/rsync.password rsync -avz /data1/ --exclude={a..g}.txt rsync_backup@192.168.2.11::data --password-file=/etc/rsync.password --exclude-from
[root@sshserver2 /]# cat paichu.log
1
2 rsync -avz /data/ --exclude-from=paichu.log rsync_backup@192.168.2.11::data --password-file=/etc/rsync.password
man rsyncd.conf # 查看配置选项
man rsync # 查看启动参数
[root@B-BackUP ~]# 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

rsync.conf配置说明

参考

rsyncd.conf参数 参数说明
uid=rsync rsync使用的用户。
gid=rsync rsync使用的用户组(用户所在的组)
use chroot=no 如果为true,daemon会在客户端传输文件前“chroot to the path”。这是一种安全配置,因为我们大多数都在内网,所以不配也没关系
max connections=200 设置最大连接数,默认0,意思无限制,负值为关闭这个模块
timeout=400 默认为0,表示no timeout,建议300-600(5-10分钟)
pid file rsync daemon启动后将其进程pid写入此文件。如果这个文件存在,rsync不会覆盖该文件,而是会终止
lock file 指定lock文件用来支持“max connections”参数,使得总连接数不会超过限制
log file 不设或者设置错误,rsync会使用rsyslog输出相关日志信息
ignore errors 忽略I/O错误
read only=false 指定客户端是否可以上传文件,默认对所有模块为true
list=false 是否允许客户端可以查看可用模块列表,默认为可以
hosts allow 指定可以联系的客户端主机名或和ip地址或地址段,默认情况没有此参数,即都可以连接
hosts deny 指定不可以联系的客户端主机名或ip地址或地址段,默认情况没有此参数,即都可以连接
auth users 指定以空格或逗号分隔的用户可以使用哪些模块,用户不需要在本地系统中存在。默认为所有用户无密码访问
secrets file 指定用户名和密码存放的文件,格式;用户名;密码,密码不超过8位
[backup] 这里就是模块名称,需用中括号扩起来,起名称没有特殊要求,但最好是有意义的名称,便于以后维护
path 这个模块中,daemon使用的文件系统或目录,目录的权限要注意和配置文件中的权限一致,否则会遇到读写的问题

排错

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 rsync_backup@192.168.2.11::data /data1/ --password-file=/etc/rsync.password

--delete # 除非实在没办法在用,一般别用.

万一要用:

推送: 先备份远端,然后再执行

拉取: 先备份本地然后再执行

全网备份引子

[root@C-NFS 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/ rsync_backup@192.168.2.11::backup/ --password-file=/etc/rsync.password - 追加定时任务
[root@C-NFS 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天.

为了避免搭建rsync服务端

1.打包 scp过去

2,解压 rsync -a src/ dst/

rsync -a src/ dst/  ## 同步目录一定要加斜线

rsync -a src dst # 是错误的

[svc]rsync简单部署的更多相关文章

  1. Ceph分布式存储-原理介绍及简单部署

    1)Ceph简单概述Ceph是一个分布式存储系统,诞生于2004年,最早致力于开发下一代高性能分布式文件系统的项目.Ceph源码下载:http://ceph.com/download/.随着云计算的发 ...

  2. Rsync同步部署web服务端配置

    Rsync同步部署web服务端配置 1,参数详解: -v, --verbose 详细模式输出. -q, --quiet 精简输出模式. -c, --checksum 打开校验开关,强制对文件传输进行校 ...

  3. XenApp简单部署

    作者:MR.Yangwj 目录 XenApp简单部署... 1 一.         XenApp安装... 1 (一)      服务器配置任务... 9 1)     许可证服务器配置... 9 ...

  4. mongodb 简单部署方案及实例

    mongodb 简单部署方案及实例 转载:http://my.oschina.net/zhuzhu0129/blog/53290 第一节 准备工作 一 安装mongodb  我这里选用rehl 5.6 ...

  5. Glue4Net简单部署基于win服务的Socket程序

    smark 专注于高并发网络和大型网站架规划设计,提供.NET平台下高吞吐的网络通讯应用技术咨询和支持 Glue4Net简单部署基于win服务的Socket程序 在写一些服务应用的时候经常把要它部署到 ...

  6. SQL Server中的变更捕获技术--简单部署

    ------准备------ CREATE DATABASE db_test_cdc ,) ,name )); INSERT INTO t1(name)VALUES('test') ------开始- ...

  7. Tomcat_记一次tomcatwar包应用简单部署过程

    记一次tomcat war包应用简单部署过程 by:授客 QQ:1033553122 1.  实践环境 Linux apache-tomcat-7.0.73 2.  实践步骤 # 解压tomcat压缩 ...

  8. WebStorm 简单部署服务器进行测试操作

    WebStorm 简单部署服务器对外发布接口 第一步: 查看webstorm防火墙是否允许链接,控制面板-->防火墙-->高级设置 入站规则-->webstrom是否允许链接 ,双击 ...

  9. nginx之旅:安装及简单部署

    安装之前最好了解一下nginx,参考nginx百度百科吧,下面这一句话基本概括了nginx的基本功能 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理  ...

随机推荐

  1. 在phpstorm中svn的使用

    目 录 1.搭建svn环境 1.1搭建svn服务端  1.2创建svn用户和密码 2.开始在phpstorm中链接svn 2.1打开Subversion 2.2 输入svn地址 2.3选择导出文件,进 ...

  2. Java动态追踪技术探究

    引子 在遥远的希艾斯星球爪哇国塞沃城中,两名年轻的程序员正在为一件事情苦恼,程序出问题了,一时看不出问题出在哪里,于是有了以下对话: “Debug一下吧.” “线上机器,没开Debug端口.” “看日 ...

  3. go语言学习-接口

    Go语言中虽然没有传统面向对象语言中类.集成的概念,不过提供了接口的支持,可以使用接口来使用一些面向对象的特性. 在 go 语言中,的接口有下面几个特点: 可以包含0个或多个方法的签名 只定义方法的签 ...

  4. C/C++指针参数赋值问题

    今天遇到一个问题,即在C/C++中,关于在函数里对指针赋值的问题.首先可以看到如下现象: void test(int *p) { p = NULL; } int main(int argc, char ...

  5. prufer序列计数的一些结论

    \(prufer\)序列和完全图的生成树一一对应(考虑构造) 完全图的生成树个数为\(n^{n - 2}\) 满足第\(i\)个点的度数为\(d_i\)的生成树为\(\frac{n!}{\prod ( ...

  6. python3基础之文件对象操作

    1.向文本文件中写入内容 s = 'Hello world\n文本文件的读取方法\n文本文件的写入方法\n' # 需要写入文件的字符串 print('显示需要写入的内容:\n{0:s}'.format ...

  7. 浅表拷贝vs深度拷贝

    浅表复制,只是创建所有的值类型,所有的引用类型还是会指向被复制的对象的引用. 故,当被复制的对象的引用类型发生改变的同事,复制的对象相应的 引用类型的值也是会发生改变的. 所以事件字段也是一个引用类型 ...

  8. [BZOJ3674]可持久化并查集加强版&[BZOJ3673]可持久化并查集 by zky

    思路: 用主席树维护并查集森林,每次连接时新增结点. 似乎并不需要启发式合并,我随随便便写了一个就跑到了3674第一页?3673是这题的弱化版,本来写个暴力就能过,现在借用加强版的代码(去掉异或),直 ...

  9. git 删除分支 远程 && 本地

    //查看远程分支 git branch -a //删除远程分支 git branch -r -d origin/branch-name git push origin :branch-name// 或 ...

  10. 总结的U3D面试题

    1.配置Unity 3d调试环境? 1)          Visual Studio Tools for Unity 2)          访问http://unityvs.com 3)      ...