linux中的备份神器rsync实现远程同步

一、rsync简介

rsync(Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,传输前执行压缩,因此非常适用于异地备份、镜像服务器等应用,作为一种最常用的文件备份工具,rsync往往是Linux和UNIX系统默认安装的基本组件之一。

rsync的官方站点:http://rsync.samba.org

rsync是一款快速增量备份工具,支持:

(1)本地复制;
(2)与其他SSH同步;
(3)与rsync主机同步。

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

二、配置rsync源

配置rsync源服务器大致分为三步:
(1)建立rsync配置文件;
(2)为备份账户创建数据文件;
(3)启动rsync服务。

(1)建立rsync配置文件

在CentOS 7系统之前/etc/rsyncd.conf文件默认不存在,CentOS 7开始已经有这样的文件,并且其中放置了模板参考信息(根据实际情况编写需要的内容,注意格式)

[[email protected] ~]# vim /etc/rsyncd.conf
uid = nobody //启用匿名用户
gid = nobody
use chroot = yes //禁锢在源目录
address = 192.168.1.1 //监听地址
port 873 //监听端口
log file = /var/log/rsyncd.log //日志文件存放位置
pid file = /var/run/rsyncd.pid //存放进程ID的文件位置
hosts allow = 192.168.1.0/24 //允许访问的客户机地址
[wwwroot] //共享模块名称
path = /var/www/html //源目录的实际路径
comment = aaa //描述(可以省略)
read only = no //是否为只读
dont compress = *.gz *.bz2 *.rar *.zip //同步时不再压缩的文件类型
auth users = backuper //授权账户
secrets file = /etc/rsyncd_users.db //存放账户信息的数据文件

基于安全性考虑,对于rsync的同步源最好仅允许以只读方式做同步。另外,同步可以采用匿名的方式,只要将其中的“auth users”和“secrets file”配置项去除即可!

(2)为备份账号创建数据文件

根据rsync的配置文件内容,创建账号数据文件。每行一个用户,用户和密码之间用冒号进行分隔。

[[email protected] ~]# vim /etc/rsyncd_users.db
backuper:123456

由于账号信息采用明文存放,因此需要调整文件权限,避免账号信息泄露

[[email protected] ~]# chmod 600 /etc/rsyncd_users.db

备份用户应对源目录具有读取权限。

[[email protected] ~]# ls -ld /var/www/html
drwxr-xr-x. 2 root root 6 11月 15 2016 /var/www/html

(3)启动rsync服务

[[email protected] ~]# rsync --daemon
[[email protected] ~]# netstat -anpt | grep rsync
tcp 0 0 192.168.1.1:873 0.0.0.0:* LISTEN 44001/rsync

如果需要重启rsync服务,需要:

[[email protected] ~]# kill $(cat /var/run/rsyncd.pid)
//停止服务
[[email protected] ~]# rsync --daemon
//启动服务
[[email protected] ~]# kill -9 $(cat /var/run/rsyncd.pid)

或者直接使用“netstat -anpt | grep rsync”命令查出进程号,使用“kill 进程号”一样。
使用第一种方法停止rsync服务必须删除存放rsync服务进程的文件:

[[email protected] ~]# rm -rf /var/run/rsyncd.pid

三、使用rsync备份工具

配置好rsync同步源服务器之后,客户端就可以使用rsync工具来执行远程同步了

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

rsync是一款快速增量备份工具,支持:
(1)本地复制;
(2)与其他SSH同步;
(3)与rsync主机同步。

(1)本地复制

[[email protected] ~]# rsync /etc/passwd 123.txt
//类似于cp命令

(2)与其他SSH同步

[[email protected] ~]# rsync -av [email protected]:/root/123.txt .
[email protected]‘s password:

(3)与rsync主机同步

[[email protected] ~]# rsync -avz [email protected]::wwwroot /root
或者
[[email protected] ~]# rsync -avz rsync://[email protected]/wwwroot /root

这两种命令效果是一样!
上传只需将目录调换顺序即可(确保对上传的目录具有写入权限)!
在同步源端输入以下命令,方可执行写入权限

[[email protected] ~]# chmod o+w /var/www/html
[[email protected] ~]# ls -ld /var/www/html
drwxr-xrwx. 2 root root 6 8月 17 16:47 /var/www/html
[[email protected] ~]# rsync -avz /root [email protected]::wwwroot

但是在现实工作环境中,备份工作通常是按计划重复执行的,比如:

[[email protected] ~]# vim /root/123.pass
123456
//任意创建一个文件用于存放rsync授权用户的密码信息
[[email protected] ~]# chmod 600 /root/123.pass
//必须设定600权限,否则执行时将会报错
[[email protected] ~]# crontab -e
//创建计划任务
30 22 * * * /usr/bin/rsync -az --delete --password-file=/root/123.pass [email protected]::wwwroot /a
//每天晚上22:30执行脚本
[[email protected] ~]# systemctl restart crond
//重新启动crond服务

关于crond计划任务配置文件的格式(从上到下)

原文地址:https://www.cnblogs.com/liuhui-xzz/p/11634638.html

时间: 2024-08-27 08:21:30

linux中的备份神器rsync实现远程同步的相关文章

linux 全新的备份神器 Duplicity

  linux 全新的备份神器  Duplicity Duplicity 使用 librsync 生产一个非常小的额外备份.它能够生成递增备份,然后使用 GPG 进行加密,能够适用常用的方法发送至另一个服务器上,比如:scp.ftp.sftp.rsync等等.可以从任何目录开始备份,不限于加载点(mountpoint),并且可以指定你想要排除的文件. 安装也很简单,使用yum安装和下载duplicity的源码包,编译安装也可以. 如果使用yum无法安装,请安装epel的扩展源,再yum安装 ww

Rsync(远程同步): inux中Rsync命令的实际示例

rsync的 ( 远程同步 )为在Linux / Unix系统局部 拷贝和同步文件和目录远程以及一个最常用的命令. 随着rsync命令的帮助,您可以复制并在目录中远程和本地同步数据,在磁盘和网络,进行数据备份和两台Linux机器之间的镜像. Rsync本地和远程文件同步 本文介绍rsync命令的10个基本和高级的用法在基于Linux的机器远程和本地传输文件. 你并不需要以root用户运行rsync命令. Rsync命令的一些优点和功能 它有效地将文件复制到远程系统或从远程系统同步. 支持复制链接

通过在shell脚本中用scp或rsync实现远程同步文件

通过在shell脚本中用expect实现远程scp文件 shell expect的简单用法 http://myunix.blog.51cto.com/191254/1095074 http://jie-hui-520.blog.163.com/blog/static/60074301201022610217249/ Linux rsync 同步实践 http://my.oschina.net/congqian/blog/137847 #!/bin/bash /usr/loca/rsync/bin

Linux中的安装神器--yum源安装

linux配置yum源 一.修改yum的配置文件     /etc/yum.repos.d/xxx.repo          1.进入yum配置文件目录        # cd /etc/yum.repos.d     2.删除全部原有的文件     # rm -rf *     3.新建一个yum的配置文件     # vi my.repo                [myrepo]        标识配置文件名称(名字随意)         name=myrepo     标识yum

linux中MySQL本地可以连接,远程连接不上问题

1.网络或防火墙问题 (1)检查网络直接ping你的远程服务器,ping 182.61.22.107,可以ping通说明网络没问题 (2)看端口号3306是不是被防火墙挡住了,telnet 182.61.22.107 3306 下图这样就是防火墙挡住了3306端口不允许访问 配置防火墙,开启3306端口 vi /etc/sysconfig/iptables //防火墙配置 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j AC

rsync远程同步(理论+实践篇)

关于rsync 一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SsH.rsync 主机同步 官方网站: http://rsync.samba.org 配置rsync源服务器 rsync同步源 指备份操作的远程服务器,也称为备份源 配置rsync源 基本思路 建立rsyncd.conf配置文件.独立的账号文件 启用rsync的-daemon模式 应用示例 用户backuper, 允许下行同步 操作的目录为/var/www/html/ 配置文件rsyncd.conf

rsync 远程同步

内容要点 一.rsync介绍 二.关于inotify 三.rsync配置实例 一.rsync介绍 1.关于rsync 一款快速增量备份工具 Remote Sync,远程同步 支持本地复制,或者与其他SsH.rsync 主机同步 官方网站: http://rsync.samba.org 2.配置rsync源服务器 rsync同步源 指备份操作的远程服务器,也称为备份源 配置rsync源 基本思路 建立rsyncd.conf配置文件.独立的账号文件 启用rsync的-daemon模式 应用示例 用户

Rsync + sersync 实时同步备份

Rsync + sersync 实时同步备份 一      Rsync + Sersync  实时同步介绍 1.Rsync 服务搭建介绍 云机上搭建Rsync server,在本地搭建Rsync Clinet. 2. Sersync 服务搭建介绍 在本地服务器上搭建 Sersync  Server  检测本地的ftp目录变化,实时同步到云机上 二.Rsync编译安装 1.检查本机是否存在 [[email protected]云机 ~]# rpm -qa  rsync rsync-3.0.6-12

Linux中SVN的备份与恢复

linux中SVN备份有三种方式 1.svnadmin dump 是官方推荐的备份方式,优点是比较灵活,可以全量备份也可以增量备份,并提供版本恢复机制. 缺点是版本数过大,增长到数万以上,那么dump与load过程都将非常慢,耗时长不利于快速进行灾难恢复.在版本数较小的情况下可以使用这种备份方式. 2.svnadmin hotcopy 只能进行全量拷贝,不能进行增量备份.优点是备份较快,恢复也快.缺点是比较耗费硬盘. 3.svnsync实际是制作2个镜像库,当一个坏了的时候可以迅速切换到另一个.