On Wed, May 15, 2002 at 11:30:14AM +0200, Misiek wrote: > Witam. > Problem jest taki: > Mamy udostepnione konto ftp dla klientow, moga tam wrzucac dla nas rozne > pliki. Chcialbym zrobic cos takiego, ze w momencie, kiedy w okreslonym > katalogu cos sie zmieni (a zmiana moze byc dowolna moze przybyc plik > katalog, plik w katalogu, katalog w katalogu itp) dostaje o maila z > informacja, ze cos sie zmienilo. > I pytanie: Czy jest nadzedzie w linuxie, ktore udostepnia taka funkcje? > Jezeli nie ma to zrobie skrypt i mam pomysl taki, aby wrzucic do crona > skrypt ktory rbi cos takiego np co 10 minut: > 1. listuje do spodu folder udostepniony klientom > 2. porownuje jego zawartosc z poprzednim listingiem > 3. jezeli sie rozni to posyla maila z informacja co sie zmienilo > > Nie wiem czy to zadziala i jak zadziala, bo nie mam zbyt wielkiej praktyki w > pisaniu skryptow w bashu. Czy mozna ten schemat uepszyc, ew jakas > podpowiedz?
Kiedyś napisałem coś takiego. Nie jest to może optymalne ale działa od trzech lat bez problemów. Można to zrobić o wiele prościej korzystając z find /katalog -ctime. #!/bin/sh # najpierw zmień nazwę staremu plikowi NEWFILE=/var/spool/naswietlanie/pliki.new OLDFILE=/var/spool/naswietlanie/pliki.old DIFFILE=/var/spool/naswietlanie/pliki.dif SENDMAIL=/usr/sbin/sendmail GREPINFILE=/tmp/grep.in GREPOUTFILE=/tmp/grep.out MAILFILE=/tmp/mail.out # przenieś stare dane mv ${NEWFILE} ${OLDFILE} # wyszukaj pliki w katalogu find /var/naswietlanie -name '*' -print > ${NEWFILE} # znajdź różnice diff ${OLDFILE} ${NEWFILE} > ${DIFFILE} # skasowane pliki grep '<' ${DIFFILE} > ${GREPOUTFILE} # nowe pliki grep '>' ${DIFFILE} >> ${GREPINFILE} if [ -s ${GREPINFILE} -o -s ${GREPOUTFILE} ]; then echo "To: [EMAIL PROTECTED]" > ${MAILFILE} echo "Subject: Zmiany w katalogu /var/naswietlanie" >> ${MAILFILE} echo -n "Raport z dnia: " >> ${MAILFILE} date >> ${MAILFILE} echo "=================================================================" >> ${MAILFILE} echo "Skasowane pliki:" >> ${MAILFILE} cat ${GREPOUTFILE} >> ${MAILFILE} echo "=================================================================" >> ${MAILFILE} echo "Nowe pliki:" >> ${MAILFILE} cat ${GREPINFILE} >> ${MAILFILE} echo "=================================================================" >> ${MAILFILE} echo "" >> ${MAILFILE} echo "Wiadomość utworzona przez automat." >> ${MAILFILE} cat ${MAILFILE} | ${SENDMAIL} -oi -t -f [EMAIL PROTECTED] fi rm ${GREPOUTFILE} ${GREPINFILE} if [ -e ${MAILFILE} ]; then rm ${MAILFILE} fi eloy -- [EMAIL PROTECTED] Dark star why do you run from me Dark star why don't you kill me -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]