简介 | Rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具,适用于unix、Linux、windows等操作平台 |
特性 |
|
三种工作模式 | 1.本地之间的数据同步 2.远程之间的数据同步 3.socket守护进程的方式 |
先使用which查看是否安装rsync命令,如果没有的话,使用yum仓库安装。 同时安装openssh-clients。并检查防火请和selinux是否关闭,如果没有关闭的话,将其关闭。同时检查光盘是否挂载。
| |
[root@centos ~]#yum -y install rsync openssh-clients | |
Rsync 常用 参数 | -v:详细模式输出,传输时的进度等信息 -z:传输时进行压缩以提高传输效率,--compress-level=NUM可按级别压缩 -a:归档模式,表示以递归方式传输文件,并保持所有文件属性。 |
其他 参数 | -r, recursive:对子目录以递归模式,即目录下的所有目录都同样传输,小写r -t, --times:保持文件时间信息 -o, --owner:保持文件属主权限 -p, --perms:保持文件权限 -g, --group:保持文件属组信息 -P, --progress:显示同步的过程及传输时的进度等信息 -D, --devices:保持设备文件信息 -l, --linke:保持软连接 -e, --rsh=COMMAND:使用的通信协议,指定替代rsh的shell程序,如:ssh –exclude=PATTERN指定排除不需要传输的文件模式(和tar参数一样) --bwlimit=RATE:limit socket I/O bandwidth --delete:让源目录SRC和目标目录数据DST一致 |
举例说明 | |
1 | 本地之间的数据同步 |
环境 |
在根下创建两个目录,用来做实验
在其中backup目录中,生成十个文件 |
直接备份 | |
操作 (1) | 格式:rsync 参数源文件 目标文件
/backup/这样的写法表示将/backup中的文件备份到/backup2中 |
操作(2) |
/backup这样的写法表示将/backup目录被分到/backup2中,同时备份其中的所有子目录和文件。 |
差异备份 | |
环境 | backup中有backup2中没有的文件,通过rsync将bakcup2中没有的内容从backup中进行备份。
|
操作 (1) |
只备份了11-16这些没有的文件 |
去异 | |
环境 | backup2中含有backup中没有的文件,在备份的时候,不想要这些文件,可以使用差异备份——删除,来剔除多余的部分。
|
操作 |
|
2 | 远程之间的数据同步 |
环境 | 打开第二台虚拟机,然后在/下创建一个backup目录。
在虚拟机上安装openssh-clients。并检查防火请和selinux是否关闭,如果没有关闭的话,将其关闭。 确保两台主机之间的连通性
|
操作 (1) | 格式:rsymc参数 本地路径账号@IP地址:远程地址 输入root用户的密码,进行远程备份
|
操作 (2) | 远程同步,删除不同的内容
|
操作 (3) | 传目录
|
操作 (4) | 将对方的目录中的内容,拉取到本地目录中
|
3. | Socket守护进程(重点) |
环境 | 两台机器:右边为服务端,启动socket进程,监听873接口;左边为客户端,推到服务端的873接口,具体放在那里由服务端决定。 |
1. | [root@centos ~]# vim /etc/rsyncd.conf //创建程序启动的配置文件(在服务器上) (ps:一般程序启动起来,进程名字就是程序名字后加上d,如http进程为httpd) 代码:
解释:
|
2. | [root@centos ~]#vim /etc/rsync.password //编写虚拟账号的账号和密码
|
3. | 调整密码文件的权限
不修改权限,实验将失败 |
4. | 查询是否有/backup目录
|
5. | 创建用户,让其不能登录并没有家目录 [root@centos ~]# useradd -s /sbin/nologin -M rsync //创建程序用户rsync [root@centos ~]#id rsync uid=501(rsync) gid=501(rsync)组=501(rsync) //查询创建的rsync程序用户 |
6. | 更改/backup目录的属主为rsync程序用户 [root@centos ~]#chown rsync /backup |
7. | 启动脚本 [root@centos ~]# rsync --daemon |
8. | 通过端口查看守护进程是否启动
|
9. | 在客户端进行文件推送 格式:rsync参数本地目录虚拟账号@IP地址::模块名称 (ps:一个冒号后为备份到的目录;两个冒号表示备份到的模块名称。) [root@centos ~]# rsync -avz /backup/ rsync_backup@192.168.200.4::backup //推到目标主机的873端口,通过配置文件,调用backup模块,来执行
|
报错处理 | 当出现以下错误时,将不能正常启动rsync服务
解决措施: 进入/var/run目录,然后删除rsyncd.pid文件,或用cat rsyncd.pid查看进程号,然后用kill -9将其杀死。然后即可启动rsync服务。
|
当出现下列错误时,为:对方未关闭防火墙,使用service iptables stop关闭对方防火墙即可。
当出现以下错误时,为:推送服务器用于存储的目录,不属于rsync属主,所以会失败。比如/root/mulu,/root目录属主为root,/root/mulu属主为rsync也是不行的。必须都是rsync属主目录才可以。
| |
免密登录 | |
1. | 在客户机上创建一个rsync.password文件,并写入虚拟账号密码 [root@centos ~]# vim /etc/rsync.password
|
2. | 修改文件权限 [root@centos ~]# chmod 600 /etc/rsync.password |
3. | 免密登录: 格式:rsync参数本地目录虚拟账号@IP地址::模块--password-file=密码文件绝对路径
|
Linux基础——Rsync(一)
版权声明:本文为Xiaofa_123原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。





























