Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
skript das dateiänderungen erkennt

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Jochen2
Gast





BeitragVerfasst am: 23. Sep 2002 22:08   Titel: skript das dateiänderungen erkennt

hallo,
ist es schwierig ein skript
zu bekommen oder zu schreiben, welches
ständig beobachtet ob eine oder mehrere Dateien verändert wurden, sobald eine Datei
verändert worden ist sollte ein bashbefehl ausgeführt werden. Wichtig dabei ist,
daß die Dateien nicht z.b. jede 5 min oder 3 sek. auf veränderungen geprüft werden, sondern in Echtzeit!
weiß da jemand was?
danke Jo
 

thorsten



Anmeldungsdatum: 23.01.2002
Beiträge: 72

BeitragVerfasst am: 24. Sep 2002 6:43   Titel: Re: skript das dateiänderungen erkennt

In Echtzeit wirst du mit einem Script nicht weiterkommen, was genau hast du denn vor?

Gruß

Thorsten
 
Benutzer-Profile anzeigen Private Nachricht senden

hjb
Pro-Linux


Anmeldungsdatum: 15.08.1999
Beiträge: 3236
Wohnort: Bruchsal

BeitragVerfasst am: 24. Sep 2002 12:58   Titel: Re: skript das dateiänderungen erkennt

Hi!

Mit Kernel 2.4 sollte so was mit File Leases gehen. Auf Freshmeat habe ich kürzlich ein (Demo?)-Programm gesehen, das dieses Feature nutzt. Ich weiß den Namen aber nicht mehr. Kenne auch auswendig keine Doku dazu. Such mal bei Google.

Gruß,
hjb
_________________
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger

tkortkamp



Anmeldungsdatum: 08.04.2001
Beiträge: 143
Wohnort: Bremen

BeitragVerfasst am: 24. Sep 2002 18:06   Titel: Re: skript das dateiänderungen erkennt

Hi!

Man kann Verzeichnisse mit FAM in Echtzeit überwachen. Hier ist ein entsprechendes C-Programm, dass ein Verzeichniss auf Dateiveränderungen überprüft und ggf. ein Skript/Programm ausführt:
code:

/*
* monitor.c -- monitor arbitrary file or directory
* using fam
*/

/*
* Modified by Tobias Kortkamp
*
*
*/



#include <fam.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <sys/select.h>

/* event_name() - return printable name of fam event code */

void checkEvent(int code, const char *filename)
{
/* Den selben Code unten kannst du mehrmals kopieren und entsprechend den Wert FAMChanged in eines der folgenden Sache ändern:
FAMChanged -- Eine Datei wurde verändert
FAMDeleted -- Eine Datei wurde gelöscht
FAMCreated -- Eine Datei wurde erstellt
FAMMoved -- Datei wurde verschoben
*/
if(code == FAMChanged) /* Eine Datei wurde verändert */
{
system("pfad/zu/bash/skript");
}
}

void main(int argc, char *argv[])
{
int i, nmon, rc, fam_fd;
FAMConnection fc;
FAMRequest *frp;
struct stat status;
FAMEvent fe;
fd_set readfds;

frp = malloc(argc * sizeof *frp);
if (!frp)
{
perror("malloc");
exit(1);
}

/* Open fam connection */

if ((FAMOpen(&fc)) < 0)
{
perror("fam");
exit(1);
}

/* Request monitoring for each program argument */
for(nmon = 0, i = 1; i < argc; i++)
{
if (stat(argv[ i], &status) < 0)
{
perror(argv[ i]);
status.st_mode = 0;
}
if((status.st_mode & S_IFMT) == S_IFDIR)
rc = FAMMonitorDirectory(&fc, argv[i ], frp + i, NULL);
else
rc = FAMMonitorFile(&fc, argv[ i], frp + i, NULL);
if(rc < 0)
{
perror("FAMMonitor failed");
continue;
}
nmon++;
}
if(!nmon)
{
fprintf(stderr, "Nothing monitored.
");
exit(1);
}

/* Initialize select data structure */

fam_fd = FAMCONNECTION_GETFD(&fc);
FD_ZERO(&readfds);
FD_SET(fam_fd, &readfds);

/* Loop forever. */

while(1)
{
if(select(fam_fd + 1, &readfds, NULL, NULL, NULL) < 0)
{
perror("select failed");
exit(1);
}
if(FD_ISSET(fam_fd, &readfds))
{
if(FAMNextEvent(&fc, &fe) < 0)
{
perror("FAMNextEvent");
exit(1);
}
checkEvent(fe.code, fe.filename);
}
}
}



Du musst dafür FAM installiert haben. Kompilieren musst du das Programm mit gcc -o monitor monitor.c -lfam
Starten tust du es dann mit ./monitor /pfad/zu/dem/zu/überwachenden/verzeichnis/ &

c ya,
Tobias
_________________
dude i'm pretty damn sure you could script somebody back to life
 
Benutzer-Profile anzeigen Private Nachricht senden

Jochen2
Gast





BeitragVerfasst am: 24. Sep 2002 20:24   Titel: Re: skript das dateiänderungen erkennt

die ganze Sache soll,
für eine Backupsystem sein.
Also ich gebe ein Netzlaufwerk über
Samba frei und wenn ein benutzer
dort etwas speichert soll nach dem
speichervorgang sofort per rsync
die Datei archiviert werden...

ciao Jo
 

Jochen2
Gast





BeitragVerfasst am: 24. Sep 2002 20:28   Titel: Re: skript das dateiänderungen erkennt

ups...
habe ganz vergessen mich zu bedanken
für das skript ...
bin gerade dabei es auszuprobieren...

ciao Jo
 

Jochen2
Gast





BeitragVerfasst am: 24. Sep 2002 20:45   Titel: Re: skript das dateiänderungen erkennt

Ich habe auf meinem redhat 7.1
system mal die sache probiert.
Fam ist installiert.
Das Skript habe ich kompiliert
jedoch brachte er folgende Meldung:

monitor.c: In function `main':
monitor.c:37: warning: return type of `main' is not `int'

Er hat jedoch trotzdem die ausführbare Datei
monitor erstellt. Ist das normal?
Jetzt würde mich noch interessieren, wo ich den Pfad der zu überwachenden Dateien angeben muss?

danke Jo
 

jensemann



Anmeldungsdatum: 08.12.2001
Beiträge: 189
Wohnort: Krefeld (obwohl mir Kölsches Bier lieber ist)

BeitragVerfasst am: 25. Sep 2002 18:24   Titel: Re: skript das dateiänderungen erkennt

Hi

Ja das ist normal. Das ist nur warnung vom gcc. Mit gcc-3 liese sich das aber nichtmehr kompilieren.

wenn du
void main(int argc, char *argv[])

durch
int main(int argc, char *argv[])

ersetzt sollte die warnung weg sein.

Mfg jensemann
_________________
Hilfe bei LFS Problemen: <a href="http://www.lfsforum.org" target="_blank"><!--auto-->http://www.lfsforum.org</a><!--auto-->
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen

Jochen2
Gast





BeitragVerfasst am: 25. Sep 2002 18:48   Titel: Re: skript das dateiänderungen erkennt

jiipppi ich habs zum laufen gebracht :)

danke nochmal Jo
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy