linux 命令 rsync

rsync
一、rsync简介
用于替代rcp的一个工具,rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时rsync server会开一个873端口,等待客户端去连接,连接时,rsync server会检查口令是否相符,若通过口令查核,则可以通过进行文件传输,第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份;

二、rsync常用参数
-v,--verbose  详细模式输出;
-a,--archive  归档模式,表示以递归的方式传输文件,并保持所有文件属性不变,相当于使用了组合参数-rlptgoD;
-r, --recursive 对子目录以递归模式处理;
-l, --links 保留软链结;
-p, --perms 保持文件权限;
-t, --times 保持文件时间信息;
-g, --group 保持文件属组信息;
-o, --owner 保持文件属主信息;
-D, --devices 保持设备文件信息;
-H, --hard-links 保留硬链结;
-S, --sparse 对稀疏文件进行特殊处理以节省DST的 空间;
--delete 删除那些DST中SRC没有的文件;
-z, --compress 对备份的文件在传输时进行压缩处理;

三、rsync的六种不同的工作模式;
1)拷贝本地文件;
当SRC和DES路径信息中不包含冒号":"分隔符时,就启用这种工作模式:
[[email protected] /]# rsync -avSH /home/coremail/ /cmbak/

2)使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器,当DST路径地址包括冒号":"分隔符时启动该模式;
[[email protected] /]# rsync -avSH /home/coremail/ 192.168.11.12:/home/coremail/

3)使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器,当SRC地址路径包括冒号":"分隔符时启动该模式;
[[email protected] /]# rsync -avSH 192.168.11.11:/home/coremail/ /home/coremail/

4)从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。
如:rsync -av [email protected]172.16.78.192::www /databack

5)从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。
如:rsync -av /databack [email protected]172.16.78.192::www

6)列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。
如:rsync -v rsync://192.168.11.11/data

四、rsync服务端的配置;
环境:192.168.11.11为生产机;192.168.11.12为备份机;
那么需要192.168.11.11需要作为rsync的client;
192.168.11.12作为rsync的service端;

1、192.168.11.12_service端的配置;
1)[[email protected] data]# touch /etc/rsyncd.conf  //此文件为rsync的主配置问题,默认不存在需要手动创建;
2)定义同步的配置;
[[email protected] data]# cat /etc/rsyncd.conf
[data]
path = /data/
auth users = coremail
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no

[mysql]
Path = /home/coremail/var/mysql
auth users = coremail
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no

[cmxt]
Path = /home/coremail/
auth users = coremail
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no

3)定义密码文件/etc/rsyncd.secrets
[[email protected] data]# cat  /etc/rsyncd.secrets
coremail:coremail

4)启动rsync启动服务
[[email protected] data]# cat /etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it #       allows crc checksumming etc.
service rsync
{
        disable = yes           //需要修改为no;
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}

[[email protected] data]# chkconfig --level 2345 rsync on
[[email protected] data]# chkconfig rsync on
[[email protected] data]# chkconfig --level 2345 xinetd on
[[email protected] data]# service xinetd restart
Stopping xinetd: [  OK  ]
Starting xinetd: [  OK  ]

2、192.168.11.11_client端的配置;
[[email protected] /]# cat /etc/rsyncd.secrets
coremail

[[email protected] /]# rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ [email protected]192.168.11.12::data
[[email protected] /]# rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ [email protected]192.168.11.12::mysql
[[email protected] /]# rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ [email protected]192.168.11.12::cmxt

五、定义定时自行rsync同步,指定同步的日志所在的路径/var/log/rsync/下;
[[email protected] log]# cat /root/rsync.sh
DATE=`date +%Y%m%d%H%M`
rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ [email protected]192.168.11.12::data >/var/log/rsync.date.$DATE
rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ [email protected]192.168.11.12::mysql >/var/log/rsync.mysql.$DATE
rsync -aSvH --password-file=/etc/rsyncd.secrets /home/coremail/ [email protected]192.168.11.12::cmxt >/var/log/rsync.cmxt.$DATE

chmod u+x /root/rsync.sh

[[email protected] log]# crontab -l
0 3 * * * /root/rsync.sh

执行时候的日子记录文件:
[[email protected] log]# ls |grep ‘rsync‘
rsync.cmxt.201110180915
rsync.date.201110180915
rsync.mysql.201110180915

