rsync
Rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具。
Rsync软件适用于unix/linux/windows等多种操作系统平台。
Rsync有三种模式:1.本地模式(类似于cp命令)
2.远程模式(类似于scp命令)
3.守护进程(socket进程:是rsync的重要功能)
把系统的hosts文件同步到/opt目录:rsync /etc/hosts /opt
把opt目录拷贝到/mnt下:rsync -avz /opt /mnt
删除:rsync -avz --delete /old/ /tmp(将tmp目录下比old目录下多的文件删除)
一、某DBA做数据同步,带宽占满,导致用户无法访问网站。
解答:rsync -avz dbfile 10.0.0.41:/backup(没有给带宽做限制)
rsync -avz --bwlimit=100 dbfile 172.16.1.41:/backup(限定了带宽)
二、测试本地rsync同步:rsync -avz /opt /tmp
三、将当前主机内容推送到远程主机
rsync -avzP -e 'ssh -p 22'/etc/ root@192.168.126.136:/tmp/(开始同步)
ssh root@zhuji "ls -l /tmp" (查看同步结果)
四、将远程主机内容拉取到当前主机
rsync -avzP -e 'ssh -p 22' root@zhuji:/opt /tmp
五、以守护进程(socket)的方式传输数据(重点)
创建服务端:
首先确认软件是否安装:rpm -qa rsync
然后创建rsyncd.conf文件,并添加如下内容(文件默认不存在)
#vim /etc/rsyncd.conf
# 用户
uid = rsync
# 组
gid = rsync
# 程序安全设置
use chroot = no
# 客户端连接数
max connections = 200
# 超时时间
timeout = 300
# 进程号文件位置
pid file = /var/run/rsyncd.pid
# 进程锁
lock file = /var/run/rsync.lock
# 日志文件位置
log file = /var/log/rsyncd.log
##########################################
[backup]
# 使用目录
path = /backup/
# 有错误时忽略
ignore errors
# 可读可写(true或false)
read only = false
# 阻止远程列表(不让通过远程方式看服务端有啥)
list=false
# 允许IP
hosts allow = 192.168.197.0/24
# 禁止IP
hosts deny = 0.0.0.0/32
# 虚拟用户
auth users = rsync_backup
# 存放用户和密码的文件
secrets file = /etc/rsync.password
创建共享目录及添加rsync程序用户:
启动服务:rsync --daemon
将A-Sever上的/backup文件夹更改属主rsync
创建rsync虚拟账户名和密码
将账户密码文件的权限设置为600
加入开机启动
创建客户端:
只需要创建密码文件
将密码文件的权限设置为600
六、如下图:
解答:首先,我们要先配置好服务端和客户端。
配置服务端:
1.确认软件是否安装: which rsync scp
2.配置系统文件: vim /etc/rsyncd.conf
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[backup]
path = /backup/
ignore errors
read only = false
list = false
hosts allow = 192.168.126.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
3.创建共享目录和rsync的程序用户
useradd -M -s /sbin/nologin rsync
cat /etc/passwd | grep rsync
cat /etc/group | grep rsync
mkdir /backup
4.更改属主:chown -R rsync /backup
5.创建虚拟用户: echo "rsync_backup:123456" >> /etc/rsync.password
6.将账户密码文件的权限更改为600: chmod 600 /etc/rsync.password
7.加入开机启动: echo "rsync --daemon" >> /etc/rc.local
也可以用另一种开机自启 chkconfig rsync on,但要修改为chkconfig使用的脚本。
重启rsync命令,先杀掉: pkill rsync,然后启动: rsync --daemon。
配置客户端:
1.查看命令是否存在: which rsync scp
2.创建密码文件: echo “123456” > /etc/rsync.password
3.将密码文件权限设置为600: chmod -R /etc/password
4.配置脚本client: vim client
5.配置定时任务: crontab -e
0 0 * * * /bin/sh client
传送成功,配置完毕。