RSYNC远程同步服务
rsync安装
yum -y install rsync
master:
vim /etc/rsyncd.conf
uid = nobody //用户名
gid = nobody //组别
use chroot = yes //禁锢在源目录
address = 192.168.200.112 //监听地址
port = 873 //监听端口
log file = /var/log/rsyncd.log //日志文件位置
pid file = /var/run/rsyncd.pid //存放进程ID文件位置
hosts allow =192.168.200.0/24 //允许访问的客户端地址
[wwwroot] //共享模块名称
path = /var/www/html //源目标的实际路径
comment = Document Root os www.crushlinux.com //描述信息
read only = yes //是否为只读
dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z //同步时不再压缩的文件类型
auth users = backuper //备份授权用户
secrets file = /etc/rsyncd_users.db //存放账户信息的数据文件
保存退出
vim/etc/rsyncd_users.db
backuper:pwd123
保存退出
chmod 600/etc/rsyncd_users.db
ls -ld /var/www/htm/
drwxr-xr-x2 root root 64月212018/var/www/html/
rsync -daemon
netstat -lnpt |grep :873
关闭rsync
kill $(cat /var/run/rsyncd.pid)
编写rsync服务控制脚本:
vim /etc/init.d/rsyncd
#!/bin/bash
#chkconfig:2345 80 20
#description:sync server
start () {
netstat -lnpt | grep -q :873
[ $? -ne 0 ] && rsync --deamon
}
stop () {
netstat -lnpt | grep -q :873
[ $? -ne 0 ] && kill $(cat /var/run/rsyncd.pid) && rm -rf /var/run/rsyncd.pid
}
status () {
netstat -lnpt | grep -q :873
[ $? -ne 0 ] && echo "Rsync Daemon is running."
}
case $1 in
start)
start
;;
stop)
stop
;;
restart|reload)
$0 stop
$0 start
;;
status)
status
;;
*)
echo "用法:$0{START|STOP|RESTART|RELOAD|STATUS}"
esac
chmod +x /etc/init.d/rsyncd
chkconfig --add rsyncd
systemctl start rsyncd
-------------------------------------------
本地备份:备份源和发起端可以是一台机器
第二台主机客户端:
yum -y install rsync
rsync /etc/fstab /opt/
rsync -rl /etc/fstab /boot/grub/ /opt/
rsync -avz backuper@192.168.200.112::wwwroot /root
Password:
rsync -avz rsync://backuper@192.168.200.112/wwwroot/ /root/
Password:
rsync -avz rsync://backuper@192.168.200.112/wwwroot/ /root/
rsync备份源的无交互验证方式:
(1)通过export RSYNC_PASSWORD变量保存密码,rsync命令执行时可以自动读取该变量的值,在需要时发送给rsync服务器来进行验证
export RSYNC_PASSWORD=pwd123
rsync -avzH --delete backuper@192.168.200.112::wwwroot /myweb
(2)通过--password-file选项指定存储密码的文件
相对于SSH源的免交互措施来说,使用变量存放密码显得不够安全,因此可在脚本中使用,并将脚本的权限严格控制,避免密码泄漏。
echo “pwd123” > /etc/server.pass
chmod 600 /etc/server.pass
rsync -az --delete --password-file=/etc/server.pass backuper@192.168.200.112::wwwroot /myweb
==================================================
RSYNC远程同步服务
rsync(Remote Sync,远程同步)是一个开源的快速安全高效的异地备份工具,可以在不同的主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,传输前执行压缩。非常适合异地备份,镜像服务等应用,是一种常用的文件备份工具。
(1)通过export RSYNC_PASSWORD变量保存密码,rsync命令执行时可以自动读取该变量的值,在需要时发送给rsync服务器来进行验证
export RSYNC_PASSWORD=pwd123
rsync -avzH --delete backuper@192.168.200.112::wwwroot /myweb
(2)通过--password-file选项指定存储密码的文件
相对于SSH源的免交互措施来说,使用变量存放密码显得不够安全,因此可在脚本中使用,并将脚本的权限严格控制,避免密码泄漏。
echo “pwd123” > /etc/server.pass
chmod 600 /etc/server.pass
rsync -az --delete --password-file=/etc/server.pass backuper@192.168.200.112::wwwroot /myweb
==================================================
RSYNC远程同步服务
rsync(Remote Sync,远程同步)是一个开源的快速安全高效的异地备份工具,可以在不同的主机之间镜像同步整个目录树,支持增量备份,保持链接和权限,且采用优化的同步算法,传输前执行压缩。非常适合异地备份,镜像服务等应用,是一种常用的文件备份工具。
rsync的官方站点:https://rsync.samba.org/
FTP:文件传输协议
samba:文件共享服务,共享文件夹
FTP:文件传输协议
samba:文件共享服务,共享文件夹
rysnc一般系统都会有,如果没有可以用yum安装rysnc
rysnc在生产环境中的使用场景:
1、用于数据异地备份
2、用于WEB集群中节点数据的批量更新
3、用于本地YUM服务器与互联网镜像站软件同步
1、用于数据异地备份
2、用于WEB集群中节点数据的批量更新
3、用于本地YUM服务器与互联网镜像站软件同步
在远程同步任务中,负责发起rsync同步操作的客户机成为发起端,而负责响应来自客户机的rsync同步操作的服务器成为备份源(同步源),同步源负责提供文档的原始位置,发起端对该位置具有读或写权限
rsync作为同步源时以守护进程运行,为其他客户端提供备份源。配置rsync同步源需要建立配置文件/etc/rsyncd.conf,备份账号信息,然后将rsync程序以守护进程(--daemon选项)方式运行。
rsync两种源模式:
SSH备份源
rsync备份源
SSH备份源
rsync备份源
一、配置rsync备份源192.168.200.111
rsync不仅用作远程同步发起端(客户端),也可以作为守护进程(服务端),为其他客户机提供备份源。
1、建立/etc/rsyncd.conf配置文件
2、为备份账户创建数据文件
3、启动rsync服务进程
rsync不仅用作远程同步发起端(客户端),也可以作为守护进程(服务端),为其他客户机提供备份源。
1、建立/etc/rsyncd.conf配置文件
2、为备份账户创建数据文件
3、启动rsync服务进程
1、建立/etc/rsyncd.conf配置文件,以源目录/var/www/html/,备份帐号backuper作为事例:
vim /etc/rsyncd.conf
uid = nobody (用户名)
gid = nobody (组名)
use chroot = yes (禁锢在源码目录)
address = 192.168.200.111 (监听地址)
port = 873 (监听端口)
log file = /var/log/rsyncd.log (日志文件位置)
pid file = /var/run/rsyncd.pid (PID文件位置)
hosts allow = 192.168.200.0/24 (允许访问地址)
[wwwroot] (共享名,给访问者看的,本地目录可以不是这个名字)
path = /var/www/html (文件真实路径)
comment = Document Root os www.laowang.com (描述信息,可以随便写)
read only = yes (只读)
dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z (这些结尾的文件不压缩)
auth users = backuper (授权备份用户名,和系统用户没有关联)
secrets file = /etc/rsyncd_users.db (保存auth users用户名和对应密码)
vim /etc/rsyncd_users.db (编辑用户名和密码)
backuper:pwd123 (用户名和密码用:分隔)
chmod 600 /etc/rsyncd_users.db (由于保存密码,权限要给的严格一些)
rsync --daemon (启动服务)
netstat -lnpt | grep 873 (过滤端口号873)
vim /etc/rsyncd.conf
uid = nobody (用户名)
gid = nobody (组名)
use chroot = yes (禁锢在源码目录)
address = 192.168.200.111 (监听地址)
port = 873 (监听端口)
log file = /var/log/rsyncd.log (日志文件位置)
pid file = /var/run/rsyncd.pid (PID文件位置)
hosts allow = 192.168.200.0/24 (允许访问地址)
[wwwroot] (共享名,给访问者看的,本地目录可以不是这个名字)
path = /var/www/html (文件真实路径)
comment = Document Root os www.laowang.com (描述信息,可以随便写)
read only = yes (只读)
dont compress = *.gz *.bz2 *.tgz *.zip *.rar *.z (这些结尾的文件不压缩)
auth users = backuper (授权备份用户名,和系统用户没有关联)
secrets file = /etc/rsyncd_users.db (保存auth users用户名和对应密码)
vim /etc/rsyncd_users.db (编辑用户名和密码)
backuper:pwd123 (用户名和密码用:分隔)
chmod 600 /etc/rsyncd_users.db (由于保存密码,权限要给的严格一些)
rsync --daemon (启动服务)
netstat -lnpt | grep 873 (过滤端口号873)
关闭服务
kill $(cat /var/run/rsyncd.pid)
如果关闭服务失败,是因为PID文件没有删除,删除即可正常开启或者关闭
kill $(cat /var/run/rsyncd.pid)
如果关闭服务失败,是因为PID文件没有删除,删除即可正常开启或者关闭
编写服务控制脚本
二、使用rsync备份工具 192.168.200.112
有了同步源服务器之后,就可以使用rsync工具来执行远程同步。以下操作都是客户端(发起端)执行。
有了同步源服务器之后,就可以使用rsync工具来执行远程同步。以下操作都是客户端(发起端)执行。
本地备份:备份源和发起端可以是一台机器
rpm -q rsync (要保证第二台机器上有rsync)
rsync /etc/fstab /opt
rsync -rl /etc/fstab /boot/grub /opt (把/etc/fstab /boot/grub两个文件同步到/opt下)
rpm -q rsync (要保证第二台机器上有rsync)
rsync /etc/fstab /opt
rsync -rl /etc/fstab /boot/grub /opt (把/etc/fstab /boot/grub两个文件同步到/opt下)
rsync的命令格式及备份选项:
命令格式:rsync [选项]... 原始位置 目标位置
命令格式:rsync [选项]... 原始位置 目标位置
-r:递归模式,包含目录及子目录中所有文件
-l:对于符号链接文件仍然复制为符号连接文件
-p:保留文件的权限标记
-t:保留文件的时间标记
-g:保留文件的属组标记(仅超级用户使用)
-o:保留文件的属主标记(仅超级用户使用)
-D:保留设备文件及其他特殊文件
-l:对于符号链接文件仍然复制为符号连接文件
-p:保留文件的权限标记
-t:保留文件的时间标记
-g:保留文件的属组标记(仅超级用户使用)
-o:保留文件的属主标记(仅超级用户使用)
-D:保留设备文件及其他特殊文件
-a:归档模式,递归并保留对象属性,等同于 -rlptgoD
-v:显示同步过程的详细(verbose)信息
-z:在传输文件时进行压缩(compress)
-H:保留硬连接文件
-A:保留ACL属性信息
--delete:删除目标位置有而原始位置没有的文件
--checksum:根据对象的校验和来决定是否跳过文件
-v:显示同步过程的详细(verbose)信息
-z:在传输文件时进行压缩(compress)
-H:保留硬连接文件
-A:保留ACL属性信息
--delete:删除目标位置有而原始位置没有的文件
--checksum:根据对象的校验和来决定是否跳过文件
备份源的表示方法:
在执行远程同步任务时,rsync命令需要制定备份源服务器中的资源位置。rsync同步源的资源表示方式有两种:
用户名@主机地址:共享模块名称
rsync://用户名@主机地址/共享模块名称
在执行远程同步任务时,rsync命令需要制定备份源服务器中的资源位置。rsync同步源的资源表示方式有两种:
用户名@主机地址:共享模块名称
rsync://用户名@主机地址/共享模块名称
192.168.200.111服务器端创建共享文件夹
mkdir -pv /var/www/html
在共享文件夹下创建测试文件
touch /var/www/html/test1.txt
mkdir -pv /var/www/html
在共享文件夹下创建测试文件
touch /var/www/html/test1.txt
192.168.200.112客户端,发起端下载共享目录测试文件
两种格式:
1、rsync -avz backuper@192.168.200.111::wwwroot /root
2、rsync -avz rsync://backuper@192.168.200.111/wwwroot /root
两种格式:
1、rsync -avz backuper@192.168.200.111::wwwroot /root
2、rsync -avz rsync://backuper@192.168.200.111/wwwroot /root
rsync默认支持增量,同步修改过或者新创建的文件
优点:支持增量,每次传输的数据量不是很大
缺点:如果源数据量特别大的时候,rsync传输特别慢,需要把全部文件扫描一遍,来识别哪些文件有变动,那些文件新增加的,然后再传输。
优点:支持增量,每次传输的数据量不是很大
缺点:如果源数据量特别大的时候,rsync传输特别慢,需要把全部文件扫描一遍,来识别哪些文件有变动,那些文件新增加的,然后再传输。
编写rsync备份脚本:(在客户端操作)
rsync备份源的无交互验证方式
1、通过export RSYNC_PASSWORD变量保存密码,rsync命令执行时可以自动读取该变量的值,在需要时发送给rsync服务器来进行验证
export RSYNC_PASSWORD=123456
rsync备份源的无交互验证方式
1、通过export RSYNC_PASSWORD变量保存密码,rsync命令执行时可以自动读取该变量的值,在需要时发送给rsync服务器来进行验证
export RSYNC_PASSWORD=123456
2、通过 --password-file选项指定存储密码的文件
vim /etc/server.pass (建立密码存储文件)
123456
chmod 600 /etc/server.pass
相对于SSH源的免交互措施来说,使用变量存放密码显得不够安全,因此可在脚本中使用,并将脚本的权限严格控制,避免密码泄漏。
rsync -az --password-file=/etc/server.pass backuper@192.168.200.111::wwwroot /root
vim /etc/server.pass (建立密码存储文件)
123456
chmod 600 /etc/server.pass
相对于SSH源的免交互措施来说,使用变量存放密码显得不够安全,因此可在脚本中使用,并将脚本的权限严格控制,避免密码泄漏。
rsync -az --password-file=/etc/server.pass backuper@192.168.200.111::wwwroot /root
可以创建周期计划任务crontab
上传操作需要文件夹属主、组为nobody,而且同步操作是镜像两个文件夹,单独文件上传加--delete是不会删除原有文件的,只有两个文件夹互相同步的时候才可以
假设环境
111mysql数据库,备份出数据
222备份存放位置
这样要在222上配置rsync服务,
并且授权账号backuper,
还要把共享文件夹属主和属组改变为nobody,
111mysql服务端上备份出数据,远程同步到222的共享文件夹上
111mysql数据库,备份出数据
222备份存放位置
这样要在222上配置rsync服务,
并且授权账号backuper,
还要把共享文件夹属主和属组改变为nobody,
111mysql服务端上备份出数据,远程同步到222的共享文件夹上