JAVA监控读取共享文件夹
来源:互联网 发布:瞻博网络 上海 电话 编辑:程序博客网 时间:2024/06/10 03:27
问题
- 远程监控并读取某个系统的日志文件,判断文件是否已经写入完成,写入完成后读取到本地,并将远程文件删除。
- 远程系统的环境可能是linux也可能是windows
解决思路
- JAVA NIO 和 WATCHSERVICE
- JCIFS
实现过程
- 在Eclipse中运行Oracle NIO and NIO.2 Examples中给出的实例代码WatchDir.java,(实际是在JDK Example中,在JDK下载页面的“Demos and Samples”部分可以下载)
测试WatchDir对本地目录的支持
- 在WatchDir.java中选择“Debug As”–“Debug Configuration”,WatchDir类的用法是“java WatchDir [-r] dir”,-r的可选选项代表是否遍历子文件夹,dir代表待监控的文件夹。在Debug Configuration的Arguments中添加本地目录“D:\tmp”,点击Debug
- 监测文件夹中添加和删除文件进行测试
复制test.txt到该文件夹下,console中显示ENTRY_CREATE和ENTRY_MODIFY,删除该文件时显示ENTRY_DELETE
- 在WatchDir.java中选择“Debug As”–“Debug Configuration”,WatchDir类的用法是“java WatchDir [-r] dir”,-r的可选选项代表是否遍历子文件夹,dir代表待监控的文件夹。在Debug Configuration的Arguments中添加本地目录“D:\tmp”,点击Debug
在Linux中搭建samba服务
所用Linux主机是Centos6.8,samba服务的搭建参考该文。
安装所需组件:yum install samba samba-client
samba配置文件(/etc/samba/smb.cnf)如下:
#======================= Global Settings =====================================[global]# ----------------------- Network Related Options -------------------------## workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH## server string is the equivalent of the NT Description field## netbios name can be used to specify a server name not tied to the hostname workgroup = WORKGROUP server string = David Samba Server Version %v netbios name = DavidSamba# --------------------------- Logging Options -----------------------------## Log File let you specify where to put logs and how to split them up. log file = /var/log/samba/log.%m# ----------------------- Standalone Server Options ------------------------## Scurity can be set to user, share(deprecated) or server(deprecated) security = share#============================ Share Definitions ==============================[public] comment = Public Stuff path = /home/xdwang/tmp public = yes[homes] comment = Home Directories browseable = yes path = /smbshare public = yes writable = yes
启动samba服务:service smb start; service nmb start
4. 测试WatchDir对SMB目录的支持
修改刚才的Debug Configuration为smb路径,“\211.71.76.25\homes”,在Linux文件夹中创建并删除文件进行测试,发现NIO WatchDir默认已经支持了samba接口的文件监控。
参考
https://docs.oracle.com/javase/8/docs/technotes/guides/io/
http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html
0 0
- JAVA监控读取共享文件夹
- java使用smb读取共享文件夹
- java使用smb读取共享文件夹
- Java监控文件夹变化
- Java监控文件夹变化
- 虚拟机Apache共享Windows文件夹读取错误
- java创建文件夹并共享此文件夹
- Java读写Windows共享文件夹
- Java读写Windows共享文件夹
- Java读写Windows共享文件夹
- Java读写Windows共享文件夹
- Java递归文件夹读取文件
- java读取文件夹所有文件
- java读取远程共享文件
- java读取远程共享文件
- java 读取远程共享文件
- cmonitor v0.1 JAVA文件夹监控
- 监控某一个小文件夹的java程序
- linux之信号捕捉
- Android6.0运行时权限(二)之封装
- 预处器的对比——Sass、LESS和Stylus
- poj 1125 最短路
- 哈希模板(template)
- JAVA监控读取共享文件夹
- 两个fragment之间跳转
- 用C++编写的SOCKET服务端与客户端代码实例
- python 常用的Python内置函数
- Java FileNotFound异常但是文件明明存在
- Java常用工具类封装——String操作工具类
- 优先队列(二叉堆)模板(template)
- Eclipse 项目导航字体设置
- 【闲聊】那些“数学符号” 的英语发音