2007-01-26 20:24:14

by Khai Doan

[permalink] [raw]
Subject: How to create a fixed length character/block device/file ?

Sorry if this is the wrong list. I've search google, but have not found
solution to my problem.

I have a long running application which split out lots of debugging
information. I can't redirect the output to a regular file because that
file would grow and eat up all the diskspace. I can't redirect to
/dev/null. What I want is the last 1MB of the output before my
application terminated. So I need to create a special file / device on
the system. Please tell me if there is an existing device that I can
use, or point me in the right direction so that I can role my own device.

Thanks
Khai Doan


2007-01-26 20:50:00

by H. Peter Anvin

[permalink] [raw]
Subject: Re: How to create a fixed length character/block device/file ?

Khai Doan wrote:
> Sorry if this is the wrong list. I've search google, but have not found
> solution to my problem.
>
> I have a long running application which split out lots of debugging
> information. I can't redirect the output to a regular file because that
> file would grow and eat up all the diskspace. I can't redirect to
> /dev/null. What I want is the last 1MB of the output before my
> application terminated. So I need to create a special file / device on
> the system. Please tell me if there is an existing device that I can
> use, or point me in the right direction so that I can role my own device.
>

Create a FIFO (see "man mkfifo"), and write a program that reads the
FIFO and retains the information you're interested in.

-hpa

2007-01-26 20:50:36

by H. Peter Anvin

[permalink] [raw]
Subject: Re: How to create a fixed length character/block device/file ?

Come to think of it, you can just use "tail" as the application that
reads the FIFO.

-hpa

2007-01-26 20:50:42

by Phillip Susi

[permalink] [raw]
Subject: Re: How to create a fixed length character/block device/file ?

Khai Doan wrote:
> Sorry if this is the wrong list. I've search google, but have not found
> solution to my problem.
>
> I have a long running application which split out lots of debugging
> information. I can't redirect the output to a regular file because that
> file would grow and eat up all the diskspace. I can't redirect to
> /dev/null. What I want is the last 1MB of the output before my
> application terminated. So I need to create a special file / device on
> the system. Please tell me if there is an existing device that I can
> use, or point me in the right direction so that I can role my own device.

myapp | tail -c1048576 > logfile

2007-01-26 21:05:05

by Jiri Slaby

[permalink] [raw]
Subject: Re: How to create a fixed length character/block device/file ?

Phillip Susi napsal(a):
> Khai Doan wrote:
>> Sorry if this is the wrong list. I've search google, but have not
>> found solution to my problem.
>>
>> I have a long running application which split out lots of debugging
>> information. I can't redirect the output to a regular file because
>> that file would grow and eat up all the diskspace. I can't redirect
>> to /dev/null. What I want is the last 1MB of the output before my
>> application terminated. So I need to create a special file / device
>> on the system. Please tell me if there is an existing device that I
>> can use, or point me in the right direction so that I can role my own
>> device.
>
> myapp | tail -c1048576 > logfile

AFAIK this will output the file after the app termination. He wants to know the
log before that.

Just write your own reader which will output last meg in some intervals...

regards,
--
http://www.fi.muni.cz/~xslaby/ Jiri Slaby
faculty of informatics, masaryk university, brno, cz
e-mail: jirislaby gmail com, gpg pubkey fingerprint:
B674 9967 0407 CE62 ACC8 22A0 32CC 55C3 39D4 7A7E

2007-01-26 21:23:41

by Alan

[permalink] [raw]
Subject: Re: How to create a fixed length character/block device/file ?

On Fri, 26 Jan 2007 12:10:00 -0800
Khai Doan <[email protected]> wrote:

> Sorry if this is the wrong list. I've search google, but have not found
> solution to my problem.
>
> I have a long running application which split out lots of debugging
> information. I can't redirect the output to a regular file because that
> file would grow and eat up all the diskspace. I can't redirect to
> /dev/null. What I want is the last 1MB of the output before my
> application terminated.

Just pipe the output into a program or perl script which does this. You
don't need a device file.