简介 | 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(一)
最新推荐文章于 2024-07-18 19:00:17 发布