Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Temporäre Dateien wegsichern!
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum
View previous topic :: View next topic  
Author Message
achimh
n00b
n00b


Joined: 02 Sep 2006
Posts: 54
Location: Austria

PostPosted: Mon Dec 03, 2007 4:07 pm    Post subject: Temporäre Dateien wegsichern! Reply with quote

Hallo,

habe eine Frage, die sich aus meiner Arbeit heraus stellt.

Gibt es irgend eine Möglichkeit, Dateien die nur sehr kurz ins /tmp/ Verzeichnis geschrieben werden, irgendwie wegzusichern.
Manuell gehts mal nicht, weil die Datei wie gesagt nur angelegt wird, und eigentlich im fast selben Moment wieder gelöscht wird. Leider kann ich dieses Verhalten nicht beeinflussen, müsste mir allerdings den Inhalt anschauen.

Kann man /tmp/ irgendwie überwachen per perl oder sonst was und dann dementsprechende Aktionen setzen, falls die Datei angelegt wird?
Back to top
View user's profile Send private message
69719
l33t
l33t


Joined: 20 Sep 2004
Posts: 865

PostPosted: Mon Dec 03, 2007 5:11 pm    Post subject: Reply with quote

So richtig erkenne ich den sinn nicht? Was ist denn das problem, dass du in die temp files schauen mußt?
Back to top
View user's profile Send private message
think4urs11
Bodhisattva
Bodhisattva


Joined: 25 Jun 2003
Posts: 6659
Location: above the cloud

PostPosted: Mon Dec 03, 2007 6:46 pm    Post subject: Reply with quote

Ein regelmäßiges polling (per/bash-script mit regelmäßigem ls oder was auch immer) wäre unnütze Ressourcenverschwendung aber du kannst mit inotify dein /tmp überwachen und jede Datei die dort angelegt wird automatisch wegkopieren.

Siehe z.B. http://www.ende-der-vernunft.org/2006/02/02/mit-inotify-das-dateisystem-ueberwachen/
_________________
Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself
Back to top
View user's profile Send private message
achimh
n00b
n00b


Joined: 02 Sep 2006
Posts: 54
Location: Austria

PostPosted: Tue Dec 04, 2007 8:58 am    Post subject: Reply with quote

escor wrote:
So richtig erkenne ich den sinn nicht? Was ist denn das problem, dass du in die temp files schauen mußt?


hallo escor

ich arbeite mit einer proprietären netzwerkmanagement software, da werden laufend reports über performance usw. erstellt
die report engine benutzt intern ein eigenes datenformat, das die daten dementsprechend aus der datenbank auslest, berechnet und dies dann kurz wegspeichert und daraus ein csv oä. erstellt, ist das passiert werden die temporären daten gelöscht
ich weiss zwar wie diese temporären datenfiles grundsätzlich aussehen, allerdings würde ich es in ein paar speziellen fällen trotzdem gerne nachsehen können

danke Think4UrS11, jetzt weiss ich nach was ich suchen kann
Back to top
View user's profile Send private message
69719
l33t
l33t


Joined: 20 Sep 2004
Posts: 865

PostPosted: Tue Dec 04, 2007 3:48 pm    Post subject: Reply with quote

Da könnte dir dies eventuell auch weiter helfen, solange die software nicht ausgezogen wurde (strip), ansonsten müßte man mal an die adressen ran :)

Makefile (die vielen leerzeichen durch ein tab ersetzten)
Code:

OBJS = ununlink.o
BIN = ununlink.so

CC = cc
RM = rm -f

CFLAGS = -Wall -fPIC -march=i686
LDFLAGS = -ldl -shared

all: $(BIN)

$(BIN): $(OBJS)
        $(CC) $(OBJS) -o $(BIN) $(LDFLAGS)

clean:
        $(RM) $(OBJS) $(BIN)


ununlink.c
Code:

#define _GNU_SOURCE
#include <stdio.h>
#include <dlfcn.h>

#define SAVE_PREFIX "/tmp/tempfile_backup_"

int ( *org_unlink )( __const char *__name );
int ( *org_unlinkat )( int __fd, __const char *__name, int __flag );

int tmpcount = 0;

void backup( __const char *src ) {
        FILE *s, *d;
        char buffer[ 1024 ], dst[ 100 ];
        int count;

        printf( "saving tmp file %s to %s_%03d\n", src, SAVE_PREFIX, tmpcount );
        snprintf( dst, sizeof( dst ) - 1, "%s_%03d", SAVE_PREFIX, tmpcount++ );

        s = fopen( src, "rb" );
        if ( ! s )
                return;

        d = fopen( dst, "wb" );
        if ( ! d ) {
                fclose( s );
                return;
        }

        count = fread( buffer, 1, sizeof( buffer ), s );
        while ( count > 0 ) {
                fwrite( buffer, 1, count, d );
                count = fread( buffer, 1, sizeof( buffer ), s );
        }

        fclose( s );
        fclose( d );
}

int unlink( __const char *__name ) {
        if ( ! org_unlink )
                org_unlink = dlsym( RTLD_NEXT, "unlink" );

        backup( __name );

        return org_unlink( __name );
}

int unlinkat( int __fd, __const char *__name, int __flag ) {
        if ( ! org_unlinkat )
                org_unlinkat = dlsym( RTLD_NEXT, "unlinkat" );

        backup( __name );

        return org_unlinkat( __fd, __name, __flag );
}


einsatz
Code:

gendevel cpp # make
cc -Wall -fPIC -march=i686   -c -o ununlink.o ununlink.c
cc ununlink.o -o ununlink.so -ldl -shared
gendevel cpp # export LD_PRELOAD=./ununlink.so
gendevel cpp # echo test > testdatei
gendevel cpp # rm testdatei
saving tmp file testdatei to /tmp/tempfile_backup__000
gendevel cpp # cat /tmp/tempfile_backup__000
test
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum