# rsync
# 实现文件的备份。
# 备份位置可以是当前主机,也可以是远程主机。
# rsync实现了完全备份和增量备份
# 可以做到:1.将本地主机的文件复制到另一个位置(本地、远程)。
# 2.将本地主机的文件推送到远程主机,页可以从远程主机拉取文件到本地。
# 使用模式:
# 1.shell模式:本地赋值功能
# 2.远程shell模式:可以利用ssj来实现数据的加密传输到远程主机
# 3.服务器模式:rsync工作在守护进程模式下
# 4.列表模式:ls
#
# 注意实现:
# 1.保证各个主机的时间一致(ntp)
# 2.实现文件的实时同步(rsync+inotify、rsync+sersync)
# inotify/sersync:将发生了改变的文件找出来
# 命令使用格式
# 一、本地模式:Local: rsync [OPTION...] SRC... [DEST]
# -p:赋值文件过程中,保持文件的属性不变
# -v:显示复制过程中的信息
# -a:使用归档模式(不然就会跳过目录)
# -z:在传输过程中,以压缩方式进行传输
# -e:"shh [-p22]"指定我们所使用的传输通道
# -r:递归复制
# --delete:让客户端和服务器端的文件完全一致
# --exclude:在进行文件上传的时候,排除指定的文件 # 二、远程shell模式:
# Pull(拉取): rsync [OPTION...] [USER@]HOST:SRC... [DEST]
# Push(推送): rsync [OPTION...] SRC... [USER@]HOST:DEST
# -e指定传输协议和端口,"/home/dir1"为本地目录,“root”远程的用户“10.0.0.5”为远程机子ip,“/tmp/”推送到哪里去
rsync -avz -e "ssh -p22" /home/dir1 root@10.0.0.5:/tmp/
rsync -avz -e "ssh -p22" root@10.0.0.5:/tmp/ /home/dir1 # 注意事项:
# 1.在传递文件的时候,会首先对比源和目的下的文件md5码,有更变才会进行传递
# 2.工作中通常都是rsync+ssh秘钥认证方式,目的是为了免密登录 # 三、服务器模式(后台运行)
# 准备:关闭selinux,关闭防火墙,配置时间同步
# rsync服务器模式是以模块的形式供其他机子同步和上传的,每个模块对应的是本地的一个目录,
# 所以我们需要通过rsyncd.conf文件来配置各个模块的参数,默认rsyncd.conf文件是不存在的,需要自己创建
touch /etc/rsyncd.conf
# 配置参数帮助文档
man rsyncd.conf
# rsyncd.conf 的构成
全局参数
...
[模块1]
模块参数
...
[模块2]
模块参数
... # 参数分为全局参数和模块参数。模块参数可以写在全局参数(对所有模块生效)。
# 全局参数
pid file:指定pid文件路劲
lock file:指定rsync进程锁在文件的路劲和名称
log file:rsync日志路劲和名称
port:指定端口
# 模块参数
path:指定备份目录的路劲
use chroot:是否将用户锁定在home目录
max connections:同时连接用户的最大数量
read only: 只读。也就是只能拉取不能上传
write only:
list: 设置是否可以显示全部模块列表
uid: 指定rsync进程以什么用户身份在后台运行(必须是系统,也就是必须保存在/etc/passwd)
gid:
auth user:指定访问模块需要使用的用户名,这里是虚拟用户的(保存在secrets file参数路劲)
secrets file:虚拟用户名和密码的配置文件
hosts allow: 白名单(客户端的ip地址),如果没有设置白名单和黑名单就代表所用客户端都可以访问
hosts deny: 黑名单
timeout: 指定空闲超时时间。
exclude:指定排除哪些文件不进行上传,多个文件空格隔开,支持通配符(q* 12.txt) 例子:
uid=rsync
gid=rsync
use chroot=no
port=873
max connections=2
timeout=100
pid file=/rsync/pid/rsync.pid
lock file=/rsync/lock/rsync.lock
log file=/rsync/log/rsync.log [web1]
path=/rsync/web1
read only=false
hosts allow=10.0.0.0/8
auth users=vuser1
secrets file=/rsync/rsync.passwd
list=false [web2]
path=/rsync/web2
read only=false
hosts allow=10.0.0.0/8
auth users=vuser2
secrets file=/rsync/rsync.passwd
list=false # 创建目录
mkdir -pv /rsync/web{1,2}
# 创建rsync运行的系统用户
groupadd -r rsync
useradd -r -s /sbin/nologin -g rsync rsync
# 启动服务。默认配置文件加载的是/etc/rsyncd.conf,如果需要加载其他:--config=/path/rsyncd.conf
rsync --deamon
# 重启(修改配置文件后需要重启)
killall rsync
ss -tnl | grep 873
rsync --deamon
ss -tnl | grep 873
# 检查rsync的端口(默认873)
ss -ntl | grep 873
# 创建虚拟用户的密码,该文件的权限一定要是600
vim /rsync/rsync.passwd
# 内容如下(一个用户一行):
vuser1:123
vuser2:123
# 修改文件权限
sudo chmod 600 /rsync/rsync.passwd
# 修改模块目录所属
sudo chown rsync.rsync /rsync/web1
sudo chown rsync.rsync /rsync/web2 # 客户端访问命令
# Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
# rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
# Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
# rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
# 上传
rsync -avz /home/ vuser1@10.0.0.41:873:web1
# 拉取
rsync -avz vuser1@10.0.0.41:873:web1 /home/
# 密码:/etc/abc.passwd内容处了密码不能有其他内容,权限必须是600
rsync -avz /home/ vuser1@10.0.0.41:873:web1 --password-file=/etc/abc.passwd # 补充
# --delete 让客户端和服务器端的文件完全一致(注意:如果你是部分推送的是部分文件的话,那么服务端会将其他文件删除)
rsync -avz /home/ --delete vuser1@10.0.0.41:873:web1 --password-file=/etc/abc.passwd
# --exclude 在进行文件上传的时候,排除指定的文件
rsync -avz /home/ --exclude=22.txt vuser1@10.0.0.41:873:web1 --password-file=/etc/abc.passwd
rsync -avz /home/ --exclude=*.txt vuser1@10.0.0.41:873:web1 --password-file=/etc/abc.passwd
rsync -avz /home/ --exclude={22.txt,23.txt} vuser1@10.0.0.41:873:web1 --password-file=/etc/abc.passwd

