Rsync备份同步数据工具
Rsync is a fast and extraordinarily versatile file copying tool.
Rsync是一款开源的,快速的,多功能的,可实现全量和增量的本地或者远程的数据同步,备份的优秀工具。
Rsync的功能:
1、支持拷贝特殊文件如链接文件、设备等。
2、可以有排除指定文件或目录同步的功能,相当于打包命令tar的--exclude=PATTERN排除功能。
3、可以做到保持原文件或目录的权限、时间、软硬链接、属主、属组等所有属性不变。
4、可以实现增量同步,即只同步发生改变的文件。
5、可以使用rcp,rsh,ssh等方式配合传输文件。(rsync本身不对文件进行加密)。
6、可以通过socket(进程方式)传输文件和数据(即客户端与服务端)。
7、支持匿名的认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像。
Rsync安装:
一般Linux系统自带的有rsync工具
[root@backup shell]# rpm -qa rsync
rsync-3.0.-.el6.x86_64
Rsync语法:
Local: rsync [OPTION...] SRC... [DEST]
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
语法解释:
Local:本地
[OPTION]:rsync的参数
SRC:源数据所在地目录
[DEST]或DEST:目标存放数据所在地目录
Pull:是在本地通过rsync将远程主机的数据拉到本地主机上。
Push:是在本地通过rsync将本地数据推送到远程主机上。
[:PORT]:端口
此次创建rsync服务器将以socket方式进行传输数据
A、服务端
1、首先在服务端上创建rsync配置文件,rsync没有自带的配置的文件,所以需要手工进行创建。
配置文件所在位置:/etc/rsyncd.conf
其中参数配置请使用
[root@backup shell]# man rsyncd.conf
rsyncd.conf — configuration file for rsync in daemon mode
#rsync_config________start
##-------------CopyRight-------------
## Name:rsync configure
## Version Number:1.00
## Type:text
## Language:text
## Date:--
## Author:sandy
## QQ:
## Email:eeexu123@.com
## Blog:https://www.cnblogs.com/eeexu123/ ##rsync.conf start##
uid = www //备份目录的UID
gid = www //备份目录的GID
use chroot = no //安全方面
max connections = 200 //最大连接数
timeout = 300 //超时
pid file = /var/run/rsyncd.pid //rsync进程的pid
lock file = /var/run/rsync.lock //锁文件
log file = /var/log/rsyncd.log //rsync日志文件
ignore errors //忽略错误
read only = false //只读为假
list = false //可以查看
hosts allow = 172.16.1.0/24 //允许传输的网段
#hosts deny = 0.0.0.0/32 //拒绝传输的网段
auth users = rsync_backup //匿名的用户
secrets file = /etc/rsync.password //匿名用户的密码
[backup] //备份的目录
path = /backup
[nfsbackup]
path = /data
#rsync_config________end
2、创建用户www及配置备份目录的权限
[root@backup ~]# useradd www
[root@backup ~]# id www
uid=(www) gid=(www) 组=(www)
[root@backup ~]# chown -R www.www /backup/
[root@backup ~]# ll /backup/
总用量
-rw-r--r--. www www 3月 : rsyncd
3、创建匿名用户和密码文件
[root@backup ~]# cat /etc/rsync.password
rsync_backup:oldboy
4、修改密码文件的权限
[root@backup ~]# chmod /etc/rsync.password
[root@backup ~]# ll /etc/rsync.password
-rw-------. root root 2月 : /etc/rsync.password
5、启动Rsync服务
[root@backup ~]# rsync --daemon
B、客户端
1、首先创建匿名用的密码文件
[root@nginx ~]# cat /etc/rsync.password
oldboy
2、修改密码文件的权限
[root@nginx ~]# chmod /etc/rsync.password
[root@nginx ~]# ll /etc/rsync.password
-rw-------. root root 5月 : /etc/rsync.password
C、测试
服务器备份目录状态
[root@backup ~]# ll /backup/
总用量
客户端推送数据到服务端
[root@nginx tools]# rsync -avz /root/tools/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password
sending incremental file list
./
zabbix-agent-3.0.-.el6.x86_64.rpm sent bytes received bytes 654202.00 bytes/sec
total size is speedup is 1.00
查看服务端
[root@backup ~]# ll /backup/
总用量
-rw-r--r-- www www 5月 zabbix-agent-3.0.-.el6.x86_64.rpm
D、配置Rsync服务启动脚本
脚本存放地在/etc/init.d/rsyncd
#!/bin/bash #-------------CopyRight-------------
# Name:Rsync start or stop
# Version Number:1.00
# Type:sh
# Language:bash shell
# Date:--
# Author:sandy
# QQ:
# Email:eeexu123@.com
# Blog:https://www.cnblogs.com/eeexu123/ # rsyncd Start or Stop the rsync server daemon
#
# chkconfig: 23 //可以被chkconfig管理
# description: rysnc is backup server pid_file=/var/run/rsyncd.pid
RETVAL= #source functions libary
. /etc/init.d/functions #check permission
[ -x /etc/init.d/rsyncd ]||{
echo "rsyncd is permission denied"
exit
} #start rsync
start(){
if [ $UID -ne ];then
echo "User has insufficient privilege."
exit
fi if [ -e $pid_file ];then
echo "Rsync is running"
exit
else
/usr/bin/rsync --daemon
RETVAL=$?
if [ $RETVAL -eq ];then
action "Rsync start" /bin/true
else
action "Rsync start" /bin/false
fi
fi
return $RETVAL
} #stop rsync
stop(){
if [ $UID -ne ];then
echo "User has insufficient privilege."
exit
fi if [ ! -e $pid_file ];then
echo "Rsync is stoped"
exit
else
killproc -p $pid_file
RETVAL=$?
if [ $RETVAL -eq ];then
action "Rsync stop" /bin/true
else
action "Rsync stop" /bin/false
fi
fi
return $RETVAL
} #restart rsync
restart(){
if [ $UID -ne ];then
echo "User has insufficient privilege."
exit
fi stop
sleep
start
return $RETVAL
} case "$1" in
start)
start
RETVAL=$?
;;
stop)
stop
RETVAL=$?
;;
restart)
restart
RETVAL=$?
;;
*)
echo "USAGE:$0 {start|stop|restart}"
esac
exit $RETVAL
测试
[root@backup ~]# netstat -tulnp|grep rsync
tcp 0.0.0.0: 0.0.0.0:* LISTEN /rsync
tcp ::: :::* LISTEN /rsync
[root@backup ~]# /etc/init.d/rsyncd stop
Rsync stop [确定]
[root@backup ~]# netstat -tulnp|grep rsync
[root@backup ~]# /etc/init.d/rsyncd start
Rsync start [确定]
[root@backup ~]# netstat -tulnp|grep rsync
tcp 0.0.0.0: 0.0.0.0:* LISTEN /rsync
tcp ::: :::* LISTEN /rsync
Rsync备份同步数据工具的更多相关文章
- linux 远程同步数据工具rsync (1)
rsync 远程同步数据工具,是linux下的数据备份工具rsync(remote sync 远程同步) 特点:在本地同步数据(类似于cp,但是有不同于远程scp),它会先判断已经存在的数据和远程数据 ...
- 架设rsync服务器同步数据
什么是rsync rsync 是一个快速增量文件传输工具,它可以用于在同一主机备份内部的备分,我们还可以把它作为不同主机网络备份工具之用.本文主要讲述的是如何自架rsync服 务器,以实现文件传输.备 ...
- 2-3-2 rsync+inotify备份同步数据
RSYNC = Remote Sync 远程同步 高效,一定要结合shell 官网:https://rsync.samba.org Author: Andrew Tridgell, Wayne Dav ...
- linux 远程同步数据工具rsync (2)
在远程主机上建立一个rsync的服务器,在服务器上配置好rsync的各种应用,然后本机作为rsync的一个客 户端去连接远程的rsync服务器.如何去配置一台rsync服务器. 首先配置/etc/rs ...
- centos6.5下部署sersync+rsync --daemon同步数据
rsync --daemon端配置 [root@rsync-daemon etc]# /etc/init.d/iptables stop [root@rsync-daemon ~]# dos2unix ...
- rsync服务架设(数据同步|文件增量备份)
近期由于业务需要,需要将两台服务器数据保持同步.方案有很多,rsync是其中一种解决方案,本文对rsync的安装及配置进行简单说明,其他实现方式有兴趣可以研究.以下是本文提纲,供参考: rsy ...
- rsync+inotify实现数据实时同步
rsync rsync是linux系统下的数据镜像备份工具.支持远程同步,本地复制,或者与其他SSH.rsync主机同步. 优点: 1).可以镜像保存整个目录树和文件系统.保存源目录整个目录树和文件系 ...
- Linux下Rsync+Inotify-tools实现数据实时同步
Linux下Rsync+Inotify-tools实现数据实时同步 注意:下面的三个案例都是rsync 每次都是全量的同步(这就坑爹了),而且 file列表是循环形式触发rsync ,等于有10个文件 ...
- Rsync+inotify自动同步数据
一.简介 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足. 首先,rsync在同步数据时,需要扫描所有文件后进行比对,进行差量传 ...
随机推荐
- Java类加载器( 死磕 6)
[正文]Java类加载器( CLassLoader )死磕 6: 自定义网络类加载器 本小节目录 6.1. 自定义网络类加载器的类设计 6.2. 文件传输Server端的源码 6.3. 文件传输C ...
- The Little Match Girl,摘自iOS应用Snow White and more stories
Many years ago on a cold and snowy New Year's Eve, a poor little girl was wandering arround on the s ...
- JavaProject和IProject
由 IProject 项目得到 Java 项目的方式: IJavaProject javaPoject = JavaCore.create(IProject); 由 IJavaProject 得到 I ...
- escape() VS encodeURI() VS encodeURIComponent()
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...
- WPF Combo box 获取选择的Tag
string str1 = ((ComboBoxItem)this.cboBoxRate1553B.Items[this.cboBoxRate1553B.SelectedIndex]).Tag.ToS ...
- C++日志之获取函数的名字,行号,文件名
在后台程序运行出问题时,详尽的日志是抓错不可缺少的帮手,这里提供一个能自动记录日志触发点文件名.行号.函数名的方法,关键是利用C99新增的预处理标识符__VA_ARGS__ 先介绍几个编译器内置的宏定 ...
- JavaScript-Tool-富文本:Simditor
ylbtech-JavaScript-Tool-富文本:Simditor 1.返回顶部 1. 2. 2.返回顶部 1. Simditor 是团队协作工具 Tower 使用的富文本编辑器. 相比传统的编 ...
- 性能测试之Jmeter学习(三)
一.Jmeter执行顺序规则: 元件执行顺序的规则很简单,在同一作用域名范围内,测试计划中的元件按照如下顺序执行. (1)配置元件(config elements ) (2)前置处理程序(Per-pr ...
- JAVA 数组的常用操作
目录: 声明数组: 初始化数组: 查看数组长度: 遍历数组: int数组转成string数组: 从array中创建arraylist: 数组中是否包含某一个值: 将数组转成set集合: 将数组转成li ...
- C++11: Multi-core Programming – PPL Parallel Aggregation Explained
https://katyscode.wordpress.com/2013/08/17/c11-multi-core-programming-ppl-parallel-aggregation-expla ...