码迷,mamicode.com
首页 > 其他好文 > 详细

rsync+inotify

时间:2018-11-18 14:57:06      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:系统   输出   table   tab   install   border   免密   make   机制   

公司需要用到备份文件,因此整理了一篇文章,希望对读者有所帮助。

工作环境:

主机名 IP 操作系统 版本
openstack 192.168.199.7 rhel7.4 rsync  version 3.0.9
node2 192.168.199.8 rhel7.4 rsync  version 3.0.9

rhel7版本已经默认装了rsync。

编译rsync服务的主配置文件:

[root@openstack ~]# vim /etc/rsyncd.conf

  1 # /etc/rsyncd: configuration file for rsync daemon mode
  2
  3 # See rsyncd.conf man page for more options.
  4
  5 # configuration example:
  6
  7 uid = nobody
  8 gid = nobody
  9 address = 192.168.199.7
 10 port = 873
 11 hosts allow = 192.168.199.8
 12 use chroot = yes   #用户登录进来只在固定的目录里
 13 max connections = 4
 14 pid file = /var/run/rsyncd.pid
 15 lock file = /var/run/rsyncd.lock
 16 log file = /var/run/rsyncd.log
 17 motd file = /etc/rsyncd.motd
 18 [wwwroot]
 19 path = /essfiles/
 20 comment = database
 21 read only = yes
 22 list = yes
 23 auth users = rsyncuser
 24 secrets file = /etc/rsync.password
[root@openstack ~]# vim /etc/rsync.password
rsyncuser:passwd123

[root@openstack ~]# chmod 600 /etc/rsync.password
[root@openstack ~]# vim /etc/rsyncd.motd
welcome to back zjbq_file
[root@openstack ~]# rsync --daemon
[root@openstack ~]# ps -aux|grep rsync
root       6405  0.0  0.0 114652   312 ?        Ss   10:40   0:00 rsync --daemon
root      58231  0.0  0.0 112680   984 pts/2    S+   13:46   0:00 grep --color=auto rsync
创建需要备份的目录

[root@openstack ~]# mkdir /essfiles/

创建测试数据:

[root@openstack ~]# mkdir /essfiles/{1..10}.txt
[root@openstack ~]# ll /essfiles/
总用量 0
drwxr-xr-x. 2 root root 6 11月 18 13:51 10.txt
drwxr-xr-x. 2 root root 6 11月 18 13:51 1.txt
drwxr-xr-x. 2 root root 6 11月 18 13:51 2.txt
drwxr-xr-x. 2 root root 6 11月 18 13:51 3.txt
drwxr-xr-x. 2 root root 6 11月 18 13:51 4.txt
drwxr-xr-x. 2 root root 6 11月 18 13:51 5.txt
drwxr-xr-x. 2 root root 6 11月 18 13:51 6.txt
drwxr-xr-x. 2 root root 6 11月 18 13:51 7.txt
drwxr-xr-x. 2 root root 6 11月 18 13:51 8.txt
drwxr-xr-x. 2 root root 6 11月 18 13:51 9.txt

然后在备份服务器上进行备份:

[root@node2 ~]# mkdir /essfiles-back/    创建备份的目录
[root@node2 essfiles-back]# rsync -avz rsyncuser@192.168.199.7::wwwroot /essfiles-back/   进行备份,此时是需要输入密码的。
welcome to back zjbq_file

Password:
receiving incremental file list
./
1.txt/
10.txt/
2.txt/
3.txt/
4.txt/
5.txt/
6.txt/
7.txt/
8.txt/
9.txt/

sent 105 bytes  received 299 bytes  62.15 bytes/sec
total size is 0  speedup is 0.00
[root@node2 essfiles-back]#

[root@node2 essfiles-back]# ll   查看文件已经备份过来了。
总用量 0
drwxr-xr-x. 2 root root 6 11月 18 2018 10.txt
drwxr-xr-x. 2 root root 6 11月 18 2018 1.txt
drwxr-xr-x. 2 root root 6 11月 18 2018 2.txt
drwxr-xr-x. 2 root root 6 11月 18 2018 3.txt
drwxr-xr-x. 2 root root 6 11月 18 2018 4.txt
drwxr-xr-x. 2 root root 6 11月 18 2018 5.txt
drwxr-xr-x. 2 root root 6 11月 18 2018 6.txt
drwxr-xr-x. 2 root root 6 11月 18 2018 7.txt
drwxr-xr-x. 2 root root 6 11月 18 2018 8.txt
drwxr-xr-x. 2 root root 6 11月 18 2018 9.txt

上面的备份是需要输入密码的,此时在本地设置一个密码文件,然后指定密码文件就可以免密了。
[root@node2 ~]# vim /etc/rsync.password   
passwd123

[root@node2 essfiles-back]# rm -rf *     删掉之前的数据
[root@node2 essfiles-back]# ll
总用量 0
[root@node2 essfiles-back]# rsync -avz rsyncuser@192.168.199.7::wwwroot --password-file=/etc/rsync.password /essfiles-back/
welcome to back zjbq_file

receiving incremental file list
./
1.txt/
10.txt/
2.txt/
3.txt/
4.txt/
5.txt/
6.txt/
7.txt/
8.txt/
9.txt/

sent 105 bytes  received 299 bytes  808.00 bytes/sec
total size is 0  speedup is 0.00
[root@node2 essfiles-back]# ll
总用量 0
drwxr-xr-x. 2 root root 6 11月 18 13:51 10.txt
drwxr-xr-x. 2 root root 6 11月 18 13:51 1.txt
drwxr-xr-x. 2 root root 6 11月 18 13:51 2.txt
drwxr-xr-x. 2 root root 6 11月 18 13:51 3.txt
drwxr-xr-x. 2 root root 6 11月 18 13:51 4.txt
drwxr-xr-x. 2 root root 6 11月 18 13:51 5.txt
drwxr-xr-x. 2 root root 6 11月 18 13:51 6.txt
drwxr-xr-x. 2 root root 6 11月 18 13:51 7.txt
drwxr-xr-x. 2 root root 6 11月 18 13:51 8.txt
drwxr-xr-x. 2 root root 6 11月 18 13:51 9.txt
此时就可以免密备份了。

使用脚本自动备份:

[root@node2 ~]# vim rsync.sh
#!/bin/bash
rsync -avz rsyncuser@192.168.199.7::wwwroot --password-file=/etc/rsync.password /essfiles-back/

[root@node2 ~]# chmod +x rsync.sh
然后加入计划任务就可以实现自动备份了。

rsync+inotify实时同步

Linux 内核从 2.6.13 版本开始提供了 inotify 通知接口,用来监控文件系统的各种变化情况,如文件存取、删除、移动等。利用这一机制,可以非常方便地实现文件异动告警、增量备份,并针对目录或文件的变化及时作出响应。

 [root@openstack ~]# uname -r   查看内核版本
3.10.0-693.el7.x86_64

安装inotify-tools工具

可以yum安装也可以进行编译安装

这里进行编译安装

[root@openstack ~]# tar zxvf inotify-tools-3.13.tar.gz -C /usr/local/src/
[root@openstack src]# cd inotify-tools-3.13/
[root@openstack inotify-tools-3.13]# ./configure --prefix=/usr/local/inotify-tools && nake && make install
设置软连接或者加入到环境变量中,这样方便调用。
[root@openstack ~]# tail -n 1 /etc/profile
export PATH=/usr/local/inotify-tools/bin:$PATH

[root@openstack ~]# source /etc/profile    使生效。
或者设置软链接

[root@openstack ~]# ln -s /usr/local/inotify-tools/bin/* /usr/bin/

inotifywait常用参数:

-e  用来指定要监控哪些事件。这些事件包括: create 创建,move 移动,delete 删除,modify 修改文件内容,attrib 属性更改。

-m 表示持续监控

-r  表示递归整个目录

-q 表示简化输出信息。

rsync+inotify

标签:系统   输出   table   tab   install   border   免密   make   机制   

原文地址:https://www.cnblogs.com/winter1519/p/9977770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!