rsync远程同步
2018-07-31 11:27
441 查看
rsync远程同步
技能目标
学会配置rsync备份源学会使用rsync下行、上行异地备份
学会使用rsync+inotify实时备份
rsync的作用
正确、有效的备份方案是保障系统及数据安全的重要手段,在服务器中,通常会结合计划性任务、shell脚本来执行本地备份。为了进一步提高备份的可靠性使用异地备份也是非常必要的
实验实例
1:配置rsync源服务器
[root@localhost Packages] rpm -ivh rsync-3.0.9-18.el7.x86_64.rpm 警告:rsync-3.0.9-18.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY 准备中... ################################# [100%] 软件包 rsync-3.0.9-18.el7.x86_64 已经安装
2:建立/etc/rsyncd.conf配置文件
[root@localhost ~] vim /etc/rsyncd.conf uid = nobody gid = nobody use chroot = yes #//禁锢在本地源 address = 192.168.32.207 #//监听本地地址 port 873 #//监听端口 log file = /var/log/rsyncd.log #//日志存放位置 pid file = /var/run/rsyncd.pid #//存放进程ID的文件位置 host allow = 192.168.32.0/24 #//允许访问的客户机地址 [wwwroot] #//共享模块名称 path = /var/www/html #//源目录的实际路径 comment = Document Root of www1.kgc.cn read only = yes #//是否为只读 dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z #//同步时不再压缩的文件类型 auth users = backuper #//授权账户 secrets file = /etc/rsyncd_users.db #//存放账户信息的数据文件
基于安全性的考虑,对于rsync的同步源最好允许以只读方式做同步。另外,同步可以采用匿名的方式,只要将其中的auth users 和 secrets file 配置纪录去掉就可以了
3:为备份账户创建数据文件
[root@localhost ~] vim /etc/rsyncd_users.db backuper:abc123 [root@localhost ~] chmod 600 /etc/rsyncd_users.db
备份用户backuper需要对源目录/var/www/html有相应的读取权限,实际上只要other组有读写权限。则备份用户backuper和运行用户nobody也就有读取权限
[root@localhost ~] mkdir -p /var/www/html [root@localhost ~] ls -ld /var/www/html/ drwxr-xr-x. 2 root root 6 7月 31 09:36 /var/www/html/
4:启动rsync服务程序,运行参数为--daemon
完成上述操作后,执行rsync --daemon命令就可以启动rsync服务,以独立监听的方式运行,若要关闭服务kill掉rsync的进程号(启动前关闭防墙、setenforce 0)[root@localhost ~] rsync --daemon [root@localhost ~] netstat -ntap | grep rsync tcp 0 0 192.168.32.207:873 0.0.0.0:* LISTEN 8830/rsync
4.1:使用rsync备份工具
有了同步源服务器之后,就可以使用rsync工具来执行远程同步。4.2:rsync命令的基本用法
绝大多数的备份程序要求指定原始位置和目标位置,rsync命令也一样,最简单的rsync用法类似于cp命令,例如:将/etc/fstab和目录/boot/grub同步备份到/opt目录下,其中“-r”选项表示递归整个目录树,”-l“选项用来备份链接文件[root@localhost ~] rsync /etc/fstab /opt/ [root@localhost ~] cd /opt/ [root@localhost opt] ls fstab rh [root@localhost opt] cat fstab # # /etc/fstab # Created by anaconda on Tue Jul 10 22:15:58 2018 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=ca0fed2f-3b05-41a3-85b2-ef00661afa16 / xfs defaults 0 0 UUID=89c9c477-1d91-4581-b16d-240a37af2b2a /boot xfs defaults 0 0 UUID=d7521d72-fa9e-4d30-81c9-004547187a10 /home xfs defaults 0 0 UUID=a9dc5409-587d-48bb-91d1-cd1cfaea26d1 /opt xfs defaults 0 0 UUID=db2690ca-e206-4c8d-8209-3064cd31bf49 swap swap defaults 0 0 [root@localhost opt] rm -rf * [root@localhost opt] ls [root@localhost opt] rsync -rl /etc/fstab /var/log/ /opt/ [root@localhost opt] ls amanda dmesg libvirt sa vmware-vgauthsvc.log.0 Xorg.2.log anaconda dmesg.old maillog samba vmware-vmsvc.log Xorg.9.log audit firewalld messages secure vmware-vmusr.log yum.log boot.log fstab ntpstats speech-dispatcher wpa_supplicant.log btmp gdm pluto spooler wtmp chrony glusterfs ppp sssd Xorg.0.log cron grubby_prune_debug qemu-ga tallylog Xorg.0.log.old cups lastlog rhsm tuned Xorg.1.log
4.3:命令格式及常用备份选项
从以上操作可以看出,备份的基本格式为”rsync [选项] 原始位置 目标位置“,其中常用的一些命令如下,根据实际需求做出选择(如:-avz)-r:递归模式,包含目录及子目录中的所有文件。 -l: 对于符号链接文件仍然复制为符号链接文件。 -V: 显示同步过程的详细(verbose) 信息。 -a:归档模式,保留文件的权限、属性等信息,等同于组合选项-rlptgoD. -z: 在传输文件时进行压缩(compress) -p: 保留文件的权限标记。 -t:保留文件的时间标记。 -g:保留文件的属组标记(仅超级用户使用)。 -0: 保留文件的属主标记(仅超级用户使用)。 -H:保留硬连接文件。 -A:保留ACL属性信息。 -D:保留设备文件及其他特殊文件。 --delete:删除目标位置有而原始位置没有的文件。 - --ehecksum:根据校验和(而不是文件大小、修改时间)来决定是否跳过 文件
5:配置源地表示方法
#”rsync -avz 用户名@主机地址::共享模块“ [root@localhost ~] rsync -azv backuper@192.168.32.207::wwwroot/root Password: sent 4 bytes received 8 bytes 1.85 bytes/sec total size is 0 speedup is 0.00 rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1518) [Receiver=3.0.9] #”rsync -avz rsync://用户名@主机地址/共享模块名“ [root@localhost ~] rsync -azv rsync://backuper@192.168.32.207/wwwroot/root Password: sent 4 bytes received 8 bytes 1.85 bytes/sec total size is 0 speedup is 0.00 rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1518) [Receiver=3.0.9]
6:rsync备份操作示例
执行以下操作将访问源服务器中的wwwroot共享模块,并下载到本地/myweb目录下[root@localhost ~]# mkdir /myweb [root@localhost ~]# rsync -azvH --delete backuper@192.168.32.207::wwwroot /myweb Password: receiving incremental file list ./ index.php sent 83 bytes received 161 bytes 44.36 bytes/sec total size is 6 speedup is 0.02 [root@localhost ~]# ls /myweb/ index.php
7:实际生产环境中的备份工作通常是按计划性任务重复执行的
例如:每天晚上22:30对服务器网站目录进行一次同步,计划性任务可以交给crond服务来完成为了避免计划性任务的人机交互,可以在客户端保存同步的用户密码,
[root@localhost ~] vim /opt/backuper.passwd abc123 [root@localhost ~] chmod 600 /opt/backuper.passwd [root@localhost ~] crontab -e crontab: installing new crontab 30 22 * * * /usr/bin/rsync -az --delete --password-file=/opt/backuper.passwd backuper@192.168.32.207::wwwr oot /myweb #//每天22:30执行任务 [root@localhost ~] service crond restart #//重新启动计划性任务 Redirecting to /bin/systemctl restart crond.service [root@localhost ~] chkconfig crond on #//开启开机自启动 注意:正在将请求转发到“systemctl enable crond.service”。
相关文章推荐
- rsync远程同步
- CentOS 7 上部署rsync远程同步
- rsync远程同步
- [转载]Linux系统下超强远程同步备份工具Rsync使用详解
- rsync远程同步配置与使用
- Rsync远程同步配置
- fswatch rsync配置使用 实现远程与本地同步
- Cent OS 5.4 rsync+inotify配置触发式(实时)远程同步
- rsync远程同步备份数据(ssh方式)
- linux下ssh远程登录/scp远程复制文件/rsync远程同步命令的自动登录
- linux中部署rsync实现文件远程备份及同步
- 第四章 从远程rsync服务器同步数据
- rsync远程同步+inotify-tools自动检测笔记
- CentOS 5.4 rsync+inotify配置触发式(实时)文件远程同步
- 远程同步一:rsync
- Linux系统下超强远程同步备份工具Rsync使用详解
- linux下ssh远程登录/scp远程复制文件/rsync远程同步命令的自动登录
- Rsync:Windows和Linux下本地同步及远程同步
- rsync 远程同步 linux 及 windows 主机
- rsync远程数据同步