• rsync远程同步



    rsync 远程同步

    • rsync(Remote Sync,远程同步) 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用。

    • 在远程同步任务中,负责发起rsync同步操作的客户机称为发起端,而负责响应来自客户机的rsync同步操作的服务器称为同步源。在同步过程中,同步源负责提供文件的原始位置,发起端应对该位置具有读取权限。

    配置rsync源服务器

    [root@localhost ~]# systemctl stop firewalld
    [root@localhost ~]# setenforce 0
    [root@localhost ~]# vim /etc/rsyncd.conf 
    ----------------------------------------------------------------------------------------------------
    uid = root
    gid = root
    use chroot = yes
    address = 192.168.13.10
    port = 873
    log file = /var/log/rsyncd.log
    pid file = /var/run/rsyncd.pid
    hosts allow = 192.168.13.0/24
    dont compress   = *.gz *.tgz *.zip *.z *.Z
    [wwwroot]
    path = /var/www/html
    comment= Document Root of www.wang.com
    read only = yes
    auth only = backuper
    secrets file =/etc/rsyncd_users.db
    ----------------------------------------------------------------------------------------------------
    vim /etc/rsyncd_users.db
    ----------------------------------------------------------------------------------------------------
    backuper:abc123
    ----------------------------------------------------------------------------------------------------
    [root@localhost ~]# chmod 600 /etc/rsyncd_users.db 
    [root@localhost ~]# vim /etc/rsyncd_users.db
    [root@localhost ~]# yum install httpd -y
    [root@localhost ~]# chmod +r /var/www/html/
    [root@localhost ~]# ls -ld /var/www/html/
    [root@localhost ~]# netstat -anpt | grep rsync
    ####关闭服务
    [root@localhost ~]# kill $(cat /var/run/rsyncd.pid)
    [root@localhost ~]# rm -rf /var/run/rsyncd.pid
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    基本格式

    基本格式:rsync [选项] 原始位置 目标位置

    选项作用
    -r递归模式,包含目录及子目录中的所有文件。
    -l对于符号链接文件仍然复制为符号链接文件。
    -v显示同步过程的详细(verbose)信息。
    -z在传输文件时进行压缩(compress)。
    -a归档模式,保留文件的权限、属性等信息,等同于组合选项“-rlptgoD”。
    -p保留文件的权限标记。
    -t保留文件的时间标记。
    -g保留文件的属组标记(仅超级用户使用)。
    -o保留文件的属主标记(仅超级用户使用)。
    -H保留硬连接文件。
    -A保留 ACL 属性信息。
    -D保留设备文件及其他特殊文件。
    –delete删除目标位置有而原始位置没有的文件。
    –checksum根据校验和(而不是文件大小、修改时间)来决定是否跳过文件。

    将指定的资源下载到本地/opt 目录下进行备份。

    格式一:
    rsync -avz backuper@192.168.13.10::wwwroot /opt/ #密码abc123

    格式二:
    rsync -avz rsync://backuper@192.168.13.10/wwwroot /opt/

    在这里插入图片描述

    免交互配置

    [root@localhost ~]# echo "abc123" > /etc/server.pass
    [root@localhost ~]# chmod 600 /etc/server.pass
    [root@localhost ~]# crontab -e
    crontab: installing new crontab
    ----------------------------------------------------------------------------------------------------
    30 22 * * * /usr/bin/rsync -az --delete
    --password-file=/etc/server.pass backuper@192.168.13.10::wwwroot /opt/
    ###为了在同步过程中不用输入密码,需要创建一个密码文件,保存 backuper 用户的密码,如 /etc/server.pass。在执行 rsync 同步时使用选项 “--password-file=/etc/server.pass” 指定即可。
    [root@localhost ~]# systemctl restart crond
    [root@localhost ~]# systemctl enable crond
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    使用rsync来实现快速删除大量文件

    假如要在linux下删除大量文件,比如100万、1000万,像/usr/local/nginx/proxy_temp的nginx缓存等,那么rm -rf * 可能就不好使了,因为要等待很长一段时间。在这种情况下我们可以使用rsync来巧妙处理。rsync实际用的是替换原理。

    [root@localhost ~]# mkdir /home/blank
    [root@localhost ~]# rsync --delete-before -a -H -v --progress --stats /home/blank/ /usr/local/nginx/proxy_temp
    
    • 1
    • 2
    参数说明
    –delete-before接收者在传输进行删除操作
    -a归档模式,表示以递归方式传输文件,并保持所有文件属性
    -H保持硬连接的文件
    -v详细输出模式
    –progress在传输时显示传输过程
    –stats给出某些文件的传输状态
  • 相关阅读:
    Spark 之 expression
    RORγ 反向激动剂-XY101 小分子化合物
    JavaScript动画库:Anime.js
    【Autosar RTM】
    基于实现地图弹窗轮播功能及遇到的问题解决
    I/O处理器与DMA控制器与I/O通道
    webpack打包一个文件,做了哪些事情
    设计模式学习(十二):享元模式
    利用C++开发一个迷你的英文单词录入和测试小程序
    关于I/O——内存与CPU与磁盘之间的关系
  • 原文地址:https://blog.csdn.net/weixin_66946305/article/details/125482438