用法1:本地用法

类似于cp、dd命令,实现备份文件的复制(备份)

# rsync /etc/passwd /home/passwd.bak
# rsync -b --suffix=.bak2 --backup-dir=/tmp/ /etc/passwd /home/passwd.bak
--suffix=xxx        指定旧备份文件的后缀名
--backup-dir=xxxx   指定将旧备份文件移动到哪个位置下

用法2:远程shell

利用ssh实现数据的远程传输,类似于 scp
拉取:rsync -v -e "ssh -p 22" root@192.168.31.201:/home/passwd /tmp/
推送:rsync -v /root/c.sh root@192.168.31.201:/home/
说明

  1. rsync默认也是基于ssh来实现的,如果目标主机的ssh端口不是22,那么在用rsync的必须用-e选项
  2. rsync通常都需要首先做密钥分发
  3. rsync在远程传输文件的时候,仅仅会传输新文件
  4. 在进行文件传输过程中,必须使用对方主机上的一个用户,还必须知道其密码,而且该用户还要有权限

用法3:守护进程模式

rsync的配置文件: /etc/rsyncd.conf(默认不存在)

案例:

将192.168.31.200和192.168.31.202上的数据备份到192.168.31.201上,要求:
1)备份到201的/data/backup
2)201上的rsync以ruser身份运行
准备工作:关闭防火墙,关闭selinux

第一步:配置192.168.31.201(用于接收各主机节点传递过来的备份)

  1. 创建目录
# mkdir -pv /data/backup
  1. 创建用于运行rsync进程的用户ruser
# useradd  -r  -s /sbin/nologin -u 361 ruser
  1. 修改目录的属主和属组
# chown -R 361.361 /data
  1. 修改(创建)rsync的配置文件:/etc/rsyncd.conf
# vim /etc/rsyncd.conf
pid file=/var/lock/subsys/rsync.pid
lock file=/var/lock/subsys/rsync.lock
uid=361
gid=361
log file=/var/log/rsync.log
timeout=100[dir1]
path=/data/backup
max connections=100
use chroot=yes
read only=no
list=yes
auth users=suser
secrets file=/etc/rsync.pwd
hosts allow=192.168.31.0/24
  1. 创建虚拟用户文件,并创建虚拟用户
# echo "suser:123" >>/etc/rsync.pwd
  1. 修改虚拟用户文件的权限为600
# chmod 600  /etc/rsync.pwd
  1. 启动rsync服务
# rsync --daemon --config=/etc/rsyncd.conf
  1. 检查是否启动成功
# ss -tnl | grep 873

【至此,rsyncd就配置完成了,然后就可以在其他节点向rsync传递数据了】

第二步:在192.168.31.200和192.168.31.202上对192.168.31.201做拉取和推送操作

准备工作:在201的/data/backup目录下创建一个文件touch rsync.txt

  1. 执行推送和拉取 ,测试一下
    拉取:# rsync -avz suser@192.168.31.201::dir1 ./
    在任一客户端节点执行拉取操作,没有报错并且rsync.txt被拉取到当前位置,说明rsync配置没问题。
    推送:# rsync -avz /etc/passwd suser@192.168.31.201::dir1
    在任一客户端节点执行推送操作,没有报错并且在服务端/data/backup目录下有 passwd文件说明推送也能正常完成。
  2. 在客户端创建密码文件(方便实现自动化)
# echo "123" >>/etc/rsync_tuser.passwd
  1. 修改密码文件的权限为600
# chmod 600 /etc/rsync_tuser.passwd
  1. 再次执行推送/拉取,用密码文件实现认证
# rsync -avz suser@192.168.31.201::dir2 ./ --password-file=/etc/rsync_tuser.passwd

补充:选项--exclude=filename
例子:

  1. 排除单个文件:–exclude=5.txt
  2. 排除多个文件:–exclude={5.txt, 7.txt}
  3. 基于通配符做排除:–exclude=*txt

传输失败的原因传输失败的原因

  1. 用户名或者密码写错了
  2. 密码文件指定错了
  3. 虚拟用户密码文件权限不是600
  4. 模块对应的文件的属主不是rsync daemon的运行者身份

rsync常用的三种用法相关推荐

  1. javamap的用法_Java Map常用的几种用法。

    Java Map常用的几种用法. 通常,Map是由一组键值对组成的数据结构,每个键只能在映射中出现一次.这篇文章总结了有关如何使用Java Map及其实现的类的前9个常见问题解答.为了简单起见,我将在 ...

  2. C++中virtual的三种用法

    virtual用法一 #include using namespace std; class A{ public:virtual void display(){ cout<<"A ...

  3. 硬件设计:元器件--二极管常用的七种用法

    硬件设计:元器件--二极管常用的七种用法 参考资料:https://wenku.baidu.com/view/5c3d8a5c804d2b160b4ec01d.html 二极管除单向导电特性外,还有许 ...

  4. using 的三种用法

    using 有哪三种用法? 1)引入命名空间. 2)给命名空间或者类型起别名. 3)划定作用域.自动释放资源,使用该方法的类型必须实现了 System.IDisposable接口,当对象脱离作用域之后 ...

  5. static的三种用法,定义静态变量,静态函数,静态代码块!

    static的三种用法,定义静态变量,静态函数,静态代码块! 1.定义静态变量 class PersonStatic { //静态变量的特点 //1.静态变量无需生成对象就可被调用,可以使用类名和对象 ...

  6. Vue——基本的代码结构和插值表达式、v-cloak||Vue指令之v-text和v-html||v-bind的三种用法||Vue指令之v-on

    Vue的基本代码 <!DOCTYPE html> <html lang="en"><head><meta charset="UT ...

  7. 统计内表行数常用的三种方法

    以下是统计内表行数常用的三种方法, 如下:   1.LOOP AT it_itab.    g_lines2 = g_lines2 + 1.    ENDLOOP.    该方法是通过循环内部表自己累 ...

  8. 实用ExtJS教程100例-002:MessageBox的三种用法

    在上一节中,我们用到了MessageBox,在本文中,我们将介绍一下ExtJS中常用的三种MessageBox. Ext.MessageBox.alert() 这个方法用来打开一个普通的对话框,对话框 ...

  9. SQL、LINQ、Lambda 三种用法(转)

    SQL.LINQ.Lambda 三种用法 颜色注释: SQL LinqToSql Lambda QA 1. 查询Student表中的所有记录的Sname.Ssex和Class列. select sna ...

最新文章

  1. java生成dex_Java反编译Dex – jadx
  2. Hadoop-Flume-类比吸尘器图解
  3. redhat9Linux解压gz,linux (redhat9)下subversion 的安装
  4. Node.js 模块之Nimble流程控制
  5. Stata:GMM-简介及实现范例
  6. 2018.10.31 NOIP模拟 一串数字(数论+贪心)
  7. 写一个iOS复杂表单的正确姿势
  8. 基于web版kettle开发的用户专业版B/S架构工具
  9. 渗透技巧总结、渗透技巧
  10. LinuxStudyNote(6)-Linux常用命令(2)-文件处理命令(1)-目录处理命令ls、所有者所属组其他人、文件权限、i节点
  11. nltk中文分句_如何使用nltk进行中文分词?
  12. git撤回上一次的提交
  13. Github 设置提交邮件地址
  14. 对 Mac 原生终端模拟器的增强
  15. YOUTH(年轻)——Samuel Ullman(塞缪尔·乌尔曼)
  16. Android Studio NKD开发之 FFmpeg库的引入--简单播放器(主要验证是否正确引入ffmpeg库)
  17. 中文语音克隆|MockingBird(拟声鸟)github项目运行流程(一次跑通)
  18. Python3 多线程多表入库优化
  19. 坚持,一种可以养成的习惯
  20. matlab积分函数文本文件函数,matlab数值积分与微分.ppt

热门文章

  1. 41.虚拟存储器以及相关算法
  2. C# WinForm编程之System.Windows.Forms.DataGridViewRow.DataBoundItem Property
  3. 探访2019世界人工智能大会:AI应让人类生活得更幸福
  4. 计算机视觉形态学之膨胀、腐蚀、开运算、闭运算、顶帽、黑帽和形态学梯度
  5. INRIX自动驾驶汽车平台扩大使用范围 帮助城市管理交通
  6. 写给初学者的深度学习教程之 MNIST 数字识别
  7. 小波变换在语音信号处理的应用
  8. android简单歌词,Yuan-LrcView
  9. css层叠上下文详解,CSS定位(层叠上下文)
  10. Python---编写一函数 Fabonacci(n),其中参数 n 代表第 n 次的迭代。