怎么用rsync备份Linux数据

发布时间:2021-09-23

  RSYNC软件介绍:

  rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的特性如下:

  可以镜像保存整个目录树和文件系统。

  可以很容易做到保持原来文件的权限、时间、软硬链接等等。

  无须特殊权限即可安装。

  优化的流程,文件传输效率高。

  可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。

  支持匿名传输,以方便进行网站镜象。

  软件下载

  rysnc的主页地址为:

  目前最新版本为2.4.6。可以选择从原始网站下载:

  #tar zxvf rsync-2.6.9.tar.gz

  

#cd rsync-2.6.9

  

#./configure --prefix=/usr/local/rsync

  

#make

  

#make install

  

****正常安装RH的时候是带RSYNC的,运行文件放在/usr/bin/rsync

  

二、配置rsync server

  

1、启动RSYNC

  

#vi /etc/xinetd.d/rsync

  

把原来的YES改成NO

  

service rsync

  

{

  

disable = no

  

socket_type = stream

  

wait= no

  

user= root

  

server= /usr/bin/rsync

  

server_args = --daemon

  

log_on_failure + = USERID

  

}

  

随系统启动RSYNC

  

#chkconfig rsync on

  

  

2、配置f(需要手动生成)

  

rsyncd.conf的参数写在上边就是全局参数和写在模块里的就是模块参数

  

#vi /etc/rsyncd.conf

  

全局参数

  

uid = root //运行RSYNC守护进程的用户

  

gid = root //运行RSYNC守护进程的组

  

use chroot = no //不使用chroot

  

max connections = 4 //最大连接数为4

  

strict modes =yes //是否检查口令文件的权限

  

port = 873 //默认端口873

  

  

模块参数

  

[backup] //这里是认证的模块名,在client端需要指定

  

path = /home/backup/ //需要做镜像的目录,不可缺少!

  

comment = This is a test //这个模块的注释信息

  

ignore errors //可以忽略一些无关的IO错误

  

read only = yes //只读

  

list = no //不允许列文件

  

auth users = hening //认证的用户名,如果没有这行则表明是匿名,此用户与系统无关

  

secrets file = /etc/rsync.pas //密码和用户名对比表,密码文件自己生成

  

hosts allow = 192.168.1.1,10.10.10.10 //允许主机

  

hosts deny = 0.0.0.0/0 //禁止主机

  

#transfer logging = yes

  

注释:下面这些绿色文件是安装完RSYNC服务后自动生成的文件

  

pid file = /var/run/rsyncd.pid //pid文件的存放位置

  

lock file = /var/run/rsync.lock //锁文件的存放位置

  

log file = /var/log/rsyncd.log //日志记录文件的存放位置

  

  

3、配置rsync密码(在上边的配置文件中已经写好路径) /etc/rsync.pas(名字随便写,只要和上边配置文件里的一致即可),格式(一行一个用户)

  

账号:密码

  

#vi /etc/rsync.pas

  

例子:

  

Hening:111111

  

权限:因为rsync.pas存储了rsync服务的用户名和密码,所以非常重要。要将rsync.pas设置为root拥有, 且权限为600。

  

#cd /etc

  

#chown root.root rsync.pas

  

#chmod 600 rsync.pas

  

3.rsyncd.motd(配置欢迎信息,可有可无)

  

# vi /etc/rsyncd.motd

  

rsyncd.motd记录了rsync服务的欢迎信息,你可以在其中输入任何文本信息,如:

  

Welcome to use the rsync services!

  

4、让配置生效

  

#service xinetd restart

  

三、启动rsync server

  

RSYNC服务端启动的两种方法

  

1、启动rsync服务端(独立启动)

  

#/usr/bin/rsync–daemon

  

2、启动rsync服务端 (有xinetd超级进程启动)

  

# /etc/rc.d/init.d/xinetd reload

  

四:加入rc.local

  

在各种操作系统中,rc文件存放位置不尽相同?可以修改使系统启动时把rsync --daemon加载进去。

  

#vi /etc/rc.local

  

加入一行/usr/bin/rsync --daemon

  

  

  

五.检查rsync

  

#netstat -a grep rsync

  

tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN

  

六.配置rsync client

  

1、设定密?

  

#vi /etc/rsync.pas

  

111111

  

修改权限

  

#cd /etc

  

#chown root.root rsync.pas

  

#chmod 600 rsync.pas

  

2、client连接SERVER

  

从SERVER端取文件

  

/usr/bin/rsync -vzrtopg --progress --delete.0.217::backup/home/backup --password-file=/etc/rsync.pas

  

向SERVER端上传文件

  

/usr/bin/rsync -vzrtopg --progress --password-file=/root/rsync.pas /home/backup.0.217::backup

  

这个命令将把本地机器/home/backup目录下的所有文件(含子目录)全部备份到RSYNC SERVER(172.20.0.6)的backup模块的设定的备份目录下。

  

请注意如果路径结束后面带有/,表示备份该目录下的东东,但不会创建该目录,如不带/则创建该目录。

  

RSYNC用法:

  

rsync [OPTION]... [USER@]HOST::SRC [DEST] #从RSYNC SERVER备份文件到本地机器

  

rsync [OPTION]... src[SRC]... [USER@]HOST::DEST #从本地机器备份文件到RSYNC SERVER

  

3、自动运行

  

1)vi /usr/local/rsync/time.sh //制作脚本文件

  

把?边的内容复制进去

  

#!/bin/bash

  

/usr/bin/rsync -vzrtopg --progress --delete.0.217::backup/home/backup --password-file=/etc/rsync.pas

  

2) crontab -e

  

加入55 * * * * /usr/local/rsync/time.sh //每55分运行一次time.sh脚本文件

  

五 iptables

  

iptables -A INPUT -p tcp -s ! 11.22.33.44 --dport 873 -j DROP

  

如此, 只有 11.22.33.44 这个 client IP 能进入这台 rsync server.

  

命令介绍:-rvlHpogDtS

  

rsync命令参数

  

-v表示verbose详细显示

  

-z表示压缩

  

-r表示recursive递归

  

-t表示保持原文件创建时间

  

-o表示保持原文件属主

  

-p表示保持原文件的参数

  

-g表示保持原文件的所属组

  

-a存档模式

  

-P表示代替-partial和-progress两者的选项功能

  

-e ssh建立起加密的连接。

  

--partial阻止rsync在传输中断时删除已拷贝的部分(如果在拷贝文件的过程中,传输被中断,rsync的默认操作是撤消前操作,即从目标机上

  

删除已拷贝的部分文件。)

  

--progress是指显示出详细的进度情况

  

--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除,保持真正的一致。

  

--exclude不包含/ins目录

  

--size-only这个参数用在两个文件夹中的差别仅是源文件夹中有一些新文件,不存在重名且被修改过的文件,因为这种文件有可能会因为内容被修改可大小一样,而被略过。这个参数可以大大地提高同步的效?,因为它不需要检查同名文件的内容是否相同。

  

--password-file来指定密码文件,内容包含server端指定认证用户的密码。

  

这样就可以在脚本中使用而无需交互式地输入验证密码。

注册即送1000元现金券