服务器端必须启动,客户端无须启动。且服务器端密码文件形式每行一个帐号:密码,客户端密码文件形式只有一个密码

#rsync -ave ssh test:/home/ftp/pub/ /home/ftp/pub/
把源路径中远端test机器上的/home/ftp/pub/目录中的内容,通过rsync同步到本地的/home/ftp/pub/目录下。
◎小心源路径结尾时候的/号,后缀/通知rsync复制该目录的内容,但不复制目录本身。例如:
Code:
#rsync -ave ssh test:/home/ftp/pub /home/ftp/
则会把pub目录整个同步到本地/home/ftp/路径中 
配置rsync 同步数据 rpm包安装rsync及配置

[[email protected] home]# rpm -qa |grep rsync #检查系统是否安装了rsync软件包
rsync-2.6.8-3.1
[[email protected] CentOS]# rpm -ivh rsync-2.6.8-3.1.i386.rpm # 如果没有安装则手动安装

[[email protected] rsync-3.0.4]# vim /etc/xinetd.d/rsync 

1 配置rsync servervi /etc/xinetd.d/rsync
将disable=yes改为no

service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}

2 配置rsync自动启动
[[email protected] etc]# chkconfig rsync on
[[email protected] etc]# chkconfig rsync --list
rsync on

3 配置rsyncd.conf
[[email protected] etc]# vim rsyncd.conf 

uid = root
gid = root
use chroot = no
max connections = 4
strict modes = yes
port = 873
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

[backup]
path = /srv
comment = This is test
auth users = scihoo
uid = root
gid = root
secrets file = /home/rsync.ps
read only = no
list = no

4 确保etc/services中rsync端口号正确
[[email protected] etc]# vim /etc/services
rsync 873/tcp # rsync
rsync 873/udp # rsync

5 配置rsync密码(在上边的配置文件中已经写好路径)/home/rsync.ps(名字随便写,只要和上边配置文件里的一致即可),格式(一行一个用户)
[[email protected] etc]# vi /home/rsync.ps
scihoo:scihoo

6 配置rsync密码文件权限
[[email protected] home]# chown root.root rsync.ps
[[email protected] home]# chmod 400 rsync.ps (只有该用户可读写)

7 启动配置
[[email protected] home]# /etc/init.d/xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]

8 如果xinetd没有的话,需要安装一下
[[email protected] home]# yum -y install xinetd

启动rsync server
RSYNC服务端启动的两种方法
9、启动rsync服务端(独立启动)
[[email protected] home]# /usr/bin/rsync --daemon

10、启动rsync服务端 (有xinetd超级进程启动)
[[email protected] home]# /etc/init.d/xinetd reload

11 加入rc.local
在各种操作系统中,rc文件存放位置不尽相同,可以修改使系统启动时把rsync --daemon加载进去。
[[email protected] home]# vi /etc/rc.local
/usr/local/rsync –daemon #加入一行

12 检查rsync是否启动
[[email protected] home]# lsof -i :873
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
xinetd 4396 root 5u IPv4 633387 TCP *:rsync (LISTEN)

客户端配置
1 配置三个过程就可以了
1.1 设定密码文件
1.2 测试rsync执行指令
1.3 将rsync指令放入工作排程(crontab)
[[email protected] home]# vi /etc/xinetd.d/rsync 

# default: off
# description: The rsync server is a good addition to an ftp server, as it # allows crc checksumming etc.
service rsync
{
disable = yes
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}

1.1 配置密码文件 (注:为了安全,设定密码档案的属性为:600。rsync.ps的密码一定要和Rsync Server密码设定案里的密码一样)
[[email protected] home]# vi rsync.ps
sciooo

[[email protected] home]# chown root.root .rsync.ps # 注意必须给权限
[[email protected] home]# chmod 600 .rsync.ps # 必须修改权限   否则会提示错误信息 password file must not be other-accessible

1.2 从服务器上下载文件
[[email protected] rsync-3.0.4]# rsync -avz --password-file=/home/rsync.ps [email protected]192.168.0.206::backup /home/

从本地上传到服务器上去
[[email protected] rsync-3.0.4]# rsync -avz --password-file=/home/rsync.ps /home [email protected]192.168.0.206::backup
时间: 2024-11-07 01:03:41

linux 命令 rsync的相关文章

Linux 命令 - rsync命令

rsync命令 rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的"rsync算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快. rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明. 语法 rsync [OPTION]... SRC DEST rsync [OPTION]... SRC [[email protec

Linux命令之文件同步、定时备份 -rsync,cron,crontab

一.rsync介绍(可忽略) Rsync(remote synchronize)是一个远程文件同步工具; Rsync使用"Rsync算法"来同步文件,该算法只传送两个文件的不同部分,因此速度相当快; Rsync是替代rcp的一个工具,目前由rsync.samba.org维护,因而rsync.conf文件的格式类似于samba的主配置文件; Rsync可通过rsh或ssh使用,也能以daemon模式运行,以daemon方式运行时,Rsync Server会打开一个873端口等待客户端连接

Linux命令之scp

Linux命令之scp 功能说明 scp 是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且 scp传输是加密的.可能会稍微影响一下速度.当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来.另 外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了.虽然 rsync比scp会快一点,但当小文件众多的情况 下,rsync会导致硬盘I/O非常高

linux命令学习笔记

操作文件和目录: copy: $ cp file1 file2 $ cp -r dir1 dir2 move: $ mv file .. $ mv file dir/ rename: $ mv file1 file2 $ mv dir1 dir2 # dir2如果存在,则为移动操作 remove: $ rm file $ rm -r dir 创建文件: $ touch a.txt $ >a.txt 创建目录: $ mkdir dir 查看文件: #一般 $ cat file #查看文件类型: $

Linux的rsync 配置,用于服务器之间远程传大量的数据

[教程主题]:rsync [课程录制]: 创E [主要内容] [1] rsync介绍 Rsync(Remote Synchronize) 是一个远程资料同步工具,可通过LAN/WAN快速同步多台主机,Rsync使用所为的“Rsync演算法”来使本地主机和远程主机之间达到同步,这个演算法并不是每次都整份传送,它只传送两台计算机之间所备份的资料不同的部分,因此速度相当快. Rsync的优点如下: 1.可以镜像保存整个目录树和文件系统. 2.可以很容易的做到保持原来文件的许可权.时间.软链接等. 3.

十年linux命令总结

十年linux命令总结 本文链接: http://codingstandards.iteye.com/blog/786653 关于命令类型划分 本表中列出了我穷尽了我所有的记忆整理出来的Linux命令,其中关于外部命令.关键字或内建命令的划分,不一定正确.有很多命令,既是内建命令也 可能是外部命令,为啥?Bash为了更高效率的执行命令和脚本,把很多外部命令以内建命令的方式实现了.我们使用type这个命令就可以知道一个命令的类 型了,如下所示: [[email protected] ~]# typ

Linux 命令行下的好东西

  列举你可能没注意过的好用的 Linux 命令行命令 现在做网站做移动应用最讲究的就是推广了,推广做的好那就成功了一大半,相对的没曝光产品再好也很难做下去.就这个角度而言绝大多数 Linux 命令行的推广简直是烂透了.繁多 Linux 有用极了的命令行工具就静静的躺在你发行版默认安装的包裹里,很多时候只有当你碰到什么问题的时候网上搜一圈才能知道.更蛋疼的是这里面很多东西你一旦知道了就会想我靠原来没这个到底是怎么过的下去.所以这里我会列出一些我用过的一些,大部分发行版默认就有,或者能用包裹管理工

Linux之rsync 远程同步

Linux之rsync 远程同步 1. 案例 1. 开始部署 (1) 在1.10服务器上配置为服务端,修改rsync的配置文件/etc/rsyncd.conf,并启动rsync服务程序. (2) 在1.20上使用rsync命令验证是否能够从服务端(/var/www/html)下载文件到客户机端(/var/www/html). (3) 修改rsync的配置文件/etc/rsyncd.conf,实现客户机端(/var/www/html)能上传文件到服务端的(/var/www/html)位置.在客户机

Linux下Rsync+Inotify-tools实现数据实时同步

说明: 一.先安装好rsync的服务端和客户端: http://douya.blog.51cto.com/6173221/1573968 二.安装,使用inotify-tools,实时同步 1.查看服务器内核是否支持inotify ll /proc/sys/fs/inotify   #列出文件目录,出现下面的内容,说明服务器内核支持inotify -rw-r--r-- 1 root root 0 Mar  7 02:17 max_queued_events -rw-r--r-- 1 root r