第九天笔记

一、RSYNC

1、RSYNC介绍

rsync 是一个强大的文件同步工具,常用于在不同的系统之间高效地复制和同步文件及目录。

它具有以下一些显著的特点和优势:

1、增量备份:rsync 只会传输源目录和目标目录之间有差异的部分,这大大减少了数据传输量,提高了同步效率。

例如,如果您有一个大型的文件库,并且只对其中的几个文件进行了修改,rsync 只会传输这些修改过的文件,而不是整个文件库。

2、数据完整性:它能够确保数据在传输过程中的完整性,通过校验和来验证文件是否正确传输。

3、多种传输方式:支持通过本地连接(如本地磁盘)、SSH 等方式进行文件同步。

4、保留权限和属性:可以保留文件和目录的权限、所有者、组、时间戳等属性。

5、排除特定文件或目录:通过配置,可以指定排除某些不需要同步的文件或目录。

在实际应用中,rsync 常用于服务器之间的数据备份、文件同步、版本控制等场景。以下是一个基本的 rsync 命令示例:

 rsync -avz source_directory destination_directory
其中:

-a 表示归档模式,保留权限、属性等。

-v 表示详细模式,显示更多信息。

-z 表示在传输过程中进行压缩,以减少网络带宽使用。

2、RSYNC的使用

1、特点

1.可以镜像保存整个⽬录树和⽂件系统
2.可以保留原有的权限,时间,软硬链接,⽂件,⽂件属性信息等
3.传输==效率⾼==,使⽤同步算法,只⽐较变化的(增量备份)
4.⽀持匿名传输,⽅便⽹站镜像;也可以做验证,加强安全

2、使用

基本语法

上传:rsync 选项 上传文件 上传地址

下载:rsync 选项 下载地址 下载文件

选项:

-v 详细模式输出 -a 归档模式,递归的⽅式传输⽂件,并保持⽂件的属性,equals -rlptgoD -r 递归拷⻉⽬录 -l 保留软链接 -p 保留原有权限 -t 保留原有时间(修改) -g 保留属组权限 -o 保留属主权限 -D 等于--devices --specials 表示⽀持b,c,s,p类型的⽂件

-R 保留相对路径 -H 保留硬链接 -A 保留ACL策略 -e 指定要执⾏的远程shell命令,ssh更改端⼝常⽤选项

-E 保留可执⾏权限 -X 保留扩展属性信息 a属性

—delete 同步删除目录中多余的文件

3、rsync与scp的区别

两者都可以实现远程同步,但是相对⽐⽽⾔,rsync能⼒更强

1、⽀持增量备份

2、数据同步时保持⽂件的原有属性

4、rsync作为系统服务

rsyncd服务的配置⽂件/etc/rsyncd.conf

# uid = nobody   用户编号
# gid = nobody   所属组编号
# use chroot = yes   是否禁锢目录
# max connections = 4    最大连接数
# pid file = /var/run/rsyncd.pid    进程文件,每个服务都有有个PID编号,其中源就是PID文件
# exclude = lost+found/   传输文件时,忽略lost+found/目录
# transfer logging = yes  传输日志是否需要写入日志文件
# timeout = 900   传输超时时间,默认15分钟
# ignore nonreadable = yes   是否忽略不可读文件
# dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2   以下文件格式不压缩

5、编写计划任务 + Shell的脚本⽂件,⾃动实现代码备份

1、编写计划任务

 # crontab -e
 3 1 * * * /root/rsync_java.sh 
2、编写rsync_java.sh脚本程序

# vim rsync_java.sh
 #!/bin/bash
 rsync -av root@10.1.1.10::app /backup/app1_java &>/dev/null
 # chmod +x rsync_java.sh

6、给RSYNC服务添加密码

1、打开/etc/rsyncd.conf配置⽂件

# vim /etc/rsyncd.conf
 [app]
 path=/app/java_project
 log file=/var/log/rsync.log
 auth users = user1,user2        =>   ⽤户名
secrets file = /etc/rsyncd.secrets    =>   密码⽂件
2、在/etc⽬录下创建rsyncd.secrets⽂件

# vim /etc/rsyncd.secrets
 user1:123               =>   设置密码,⽤户名:密码
user2:123
3、更改密码⽂件权限为600

 # chmod 600 /etc/rsyncd.secrets 
4、重启rsyncd服务

# systemctl restart rsyncd

二、RSYNC集合INOTIFY⼯具实现代码实时同步

1、inotify介绍

inotify 是一个 Linux 内核提供的用于监控文件系统事件的机制。

它允许应用程序监控文件或目录的各种操作,例如创建、修改、删除、移动等。

以下是 inotify 的一些关键特点和用途:

特点:

实时性:能够实时地通知应用程序文件系统的变化。

细粒度监控:可以精确到单个文件或目录的操作级别。

用途:

文件同步工具:比如在多个服务器之间保持文件同步,当源端文件发生变化时,及时同步到目标端。

日志监控:监控日志文件的更新,以便及时处理新的日志内容。

例如,在一个自动化部署系统中,使用 inotify 来监测代码目录的变化,一旦有新的代码提交,自动触发部署流程。又或者在一个文件备份系统中,通过 inotify 来察觉文件的修改,然后及时进行备份操作。

2、直接安装inotify-tools

yum -y install inotify-tools
/usr/bin/inotifywait      等待
/usr/bin/inotifywatch     看守
/usr/bin/inotifywait-m : ⼀直监控某个⽬录,create、delete、modify等⾏为
-r : 递归,不仅仅监控⽬录还要监控⽬录下的⽂件
-q : 获取操作信息,但是不输出
-e : 哪些⾏为需要被监控,
modify,delete,create,attrib,move
modify: ⽂件被修改
delete: ⽂件被删除
create: ⽂件被创建
attrib: ⽂件属性被修改
move: ⽂件被移动

3、编写inotify.sh脚本

vim inotify.sh
#!/bin/bash
 
/usr/bin/inotifywait -mrq -e modify,delete,create,attrib,move /app/studentweb|while read events
do
        rsync -av --delete /app/studentweb/ root@192.168.2.155:/opt/
done

4、添加可执⾏权限

# chmod +x inotify.sh

5、让inotify.sh⽂件⼀直执⾏下去

 # nohup ./inotify.sh  &

  • 19
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值