从linux服务器中读取文件数据

问题描述

现有一个需求:在一台服务器上写日志文件,每当日志文件写到一定大小时,比如是1G,会将这个日志文件改名成另一个名字,并新建一个与原文件名相同的日志文件,再往这个新建的日志文件里写数据;要求写一个程序能实时地读取日志文件中的内容,并且不能写日志操作、重命名操作、不能修改日志文件的任何数据,保持日志文件的完整性。首先,这个问题在windows下几乎无解,因为一个程序打开了一个文件,再要对文件重命名是不可能的;而在Linux下,可以得到完美解决。因为Linux的文件系统有别于windows,Linux不使用文件名,而是使用inode号码来识别文件。现在的问题是,使用Apache的文件FTPClient读取文件时,不能保证你读取的数据文件会不会出现重命名等现象。请问大家,有什么好的解决思路吗?

解决方案

解决方案二:
看看log4j的配置说明吧已经实现了
解决方案三:
那它是使用ftp模式,取得的文件吗?
解决方案四:
@tianfang方便吗?加个QQ呗,362993181
解决方案五:
FTPClient支持列出目录下文件列表,你可以从文件列表中选择文件。“要求写一个程序能实时地读取日志文件中的内容”你这个要读哪个文件?app.logapp-20150310-01.logapp-20150310-02.log……app-20150310-99.logapp.log一直被写入,你应该要读取的已经修改过名字的文件,01.log等文件不会再改变。问题:不应该实时读取app.log,实时分析不采用文件方式;而是定时去检查是否有新app-date-nn.log服务器可以采用只读文件共享的方式把目录共享出来,映射到客户端本地的一个目录上,你不需要用ftpclient,只需本地文件读操作即可,共享目录请你们的IT支持一下。

时间: 2024-10-03 19:11:05

从linux服务器中读取文件数据的相关文章

解决-从linux服务器中读取文件数据

问题描述 从linux服务器中读取文件数据 现有一个需求: 在一台服务器上写日志文件,每当日志文件写到一定大小时,比如是1G,会将这个日志文件改名成另一个名字,并新建一个与原文件名相同的日志文件,再往这个新建的日志文件里写数据:要求写一个程序能实时地读取日志文件中的内容,并且不能写日志操作.重命名操作.不能修改日志文件的任何数据,保持日志文件的完整性. 首先,这个问题在windows下几乎无解,因为一个程序打开了一个文件,再要对文件重命名是不可能的:而在Linux下,可以得到完美解决.因为Lin

android-如何从服务器中读取 pdf 内容并保存在文件中?

问题描述 如何从服务器中读取 pdf 内容并保存在文件中? 我有一个服务器链接,我需要读取pdf内容.我使用的下面的代码,但是它以其它的格式给出结果. public String readPDF() throws Exception{ BufferedReader in = null; String page = """"; try { HttpClient client = new DefaultHttpClient(); HttpGet request = ne

io-java执行linux命令从linux服务器上读取log日志文件,按行读从指定字符串开始读

问题描述 java执行linux命令从linux服务器上读取log日志文件,按行读从指定字符串开始读 [INFO ] 2015-09-23 11:22:06,691 [threadPoolTaskExecutor-41] com.sto.pdaplatform.module.rediscommon.core.ParseObjectFactory.getParseObjFactory(ParseObjectFactory.java:27) >>> the original data is

Linux系统中的文件类型及文件扩展名详解

  Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文件类型中衡量的话,大多是常规文件(也被称为普通文件). 一. 文件类型 Linux文件类型常见的有:普通文件.目录文件.字符设备文件和块设备文件.符号链接文件等,现在我们进行一个简要的说明. 1. 普通文件 我们用 ls -lh 来查看某个文件的属性,可以看到有类似-rwxrwxrwx,值得注意

java如何修改linux服务器下txt文件,

问题描述 java如何修改linux服务器下txt文件, 在linux服务器下面,有个txt文件,里面有三条数据,如何修改指定的那一条数据,那如何定位到指定的数据?比如我想修改2 55 66 77这条数据怎么定位到这条数据?txt文件内容格式如下:1 22 33 442 55 66 773 88 99 781 yy uu pp2 jj kk hh1 rr tt ww2 ww qq ee3 qq ff gg 解决方案 http://blog.csdn.net/jiangxinyu/article/

将一块新硬盘添加到Linux服务器中

现有硬盘容量的不足经常困扰着 Linux http://www.aliyun.com/zixun/aggregation/13879.html">系统管理员,最常见的原因是不断膨胀的数据和数量不断增加的用户以及在找到替代以前 Linux 服务器还必须正常执行大量的任务. 本篇讲述了如何利用两种方式将硬盘添加到Linux系统中.第一种方式是,将文件夹从一个已满分区移动到另一个空的分区中,然后将文件夹目录链接到两块硬盘中.另一种方式是,利用Linux逻辑分区管理器(LVM)合并几个分区为一个分

图片-WebUploader中的uploadSuccess是自动调用的吗?怎么获取服务器中返回的数据?

问题描述 WebUploader中的uploadSuccess是自动调用的吗?怎么获取服务器中返回的数据? 5C WebUploader中的uploadSuccess是自动调用的吗?怎么获取服务器中返回的数据?我图片上传成功服务器也收到图片了,但是返回的数据前台接收不到,也没有执行uploadSuccess方法,这是怎么回事?各位大神,求助! 解决方案 http://fex.baidu.com/webuploader/doc/index.html#WebUploader_Uploader_eve

c# 循环从文本文档中读取一个数据,如何删除后继续循环

问题描述 做了个循环从文本文档中读取随机数据并显示在textbox中,如何去除显示出来的数据继续循环?就是说不能出现重复的数据,应该用什么语句删除掉该显示在textbox中的数据呢?我做出来的是把文档的内容全删掉了.麻烦高手给予解答. 解决方案 解决方案二:不懂..仅仅是个练习?还是什么具体的需求?为什么要随机数据显示到textbox?解决方案三:文件修改需要重写文件的,除非内存映射解决方案四:楼主贴现有的代码看看按理说应该一次性把文件内容都读到byte[]里,等处理好了再一次性写回去解决方案五

c# sr peek-关于C#中读取文件的语句

问题描述 关于C#中读取文件的语句 采用while循环如下: while (sr.Peek() > -1 ) { }: 为什么读不到文件最后一行,如何设置才能读到文件最后一行,谢谢~~~ 解决方案 FileStream fs = new FileStream("d:\ip.txt", FileMode.Open); StreamReader m_streamReader = new StreamReader(fs); string s = ""; while