rsync 文件备份
# 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 文件备份的更多相关文章
- rsync文件备份同步
1.rsync有两种认证协议: ssh认证协议 rsync server端不需要启动daemon进程,所以不用配置/etc/rsyncd.conf,只需要获取远程host的用户名密码 例: rsync ...
- Python核心编程:《8个实践性建议》
前言 我们在用Python进行机器学习建模项目的时候,每个人都会有自己的一套项目文件管理的习惯,我自己也有一套方法,是自己曾经踩过的坑踩过的雷总结出来的,现在在这里分享一下给大家,因为很多伙伴是接触P ...
- Python核心编程:8个实践性建议
前言 我们在用Python进行机器学习建模项目的时候,每个人都会有自己的一套项目文件管理的习惯,我自己也有一套方法,是自己曾经踩过的坑踩过的雷总结出来的,现在在这里分享一下给大家,因为很多伙伴是接触P ...
- rsync命令来实现将服务器端的文件备份到客户端
rsync命令来实现将服务器端的文件备份到客户端
- rsync配置两台服务器之间的文件备份(同步)
rsync配置两台服务器之间的文件备份(同步) 前情提要 环境: 192.168.1.2 主服务器 centos 7.7 192.168.1.3 备份服务器 centos 7.7 rsync 安装(两 ...
- RSync实现文件备份同步
[rsync实现网站的备份,文件的同步,不同系统的文件的同步,如果是windows的话,需要windows版本cwrsync] 一.什么是rsync rsync,remote synchronize顾 ...
- RSync实现文件备份同步详解
1.rsync简介 rsync是Unix下的一款应用软件,它能同步更新两处计算机的文件与目录,并适当利用差分编码以减少数据传输.rsync中一项与其他大部分类似程序或协议中所未见的重要特性是镜像对每个 ...
- rsync实现文件备份同步(比如服务器镜像)
[rsync实现网站的备份,文件的同步,不同系统的文件的同步,如果是windows的话,需要windows版本cwrsync] 一.什么是rsync rsync,remote synchronize顾 ...
- RSync实现文件备份同步,rsync服务器
转自:http://www.cnblogs.com/itech/archive/2009/08/10/1542945.html [rsync实现网站的备份,文件的同步,不同系统的文件的同步,如果是wi ...
随机推荐
- git 本地项目关联新repo
git initgit remote add origin repo-url git pull origin master --allow-unrelated-histories git add . ...
- ex_Lucas定理
Lucas定理(p为质数): \(C_n^m=C_{n/p}^{m/p}*C_{n\ mod\ p}^{m\ mod\ p}\) 可是p不为质数怎么办呢? ex_Lucas定理 (p不为质数) 思路 ...
- 异常——JavaSE基础
异常 异常的分类 检查性异常 运行时异常:可能被程序员避免的异常,运行时异常可以在编译时被忽略 错误ERROR:错误不是异常 在Java中把异常当作对象来处理,并且定义了一个基类java.lang.T ...
- HtmlParse:一款超轻量级的HTML文件解析和爬取工具
HtmlParse 是一款基于windwos平台的HTML文档解析工具,可快速构建DOM树,从而轻松实现网页元素的爬取工作.DOM树就是一个HTML文档的节点树,每个节点由:标签(Tag).属性(At ...
- React Suspense 尝鲜,处理前后端IO异步操作
简单介绍一下Suspense Suspense主要用来解决网络IO问题,它早在2018年的React 16.6.0版本中就已发布.它的相关用法有些已经比较成熟,有的相对不太稳定,甚至经历了重命名.删除 ...
- JS:Boolean
Boolean数据类型: 有两个值:true false Boolean会把不是Boolean的值变为Boolean值 var a = 1; var b = true; var c = 0; var ...
- 什么是AR技术?AR的价值究竟有多大?
什么是AR技术? AR技术,解释来说就是增强现实(Augmented Reality),是一种实时地计算摄影机影像的位置及角度并加上相应图像.3D模型的技术,它的目标是把虚拟世界嵌套进真实世界进行互动 ...
- UiPath存在图像Image Exists的介绍和使用
一.Image Exists的介绍 检查是否在指定的UI元素中找到图像,输出的是一个布尔值 二.Image Exists在UiPath中的使用 1. 打开设计器,在设计库中新建一个Sequence,为 ...
- BetterScroll源码阅读顺便学习TypeScript
开头 TypeScript已经出来很多年了,现在用的人也越来越多,毋庸置疑,它会越来越流行,但是我还没有用过,因为首先是项目上不用,其次是我对强类型并不敏感,所以纯粹的光看文档看不了几分钟就心不在焉, ...
- NC235250 牛可乐的翻转游戏
NC235250 牛可乐的翻转游戏 题目 题目描述 牛可乐发明了一种新型的翻转游戏! 在一个有 \(n\) 行 \(m\) 列的棋盘上,每个格子摆放有一枚棋子,每一枚棋子的颜色要么是黑色,要么是白色. ...