(rsync环境部署)

1.rsync:数据备份

(通过“quick check”算法)
-a:归档模式,表示以递归的方式传递文件,保持所有属性
-z:传递时进行压缩,提高传输效率
-v:输出详细信息
-e:使用信道协议
1.本地拷贝——相当于cp :

rsync -azv /root /tmp #只拷贝root目录本身
rsync -azv /root/ /tmp #将root目录下的文件拷贝到tmp下
rsync -avz opt /tmp #opt 目录带文件一起拷贝到tmp下


python rsync 耗时拷贝 rsync拷贝文件_linux


②拷贝目录下的文件

python rsync 耗时拷贝 rsync拷贝文件_权限设置_02

2.远程拷贝—相当于scp

rsync -azv /root 192.168.42.61:/root —>ssh
rsync -azv -e “ssh -p 22” /root 192.168.42.61:/root

远程拷贝

①限制带宽的远程拷贝:–bwlimit=

python rsync 耗时拷贝 rsync拷贝文件_权限设置_03

3.删除——相当于rm

rsync -azv --delete /old/ /tmp/ #以old目录下为参考,若old目录下为空,则tmp/目录下的文件就被删除。若old目录下有文件,则会同步到tmp目录下

4.实现rsync的socket数据传递:

搭建服务以及集群:
1.先要解决两个问题

(1)防火墙

思路(关闭防火墙)
包过滤防火墙: firewalld iptables
内核防火墙:SElinux
关闭firewalld:

systemctl status firewalld #查看状态
systemctl stop firewalld #关闭
systemctl disable firewalld #开机不启动

关闭 iptables :

iptables -nL #查看规则
iptables -F #有规则需要清除规则

关闭SElinux:[root@localhost ~]# getenforce #查看内核防火墙

[root@localhost ~]# setenforce 0    #关闭内核防火墙
[root@localhost ~]# setenforce 1     #开启内核防火墙
[root@localhost ~]# getenforce     #查看内核防火墙状态
Enforcing     开启状态 
permissive    关闭状态

永久修改:

[root@admin ~]# vi /etc/selinux/config
        [root@admin ~]# vi /etc/sysconfig/selinux			
        SELINUX=disabled

(2)时钟源

搜索时钟源地址:国内可用的Internet时间同步服务器地址:NTP时间服务器
时钟源 ntp1.aliyun.com
时间统一:

yum install ntpdate -y
ntpdate  ntp1.aliyun.com

(3)服务端环境部署

安装rsync:

[root@server  ~]# yum install rsync -y

修改配置文件:

[root@server ~]# cp -p /etc/rsyncd.conf{,.bak}
[root@server ~]# vim /etc/rsyncd.conf
uid = root
gid = root
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.197.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password

创建共享目录及添加rsync程序用户:

[root@server ~]# useradd -M -s /sbin/nologin rsync
[root@server  ~]# cat /etc/passwd |grep rsync
rsync:x:1083:1083::/home/rsync:/sbin/nologin
[root@anliu2 ~]# cat /etc/group |grep rsync
rsync:x:1083:
[root@server  ~]# mkdir /backup #创建共享目录

启动服务

pkill rsync #关闭rsync服务
rsync --daemon #启动rsync服务

将A-Server上的/backup文件夹更改属主rsync

[root@server ~]# chown -R rsync:rsync /backup/
[root@server ~]# chown -R rsync:rsync /backup/
[root@server ~]# ls -ld /backup
drwxr-xr-x. 2 rsync rsync 6 7月  13 21:31 /backup

创建rsync虚拟账户名和密码

[root@server ~]# echo "rsync_backup:123456" > /etc/rsync.password
[root@server ~]# cat /etc/rsync.password
rsync_backup:123456

将账户密码文件的权限设置为600(必须否则失败)

[root@server  ~]# chmod 600 /etc/rsync.password
[root@server  ~]# ll /etc/rsync.password
-rw-------. 1 root root 20 9月  4 11:32 /etc/rsync.password

加入开机启动

[root@server  ~]# echo "rsync --daemon" >> /etc/rc.local
[root@server ~]# tail -l /etc/rc.local
rsync --daemon

(4)客服端环境部署

只需要创建密码文件

[root@anliu1 ~]# rpm -qa rsync
rsync-3.1.2-6.el7_6.1.x86_64
[root@client ~]# echo "123456" > /etc/rsync.password

将密码文件的权限设置为600(必须否则失败)

[root@client ~]# chmod 600 /etc/rsync.password
[root@client~]# ls -ld /etc/rsync.password
-rw-------. 1 root root 7 9月  4 11:39 /etc/rsync.password

(5)测试

rsync -avz /backup/ rsync_backup@192.168.197.129::backup --password-
file=/etc/rsync.password

Scp:

从本地复制到远程:
拷贝文件

Scp  /home/test/test.txt(本地)  root@192.168.0.2:/home/test/

拷贝目录

scp -r  /home/test/  root@192.168.0.2:/home/test/

从远程复制到本地
拷贝文件

scp root@192.168.0.2:/home/test/ /home/test/test.txt

#拷贝目录

scp -r root@192.168.0.2:/home/test/ v/home/test/

rsync和scp全量备份的对比:

若数据文件小而多,使用scp
若文件大而少,使用rsync ,断点续传(–partial)

增量:qiuck check:

(1)检查文件大小,修改时间

(2)数组属主

(3)检查文件修改位置

—》快速

rsync -av --delete /old/ /tmp/ #清空文件

rsync -azv /root /tmp #root目录

rsync -azv /root/ /tmp #root目录下的文件

rsync -azv /etc 192.168.42.159:/root/ #默认以ssh通道

python rsync 耗时拷贝 rsync拷贝文件_权限设置_04