免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6264 | 回复: 4
打印 上一主题 下一主题

inotify监控samba文件系统脚本 [复制链接]

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015元宵节徽章
日期:2015-03-06 15:51:33
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-15 17:28 |只看该作者 |倒序浏览
因对samba目录下有监控需求,所以最近都在研究,但网上都找不到比较好的samba监控软件,没有办法对目录下的文件操作进行监控。
swat只可以对当下的samba连接用户和IP进行监控,但没有日志功能,最终决定用inotify来进行监控。

整个脚本的思路如下:
1.利用inotifywait对目录进行监控,并对相关操作进行日志记录。
2.利用inotifywait对日志文件进行监控,一有改变,扫描当时通过smbd进行连接的IP地址。
3.设置smb.conf中的全局设置,关闭60分钟内不打开任何文件的连接,
    因为如果有系统通过记录密码来连接samba服务器,就算重启服务器或客户端,都会自动重连,这样在扫描连接IP时就会出现很多其它连接信息,影响准确性。
    deadtime=60


脚本1
(主要是通过inotify对指定目录进行监控)

#!/bin/bash
#监控本机目录文件的改变,并写入log文件。

pwdpath=$(pwd)      #取得当前目录
logpath=$pwdpath'/inotify.log'
inopath='/home/7ffile/'         #监控目录

#只对监控目录中的移动、新建、删除事件进行记录
$(inotifywait -rme move,create,delete \
        --timefmt '%Y-%m-%d %H:%M:%S' \
        --format '%T %w %Xe %f' \
        --exclude '\..*' \
        $inopath >> $logpath)

=========================================
脚本2
(主要是监控日录文件进行IP连接扫描)

#!/bin/bash
#如果inotifywait有记录写入log,就需要扫描当时通过smbd连接的IP并记录下来,日后进行交叉查询。


pwdpath=$(pwd)
logpath=$pwdpath'/inotify.log'
logippath=$pwdpath'/inotifyip.log'
ipmacinfo='/mnt/temp_ipmac'

while inotifywait -e modify $logpath
do
        dates=$(date +%Y-%m-%d' '%H:%M:%S)      #设置准确时间

        if tail -n1 $logpath | grep DELETE;then         #出现删除时扫描连接IP
                #对lsof显示出来信息进行筛选后得出此时连接的IP地址
                arrayip=($(lsof | grep smbd | grep 192.168. \
                        | awk '{print $8}' \
                        | awk -F\> '{print $2}' \
                        | awk -F: '{print $1}'))        
               
                echo $dates'监控目录文件删除时有以上IP地址通过smbd连接。' >> $logippath
        fi
done


最后通过inotify.log和inotifyip.log的交叉查询,就可以查出当监控目录有文件删除时,通过samba连接有哪些IP地址。



脚本还请各位大哥指教。

论坛徽章:
0
2 [报告]
发表于 2011-06-16 10:48 |只看该作者
inotify好东西啊!
再强大点就更好 了

论坛徽章:
0
3 [报告]
发表于 2012-07-25 22:31 |只看该作者
你这个 --exclude '\..*' 排除了所有文件?  

同样有个问题 我想排除监控目录所有子目录都可能有的以.log结尾的文件,这个--exclude貌似不起作用。我的参数是:
./inotifywait  --exclude '*\.log$'   -rme modify,delete,delete_self,move -o wait.log  /usr/test

论坛徽章:
0
4 [报告]
发表于 2015-04-20 17:54 |只看该作者
请问怎么做成开机自动启动脚本?
我在/etc/rc.load里面做,一直没成功过。
回复 1# smjordan


   

论坛徽章:
0
5 [报告]
发表于 2015-09-29 18:32 |只看该作者
这个列出了一个ip的范围,能具体到哪一个ip做了相应的操作吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP