rsync远程同步

本文详细介绍了如何配置rsync源服务器,包括停止firewalld服务、设置selinux为允许状态、编辑rsyncd.conf配置文件、创建用户数据库、开启httpd服务并设置文件权限。此外,还讲解了rsync命令的基本格式,用于从远程服务器下载资源到本地进行备份。同时,文章还提到了如何通过免交互配置实现定时备份,以及利用rsync快速删除大量文件的方法。
摘要由CSDN通过智能技术生成


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

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

基本格式

基本格式: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

在这里插入图片描述

使用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
参数说明
–delete-before接收者在传输进行删除操作
-a归档模式,表示以递归方式传输文件,并保持所有文件属性
-H保持硬连接的文件
-v详细输出模式
–progress在传输时显示传输过程
–stats给出某些文件的传输状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值