rsync 文件备份的更多相关文章

  1. rsync文件备份同步

    1.rsync有两种认证协议: ssh认证协议 rsync server端不需要启动daemon进程,所以不用配置/etc/rsyncd.conf,只需要获取远程host的用户名密码 例: rsync ...

  2. Python核心编程:《8个实践性建议》

    前言 我们在用Python进行机器学习建模项目的时候,每个人都会有自己的一套项目文件管理的习惯,我自己也有一套方法,是自己曾经踩过的坑踩过的雷总结出来的,现在在这里分享一下给大家,因为很多伙伴是接触P ...

  3. Python核心编程:8个实践性建议

    前言 我们在用Python进行机器学习建模项目的时候,每个人都会有自己的一套项目文件管理的习惯,我自己也有一套方法,是自己曾经踩过的坑踩过的雷总结出来的,现在在这里分享一下给大家,因为很多伙伴是接触P ...

  4. rsync命令来实现将服务器端的文件备份到客户端

    rsync命令来实现将服务器端的文件备份到客户端

  5. rsync配置两台服务器之间的文件备份(同步)

    rsync配置两台服务器之间的文件备份(同步) 前情提要 环境: 192.168.1.2 主服务器 centos 7.7 192.168.1.3 备份服务器 centos 7.7 rsync 安装(两 ...

  6. RSync实现文件备份同步

    [rsync实现网站的备份,文件的同步,不同系统的文件的同步,如果是windows的话,需要windows版本cwrsync] 一.什么是rsync rsync,remote synchronize顾 ...

  7. RSync实现文件备份同步详解

    1.rsync简介 rsync是Unix下的一款应用软件,它能同步更新两处计算机的文件与目录,并适当利用差分编码以减少数据传输.rsync中一项与其他大部分类似程序或协议中所未见的重要特性是镜像对每个 ...

  8. rsync实现文件备份同步(比如服务器镜像)

    [rsync实现网站的备份,文件的同步,不同系统的文件的同步,如果是windows的话,需要windows版本cwrsync] 一.什么是rsync rsync,remote synchronize顾 ...

  9. RSync实现文件备份同步,rsync服务器

    转自:http://www.cnblogs.com/itech/archive/2009/08/10/1542945.html [rsync实现网站的备份,文件的同步,不同系统的文件的同步,如果是wi ...

随机推荐

  1. spring boot rest controller 自定义反序列化 Date 格式

    @JsonFormat(pattern = DatePattern.NORM_DATE_PATTERN) private Date time;

  2. CAD图与互联网地图网页端相互叠加显示技术分析和实现

    需求分析 之前相关的博文中介绍了如果在Web网页端展示CAD图形(唯杰地图云端图纸管理平台 https://vjmap.com/app/cloud),当一些CAD图纸有实际地理坐标位置时,如地形图等, ...

  3. 网络编程之socket套接字

    目录 socket套接字简介 socket模块 通信循环 代码优化 连接循环 半连接池 黏包问题 解决黏包问题 黏包问题特殊情况(文件过大) socket套接字简介 由于操作OSI七层是所有C/S架构 ...

  4. .net6.0 初探

    概述:大概的了解一下 dotnet 6.0 建立 MVC web项目的过程以及程序调用  结合 EF 框架进行简单 的CRUD 1.选择创建  MVC 的Web项目 2.框架类型选择 6.0 3. 6 ...

  5. Spring Boot整合Swagger报错:"this.condition" is null

    前段时间看到群里有吐槽swagger整合问题,当时没仔细看,总以为是姿势不对. 这两天正好自己升级Spring Boot版本,然后突然出现了这样的一个错误: Caused by: java.lang. ...

  6. 关于『HTML5』第一弹

    关于『HTML5』:第一弹 建议缩放90%食用 祝各位国庆节快乐!!1 经过了「过时的 HTML」.「正当时的 Markdown」的双重洗礼后,我下定决心,好好学习HTML5  这回不过时了吧(其实和 ...

  7. C#/VB.NET 在PDF表格中添加条形码

    条码的应用已深入生活和工作的方方面面.在处理条码时,常需要和各种文档格式相结合.当需要在文档中插入.编辑或者删除条码时,可借助于一些专业的类库工具来实现.本文,以操作PDF文件为例,介绍如何在编辑表格 ...

  8. PHP odbc查询SQL SERVER数据库带有中文时无返回数据

    近日遇到一个小麻烦当数据库中有中文字符数据 结果odbc_fetch_array后 我用json_encode怎么也得不到数据页面一片空白 我脑子也一片空白后来才知道sqlserver 没有 UTF- ...

  9. QQ空间未授权评论_已忽略

    看群友们聊天时发现的, 大概是做了查看了动态访问时间的一个设置, 但是仅自己可见的说说还是被评论了的这么一个问题. 闲的没事就翻了一下找一下问题. 这个方法嘎嘎鸡肋, 可以说完全没用, 交到tsrc, ...

  10. 29.MySQL高级SQL语句

    MySQL高级SQL语句 目录 MySQL高级SQL语句 创建两个表 SELECT DISTINCT WHERE AND OR IN BETWEEN 通配符 LIKE ORDER BY 函数 数学函数 ...