2020-11-19

Rsync常用参数

-a #归档模式传输, 等于-tropgDl -t -r -o -p -g -D -l

-v #详细模式输出, 打印速率, 文件数量等

-z #传输时进行压缩以提高效率

-r #递归传输目录及子目录,即目录下得所有目录都同样传输。

-t #保持文件时间信息

-o #保持文件属主信息

-p #保持文件权限

-g #保持文件属组信息

-l #保留软连接

-P #显示同步的过程及传输时的进度等信息

-D #保持设备文件信息

-L #保留软连接指向的目标文件

-e #使用的信道协议,指定替代rsh的shell程序

--exclude=PATTERN #指定排除不需要传输的文件

--exclude-from=file #文件名所在的目录文件

--bwlimit=100 #限速传输

--partial #断点续传

--delete #让目标目录和源目录数据保持一致

--password-file=xxx #使用密码文件

 

--exclude-from=fifile 排除参数

rsync -avz ./* rsync_backup@172.16.1.41::backup --exclude-from=1.txt

在推送到对方后会排除1.txt

 

--bwlimit=100 限速传输

限速1M每秒推送

rsync -avzP 1.txt rsync_backup@172.16.1.41::backup --bwlimit=1

 

 

--delete 数据一致(无差异同步)

rsync -avz ./ rsync_backup@172.16.1.41::backup --delete

 

拉取时:客户端数据与服务端数据一致,以服务端数据为准

推送时:服务端数据一客户端数据一致,一客户端数据为准

 

客户端脚本

[root@web01 ~]# vim client.sh

#!/bin/bash

#1.定义变量

DIR=/backup

HOSTNAME=$(hostname)

IP=$(hostname -I | awk '{print $2}')

DATE=$(date +%F)

SRC=${DIR}/${HOSTNAME}_${IP}_${DATE}

#2.创建表备份目录

[ -d $SRC ] || mkdir $SRC -p

#3.打包文件

[ -f $SRC/conf.tar.gz ] || cd /var && tar zcf $SRC/conf.tar.gz ./log/messages

#4.推送文件

export RSYNC_PASSWORD=123456

rsync -az $DIR/ rsync_backup@172.16.1.41::backup

#5.删除七天前数据

find $DIR/ -type d -mtime +7 | xargs rm -rf

 

 

校验文件

md5sum -c web01_172.16.1.7_2020-11-30/flag_2020-11-30

md5sum -c /backup/*_$(date +%F)/flag_2020-11-30(写入脚本)

 

使用邮件发送消息

#1.服务端配置邮件功能

[root@backup ~]# yum install mailx -y

[root@backup ~]# vim /etc/mail.rc

set from=253097001@qq.com

set smtp=smtps://smtp.qq.com:465

set smtp-auth-user=253097001@qq.com

set smtp-auth-password=123123123

set smtp-auth=login

set ssl-verify=ignore

set nss-config-dir=/etc/pki/nssdb/

#2.测试发送邮件

[root@backup backup]# mail -s "校验结果" 1240206455@qq.com < server.sh

 

服务端脚本

#!/bin/bash

#1.定义变量

DIR=/backup

HOSTNAME=$(hostname)

IP=$(hostname -I | awk '{print $2}')

DATE=$(date +%F)

SRC=${DIR}/${HOSTNAME}_${IP}_${DATE}

#2.校验文件

md5sum -c $DIR/*_$DATE/flag > $DIR/result.txt

#3.将校验结果发送给管理员邮箱

mail -s "$DATE备份文件 校验结果" 1240206455@qq.com < $DIR/result.txt

#4.删除6个月之前的数据

find $DIR/ -type d -mtime +180 | xargs rm -rf

 

将服务端脚本加入定时任务

[root@backup ~]# crontab -e

#服务端每天7点将校验备份结果发给管理员

0 7 * * * /bin/bash /root/server.sh &> /dev/null

 

Rsync结合inotify

安装inotify

yum -y install inotify-tools

 

常用参数

-m 持续监控

-r 递归

-q 静默,仅打印时间信息

--timefmt 指定输出时间格式

--format 指定事件输出格式

%Xe 事件

%w 目录

%f 文件

-e 指定监控的事件

access 访问

modify 内容修改

attrib 属性修改

close_write 修改真实文件内容

open 打开

create 创建

delete 删除

umount 卸载

 

测试命令

/usr/bin/inotifywait -mrq --format '%Xe %w %f' -e

create,modify,delete,attrib,close_write /backup

 

实时备份脚本编写

[root@backup ~]# vim rsyn-inotify.sh

#!/bin/bash

dir=/backup

/usr/bin/inotifywait -mrq --format '%w %f' -e create,delete,attrib,close_write $dir |

while read line;do

cd $dir && rsync -az -R --delete . rsync_backup@172.16.1.31::backup --

password-file=/etc/rsync.passwd >/dev/null 2>&1

done &

 

NFS 服务

什么是NFS

共享存储,文件服务器

 

为什么使用NFS

1.实现多台服务器之间数据共享

2.实现多台服务器之间数据一致

 

NFS原理

vim /etc/exports

/data 172.16.1.0/24(rw,sync,all_squash)

 

 

1.用户访问NFS客户端,将请求转化为函数

2.NFS通过TCP/IP连接服务端

3.NFS服务端接收请求,会先调用portmap进程进行端口映射

4.Rpc.nfsd进程用于判断NFS客户端能否连接服务端;

5.Rpc.mount进程用于判断客户端对服务端的操作权限

6.如果通过权限验证,可以对服务端进行操作,修改或读取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值