Linux rsync 远程同步部署篇
rsync官网:
www.samba.org/ftp/rsync.html
端口:873
上机实战系列项目100台规模集群全网数据备份解决方案
3、本项目提供免费实战讲解视频:
linux集群全网服务器数据备份解决方案实战视频
rysnc优缺点
loacal---本地
本地两个目录之间的拷贝和两个主机之间的拷贝,cp,scp
用法(复制功能):
rsync -vzrtopg /zfd/test.txt /tmp = cp /zfd/test.txt /tmp
(删除功能):
rsync -avz --delete ./tmp1/ /zfd/
删除/zfd目录下多余的,只保留与./tmp1目录下有的数据一致并将./tmp1目录下有/zfd/目录下没有的复制到/zfd/目录下,即保持与./tmp1目录下数据一致就对了。
增量备份的功能,数据备份,数据同步
remote shell--ssh ---远端
push命令:rsync -avz hosts.zfd -e "ssh -p 22" oldboy@10.0.0.31:~/sjcx/
说明:将本地hosts.zfd 通过 ssh 传到 10.0.0.30oldboy用户~/sjcx/目录下
参数:avz v-显示 z-压缩;-e 指通过ssh的方式,及管道;-p 端口
rsync deamon---rsync服务端配置开始---
uname -r ---查看系统
cat /etc/redhat-release ---查看系统版本
rpm -qa rsync --查看是否安装rsync
yum install rsync -y ---安装rsync
rsync --version ---查看rsync 版本
vim /etc/rsyncd.conf ---配置rsyncd.conf文件,默认不存在,可man rsyncd.conf
/etc/rsyncd.conf 内容:
rsync_config----start uid = rsync ### 虚拟用户,远端的命令使用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/run/rsync.log ## 日志文件 出错 [backup] ## 模块名称 path = /backup ## 服务器端提供访问的目录 ignore errors ## 忽略错误 read only = false ## 可写 list = false ## 不能列表 hosts allow = 172.16.1.0/24 hosts deny = 0.0.0.0/32 auth users = rsync_backup secrets file = /etc/rsync.password ##rsync_config----end [root@backup ~]# useradd rsync -s /sbin/nologin -m -s --指定登录 -m--不建家目录,因为rsync 用户为虚拟用户 [root@backup ~]# tail -1 /etc/passwd rsync:x:501:501::/home/rsync:/sbin/nologin
一系列设置过程
[root@backup ~]# rsync --daemon--起服务 [root@backup ~]# ps -ef|grep rsync|grep -v grep --查看是否已起服务 root 3223 1 0 06:25 ? 00:00:00 rsync --daemon [root@backup ~]# mkdir /backup ---创建访问目录 [root@backup ~]# ls -ld /backup/ ---查看属主属组 drwxr-xr-x 2 root root 4096 apr 22 06:27 /backup/ [root@backup ~]# chown rsync.rsync /backup/ ---修改属主属组均为rsync [root@backup ~]# ls -ld /backup/ drwxr-xr-x 2 rsync rsync 4096 apr 22 06:27 /backup/
/etc/rsync.password 虚拟用户密码配置
[root@backup ~]# vim /etc/rsync.password rsync_backup:oldboy ---格式: 用户:密码 --皆为明文 [root@backup ~]# ls -l /etc/rsync.password -rw-r--r-- 1 root root 20 apr 22 06:34 /etc/rsync.password [root@backup ~]# chmod 600 /etc/rsync.password --密码文件权限设置 [root@backup ~]# ls -l /etc/rsync.password -rw------- 1 root root 20 apr 22 06:34 /etc/rsync.password [root@backup ~]# lsof -i :873 ---查看端口方式1,已知端口,查看服务 command pid user fd type device size/off node name rsync 3223 root 3u ipv4 17843 0t0 tcp *:rsync (listen) rsync 3223 root 5u ipv6 17844 0t0 tcp *:rsync (listen) [root@backup ~]# netstat -lntup|grep 873 --查看端口方式2 tcp 0 0 0.0.0.0:873 0.0.0.0:* listen 3223/rsync tcp 0 0 :::873 :::* listen 3223/rsync
设置开机自启动
[root@backup ~]# echo "/usr/bin/rsync --daemon" >> /etc/rc.local [root@backup ~]# tail -1 /etc/rc.local /usr/bin/rsync --daemon
排错
cat /var/run/rsync.log
rsync deamon---rsync服务端配置结束----
rsync deamon---rsync客户端配置--------
vim /etc/rsync.password ---客户端配置文件保存密码 oldboy ---只保留服务端密码 chmod 600 /etc/rsync.password ---修改文件权限 ls -l /etc/rsync.password mkdir -p /backup cd /backup/ touch stu{01..100} rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ 连不通时 telnet 172.16.1.41 873 yum install telnet -y /etc/init.d/iptables stop netstat -lntup |grep 873 [root@nfs01 backup]# rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ password: ----提示输入密码,即oldboy [root@nfs01 backup]# rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password ---使用/etc/rsync.password中的密码,避免手动输入密码
push方法1:rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password
push方法2:rsync -avz /backup/ rsync://rsync_backup@172.16.1.41/backup/ --password-file=/etc/rsync.password
pop方法1:rsync -avz rsync_backup@172.16.1.41::backup/ /tmp/ --password-file=/etc/rsync.password
pop方法2:rsync -avz rsync://rsync_backup@172.16.1.41/backup/ /tmp/ --password-file=/etc/rsync.password
说明: /backup/ --本地目录,即客户端目录
rsync_backup@172.16.1.41::backup/ ::backup/---指服务端配置中的[backup]模块
或rsync://rsync_backup@172.16.1.41/backup/ ---表示服务端模块
rsync_backup---指服务端rsync用户
/etc/rsync.password --指服务端rsync_backup用户的密码
参数 --exclude
[root@nfs01 backup]# rsync -avz --exclude={stu100,stu099,stu088} /backup/ rsync://rsync_backup@172.16.1.41/oldboy/ --password-file=/etc/rsync.password
参数 --delete 无差异同步 与源同步,危险
参数 --bwlimit 限速传输 单位bps
[root@nfs01 backup]# rsync -avz --bwlimit=100 /backup/ rsync://rsync_backup@172.16.1.41/oldboy/ --password-file=/etc/rsync.password
注意事项
rsync在使用两个eth1的ip传输时,需要保证在同一网段,不在同一网段是ping不通的
7.
8.
工作方式
rsync服务端总结1
rsync使用总结2:
上一篇: Python项目中使用配置文件
下一篇: 模式:工程化实现及扩展——工厂模式