kontrola obsahu uctu na FTP serveru
Michal Kubecek
mike na mk-sys.cz
Pondělí Listopad 4 12:02:51 CET 2002
On Mon, Nov 04, 2002 at 11:44:36AM +0100, Tomas Vida wrote:
> mam na RH7.x proftpd server. Je na nem nekolik uctu, a ja potrebuji
> kontrolovat obsah konkretniho uctu. V pripade, ze se na nem objevi novy
> soubor, tak aby mi poslal sms, mail nebo neco podobneho.
> Mozna by to mohl byt script, ktery by kontroloval urcity adresar,
> pamatoval si obsah, a v pripade zmeny by to hlasil. Mohlo by se to
> spoustet cronem....
> Asi to jde napsat, ale ja to neumim.
>
> Muze mi nekdo pomoct? Nevideli jste nekde neco podobneho?
Kdysi jsem něco podobného potřeboval a řešil jsem to sledováním logu.
Našel jsem ten zdroják, přikládám ho níže, ale je to strašně prasácky
napsané, takže ho berte spíš jen jako volnou inspiraci a ukázku, jak
nepsat programy :-).
Michal Kubeček
---------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <unistd.h>
inline void skip(char*& p, int n)
{
for (int j=0; j<n; j++) {
while(*p && *p!=' ') p++;
while(*p && *p==' ') p++;
}
}
int main(int argc, char* argv[])
{
char* p;
char Buff[256];
char cmd[256];
char *fn;
FILE* fp = fopen("/var/log/xferlog", "r");
if (!fp) return 1;
fseek(fp, 0, SEEK_END);
while(1) {
sleep(1);
if (!fgets(Buff, 256, fp)) continue;
p = Buff; skip(p, 8);
fn = p; while(*p && !isspace(*p)) p++; if (*p) *p++ = ' ';
while(*p && isspace(*p)) p++;
skip(p, 2);
if (*p != 'i') continue;
printf("-- [%s]\n", fn); fflush(stdout);
if (!strncmp(fn, "/home/ftp/./incoming/m1/", 24)) {
printf("--> m1\n"); fflush(stdout);
sprintf(cmd, "/home/cbfstat/bin/manage m1 /home/ftp%s", fn+11);
system(cmd);
} else if (!strncmp(fn, "/home/ftp/./incoming/w1/", 24)) {
printf("--> w1\n"); fflush(stdout);
sprintf(cmd, "/home/cbfstat/bin/manage w1 /home/ftp%s", fn+11);
system(cmd);
}
sleep(1);
}
return 0;
}
--------------------------------------------------------------------------
Další informace o konferenci Linux