Linux Rsync安装

2025-02-26 14:34:18 545

拓扑:

Linux 1(源主机192.168.1.63)

Linux 2(目标主机192.168.1.64)

需要关闭selinux,否则即使创建/etc/rsyncd.conf文件之后去启动服务也不会生效。

[root@Linux 1~]# setenforce 0

[root@Linux 1 ~]#yum  -y  install rsync

[root@Linux 1 ~]#systemctl start rsyncd

[root@Linux 1~]# netstat -antup | grep 873#查看873端口是否监听。

tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 43447/rsync

tcp6 0 0 :::873 :::* LISTEN 43447/rsync

rsync命令选项

-a:--archive archive mode权限保存模式,相当于-rlptgoD参数,存档,递归,保持属性等。

-z:--compress压缩模式,当资料在传送到目的端进行档案压缩。

-H:--hard-links保留硬链接文件。

--version:输出rsync版本。

-v:--verbose复杂的输出信息。

-u:--update仅仅进行更新,也就是跳过已经存在的目标位置,并且文件时间要晚于要备份的文件,不

覆盖新的文件。

--port=PORT:定义rsyncd(daemon)要运行的port(预设为tcp 873)。

--delete:删除那些目标位置有的文件而备份源没有的文件。

--password-file=FILE:从指定密码文件中获取密码。

--bwlimit=KBPS:限制I/O带宽。

--filter “-filename”:需要过滤的文件。

--exclude=filname:需要过滤的文件。

--progress:显示备份过程。

通常常用的选项–avz

使用系统普通用户rsync备份数据保持原有文件权限

对Linux 1网站根目录的/var/www/html目录备份到Linux 2的/web-back 。

服务器:Linux 1

客户端:Linux 2

1.建立测试用户(两台主机都需要操作):

[root@Linux 2 ~]# useradd rget1 && echo "123456" |passwd --stdin rget1

更改用户rget1 的密码。

passwd:所有的身份验证令牌已经成功更新。

[root@Linux 1 ~]# useradd rget1 && echo "123456" |passwd --stdin rget1

更改用户rget1 的密码。

passwd:所有的身份验证令牌已经成功更新。

2.对目录赋予ACL权限:

[root@Linux 1~]# mkdir /var/www/html/ -p#创建目录。

[root@Linux 1 ~]# setfacl -R -m user:rget1:rwx /var/www/html/

[root@Linux 1 ~]# getfacl/var/www/html

getfacl:Removing leading'/'from absolute path names

#file: var/www/html

#owner: root

#group: root

user::rwx

user:rget1:rwx

group::r-x

mask::rwx

other::r-x

3.创建测试数据:

[root@Linux 1 ~]# cp -r /boot/* /var/www/html/

#复制/boot/目录下所有内容到/var/www/html/目录下。

4.服务端上操作:

[root@Linux 2 ~]# mkdir /web-back#创建存放数据目录。

[root@Linux 2 ~]# chown rget1:rget1 -R /web-back/

#修改目录属主、属组为rget1用户。

[root@Linux 1 ~]#rsync -avz /var/www/html/ rget1@192.168.1.64:/web-back/

The authenticity of host '192.168.0.64 (192.168.0.64)' can't be established.

ECDSA key fingerprint is

SHA256:NN12lfXOanqEZuFwR2k6PEtsUyliHoiMPXgM2RQ0n7E.

ECDSA key fingerprint is MD5:da:20:18:a8:41:bb:33:0e:8f:87:2c:8a:33:fe:ea:3a.

Are you sure you want to continue connecting (yes/no)? yes#输入yes。

Warning: Permanently added '192.168.0.64' (ECDSA) to the list of known hosts.

rget1@192.168.0.64's password: #输入rget1用户密码。

sending incremental file list

./

sent 29 bytes  received 15 bytes  3.03 bytes/sec

total size is 0  speedup is 0.00

使用非系统用户备份数据

实验开始之前首先客户端服务器端关闭防火墙firewalld否则实验失败:

[root@Linux 1~]# systemctl stop firewalld.service

[root@Linux 2~]# systemctl stop firewalld.service

使用非系统用户进入备份数据,依靠系统中的rsync配置文件/etc/rsyncd.conf进行备份数据,并创建备份账户,最终把rsync以deamon方式运行。

使用rsync服务进行数据同步。

用配置文件定义目录输出。

服务器/备份端:Linux 2

客户端/数据源:Linux 1

[root@Linux 2~]# vim /etc/rsyncd.conf#文件不存在,需要手动创建。

注意:#会出现因注释不兼容的问题而导致推数据时出现报错,配置文件需取消注释或者注释进行换行处理。

uid = root #运行进程的身份。

gid = root #运行进程的组。

address =192.168.1.64 #监听IP。

port = 873 #监听端口。

hosts allow =192.168.1.0/24 #允许同步客户端的IP地址,可以是网段,或者用*表示所有 192.168.1.0/24或192.168.1.0/255.255.255.0

use chroot = yes #是否囚牢,锁定家目录,rsync被黑之后,黑客无法再rsync运行的家目录之外创建文件,选项设置为yes。

max connections = 5 #最大连接数。

pid file =/var/run/rsyncd.pid #进程PID,自动生成。

lock file =/var/run/rsync.lock #指max connectios参数的锁文件。

log file =/var/log/rsyncd.log #日志文件位置。

motd file =/etc/rsyncd.motd #客户端登陆之后弹出的消息,需要创建。

[wwwroot] #共享模块名称。

path = /web-back/ #路径。

comment = used for web-data root #描述。

read only = false #只读权限为假。

list = yes #是否允许查看模块信息。

auth users = rsyncuser #备份的用户,和系统用户无关。

secrets file =/etc/rsync.passwd #存放用户的密码文件,格式是 用户名:密码。

自己手写配置文件,不写注释

创建提示文件和用户密码。

#编辑欢迎信息文件。

[root@Linux 2 ~]# echo "Welcome to Backup Server" > /etc/rsyncd.motd

[root@Linux 2 ~]# vim /etc/rsync.passwd #创建并编写密码文件。

rsyncuser:password123 #格式为 用户名称:密码。

[root@Linux 2 ~]# chmod 600 /etc/rsync.passwd

#密码文件权限必须是700或者600,否则的话身份验证会失效。

重新启动服务

[root@Linux 2~]#systemctl restart rsyncd

[root@Linux 2 ~]# netstat -antup | grep :873#查看873端口是否监听。

tcp 0 0:::873 :::* LISTEN 45089/xinetd

测试

rsync语法:rsync选项用户名@备份源服务器IP::共享模块名目标目录

[root@Linux 1 ~]# rsync -avz  /var/www/html rsyncuser@192.168.0.64::wwwroot

Welcome to Backup Server

Password:#输入密码password123

密码处理

新建一个文件保存好密码,然后在rsync命令中使用--password-file指定此文件即可

[root@Linux 1~]# vim /etc/rsync.passwd#创建密码文件,其中中需要指定密码即可。

password123

[root@Linux 1~]# chmod 600 /etc/rsync.passwd#赋予密码文件600权限。

[root@Linux 1~]#rsync-avz /var/www/html \\

rsyncuser@192.168.0.64::wwwroot --password-file=/etc/rsync.passwd推push

[root@Linux 1~]#rsync -azP  rsyncuser@192.168.1.202::wwwroot /opt --password-

file=/etc/rsync.passwd拉pull

脚本实现定时自动备份

[root@Linux 1 ~]# vim autobackup.sh#编写脚本。

#!/bin/bash

rsync -avz /var/www/html \\

rsyncuser@192.168.1.64::wwwroot -- password-file=/etc/rsync.passwd

[root@Linux 1 ~]# chmod +x autobackup.sh#赋予脚本执行权限。

[root@Linux 2 ~]# rm -rf /web-back/*

[root@Linux 1 ~]# sh autobackup.sh#测试脚本。

定义计划任务实现定时备份:

[root@Linux 1 ~]# echo "01 3 * * * sh /root/autoback.sh &" >> /var/spool/cron/root

通过一系列如关闭 selinux、配置 rsync 选项、设置用户权限、编写配置文件等操作,以及利用脚本和计划任务实现定时自动备份,我们成功搭建起基于 rsync 的高效数据备份方案。在实际应用中,合理运用这些知识,能为 Linux 系统的数据安全与管理提供有力保障。

蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,也可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。更多技术知识,蓝队云期待与你一起探索,助力你在 Linux 运维之路上稳步前行。



提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: