Linux rsync 同步
rsync 是一个快速增量文件传输工具,它可以用于在同一主机备份内部的备分,我们还可以把它作为不同主机网络备份工具之用。本文主要讲述的是如何自架rsync服务器,以实现文件传输、备份和镜像。相对tar和wget来说,rsync 也有其自身的优点,比如速度快、安全、高效;
手动的:
首先要建立好两台服务器之间的公钥和密钥,那样就不需要每次都输入密码,也可以实现自动了。
可以先使用rpm -qa |grep rsync 查看rsync是否已经安装,软件下载 Rysnc的主页地址为:http://rsync.samba.org/
本试验的测试环境(2台,一个服务端,一个客户端)
rsync服务端的ip:192.168.48.60
rsync客户端的ip:192.168.48.148
-----------------------------------------------
以下先配置服务器端:
1. 安装rsync包
# rpm -q rsync
rsync-2.6.3-1
2. rsync只使用一个配置文件就是/etc/rsyncd.conf 这个文件一般是没有的,那就自己建一个好了
# vi /etc/rsyncd.conf
uid = nobody
gid = nobody
max connections = 200
timeout = 600
use chroot = no
read only = yes
pid file=/var/run/rsyncd.pid
host_allow =192.168.48.148 //客户端的IP地址写在这里
#syslog facility = local7
#log file=/var/log/rsyncd.log
#rsync config
#The 'standard' things
[rsync_gmmold] //定义同步的路径(客户端用这个关键字链接)
path = /home //需要同步的路径
comment = gmmold //这个暂不知道
3.启动服务
#/usr/bin/rsync --daemon 最后在server端将rsync以守护进程形式启动, rsync启动的端口为 873端口
4.加入开机启动
echo "/usr/bin/rsync --daemon" >> /etc/rc.local
5.检查rsync时候启动
# ps -ef | grep rsync
6.停止服务
#kill `cat /var/run/rsyncd.pid`
以下是客户端的配置:
1. 安装rsync包
[root@rhel403 old]# rpm -q rsync
rsync-2.6.3-1
2. 与服务器端同步:
#rsync -ave ssh root@192.168.48.60:/home/ /home/ganfic/laji/ //把60机子的/home下的文件同步备份到/home/ganfic/laji/
自动同步备份:
1. 在tmp下建一个b.sh文件
#vi /tmp/b.sh
把以下内容写到里面去
#!bin/sh
rsync -ave ssh root@192.168.48.60:/home/ /home/ganfic/laji/
:wq
2 第2步就要涉及到crontab了,在命令行输入
#crontab -e
然后把 * * * * * sh /tmp/b.sh //* * * * *部分代表每一分钟,然后 sh /tmp/b.sh 表示运行 b.sh脚本(在下面我再补充说明),-e 使用环境变量EDITOR或RVISUAL指定的编辑器编辑crontab文件。新创建的crontab文件会放在/var/spool/cron目录 下,文件名就是用户名,用cd /var/spool/cron后 会看到用户文件,然后用 vi root(我是在root用户下的)就会看到* * * * * sh /tmp/b.sh已经被转到这里来了。
这样就完成了,之后就是看看 有没有运行了,打开日志文件,日志文件在 #vi /var/log/cron 就会看到有没有运行了,也可以这样,在没有用自动运行之前,我们是用手动操作的,那时也把60的机子的/home目录下的文件拷了下来,那样,我们进本机 的/home/ganfic/laji文件夹里就会看到60机子下/home的内容,把这些内容都删了,然后再过1分钟看会不会把内容再补上,有的话就是 成功了。
Linux 防火墙是用iptables,所以我们至少在服务器端要让你所定义的rsync 服务器端口通过,客户端上也应该让通过。
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT
启动rsync服务:
/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
$rsync_HOME/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
补充:
rsync 的相关知识:
rsync命令的用法
在配置完rsync服务器后,就可以从客户端发出rsync命令来实现各种同步的操作。rsync有很多功能选项,下面就对介绍一下常用的选项:
rsync的命令格式可以为:
1. rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
2. rsync [OPTION]... [USER@]HOST:SRC DEST
3. rsync [OPTION]... SRC [SRC]... DEST
4. rsync [OPTION]... [USER@]HOST::SRC [DEST]
5. rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
6. rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
Linux rsync 同步的更多相关文章
- linux rsync同步工具
linux rsync同步工具 1.rsync介绍rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具.rsync软件适用于unix/linux/windows ...
- Linux rsync 同步实践
目录[-] 1. rsync 同步的大致思路 2. rsync的安装 3. rsync的配置 4. rsync的基本操作 服务器端启动 注2. 实时同步 注3. rsync通过linux防火墙 公司网 ...
- Linux rsync同步
rsync介绍 rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文 ...
- Windows Linux 之间rsync同步CODE文件
Windows Linux 之间rsync同步CODE文件 一.环境Windows:OS:Microsoft Windows Web Server 2008 SP1IP:192.168.88.197 ...
- 烂泥:linux文件同步之rsync学习(一)
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 这几天刚好有空就打算开始学习linux下的文件同步软件rsync,在学习rsync时,我们可以分以下几个步骤进行: 1. rsync是什么 2. rsy ...
- Linux下同步工具inotify+rsync使用详解
1. rsync 1.1 什么是rsync rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.它使用所谓的“Rsync演算法”来使本地和远程两个主机之间的文件达到同步,这 ...
- linux rsync实时同步
rsync同步 同步与复制的差异:复制:完全拷贝源到目标同步:增量拷贝,只传输变化过的数据 同步操作:remote sync 远程同步支持本地复制,或与其他ssh,rsync主机同步.官方网站:htt ...
- Linux运维: Rsync同步数据(ubuntu16.04+windows10)
rsync同步数据 -环境:Linux (ubuntu16.04) + windows10 Linux: 安装 sudo apt-get install rsync rsync --version 查 ...
- (转)Linux下同步工具inotify+rsync使用详解
原文:https://segmentfault.com/a/1190000002427568 1. rsync 1.1 什么是rsync rsync是一个远程数据同步工具,可通过LAN/WAN快速同步 ...
随机推荐
- android Tab =viewpager+fragmnet
1.定义几个fragment 的subclass 如fragmentone,fragmenttwo; public class fragmentthree extends Fragment { pri ...
- C# 反射操作方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.R ...
- 根据之前的博文,我把给同学做的三子棋小游戏的代码发出来,只是界面很丑很丑,AI算法很笨很笨,过几天我传到网盘上,提供大家下载娱乐
background_image_filename = 'blackground.png' black_mouse_image_filename = 'black.png' white_mouse_i ...
- Android IOS WebRTC 音视频开发总结(五八)-- 图文解说视频直播原理
本文主要介绍rtmp&hls视频直播原理,文章最早发表在我们的微信公众号上,详见这里,欢迎关注微信公众号blackerteam,更多详见www.blackerteam.com 现在视频直播很火 ...
- 在MFC程序中使用AnyCAD图形控件
AnyCAD图形控件有.Net版本和C++两个版本,使用C++要比C#稍微繁杂一点.SDK中提供了针对MFC的文档视图的封装,只需改一下几个基类即可. 准备 VS2010 下载C++版本的AnyCAD ...
- js实现文字截断
先前用jq做了一个文字截断功能,但是不用jq的项目要实现此功能还要引如jq显得过于麻烦.这里写了一个js的文字截断功能.直接上代码. HTML(测试用的): <div>我是pox我是pox ...
- wordpress代理设置
打开wp-config.php,在页首加上以下语句: define('WP_PROXY_HOST', '192.168.84.101'); define('WP_PROXY_PORT', '8080' ...
- POJ C程序设计进阶 编程题#3 : 排队游戏
编程题#3:排队游戏 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 在幼儿 ...
- c#中判断对象为空的几种方式(字符串等)
(1)先了解几个与空类型相关的关键字和对象 Null : 关键字表示不引用任何对象的空引用,它是所有引用类型变量的默认值,在2.0版本之前也就只有引用变量类型可以为null,如(string a=n ...
- JS正则表达式获取字符串中特定字符
JS正则表达式获取字符串中得特定字符,通过replace的回调函数获取. 实现的效果:在字符串中abcdefgname='test'sddfhskshjsfsjdfps中获取name的值test 实 ...