Sziasztok,
van egy samba megosztasunk, amiben par fajl van elhelyezve. Letezik-e olyan program, amelyik emailt kuld, ha a fajlokat szerkesztettek (pl. meretuk valtozott) vagy ujakat hoztak letre? Legkenyelmesebb az lenne, ha egy adott konyvtartol lefele figyelne a konyvtartartalmakat es ha valaki pl felmasol vagy szerkeszt valamit, akkor kuld egy figyelmeztetot.
Koszonom
d
- 2077 megtekintés
Hozzászólások
Az inotify alapú eszközök között keresgélj. Például ilyen az incron.
- A hozzászóláshoz be kell jelentkezni
Koszi, incron-szeru dolgot kerestem.
--
[citation needed]
- A hozzászóláshoz be kell jelentkezni
Az incron mukodik, annyi gondom van, hogy a figyelmezteto email negy peldanyban jon meg.
incrontab:
/konvtar1/konyvtar2/ IN_MODIFY mail -s targy email_cim_2
alternativa:
/konyvtar1/konyvtar2/ IN_MODIFY /home/user/mail
ennek a tartalma: echo "szoveg" | mail -s targy email_cim_2
Ha parancssorbol kuldok emailt, ugy minden gond nelkul mukodik a dolog, a /home/user/mail szkript is lefut, de mihelyt beteszem az incrontabba, a levelet negyszer kapom meg.
A /konyvtar1/konyvtar2-ben levo fajl szerkesztesekor a kovetkezo bejegyzes jon letre a maillogban:
link.
Valaki tudna segiteni?
--
[citation needed]
- A hozzászóláshoz be kell jelentkezni
"a figyelmezteto email negy peldanyban jon meg"
Valószínűleg az a program, amelyik ír a file-ba, négy alkalommal teszi ezt.
Biztos hogy nem elég neked az IN_CLOSE_WRITE?
- A hozzászóláshoz be kell jelentkezni
Azzal is probaltam, de most 6 emailt kaptam. Hogy oszinte legyek, nem latom a kulonbseget az in_modify es in_close_write kozott.
vimmel es libreoffice-szal probaltam szerkeszteni, de az emailek szama ugyanannyi akar in_modify, akar in_close_write van az incrontabban.
szerk: ugy tunik, ha csak megnyitom a fajlt, akkor jon az elso. Ha szerkesztem es mentem, akkor negy, ha kilepek, akkor megint egy. Ha csak megnyitom es bezarom, akkor ketto jon (egy megnyitaskor, egy ha bezarom). Bug?
--
[citation needed]
- A hozzászóláshoz be kell jelentkezni
Ideiglenes file-ok. Például a vim-nél .swp és .swpx.
Íme:
# strace -s 150 vim /tmp/proba/a 2>/tmp/vimstrace ; egrep '^open\("/tmp/proba' /tmp/vimstrace
open("/tmp/proba/a", O_RDONLY) = 3
open("/tmp/proba/.a.swp", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/tmp/proba/.a.swp", O_RDWR|O_CREAT|O_EXCL, 0600) = 4
open("/tmp/proba/.a.swpx", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/tmp/proba/.a.swpx", O_RDWR|O_CREAT|O_EXCL, 0600) = 5
open("/tmp/proba/.a.swp", O_RDWR|O_CREAT|O_EXCL, 0600) = 4
open("/tmp/proba/a", O_RDONLY) = 3
open("/tmp/proba/a", O_WRONLY|O_CREAT|O_TRUNC, 0644) = 3
#
És éppen négy, ahogy mondtad.
- A hozzászóláshoz be kell jelentkezni
Makacs dolog ez. Most az incrontabban ez van:
/konyvtar1/konyvtar2/ IN_CLOSE_WRITE touch /konyvtar1/tmp/a
/konyvtar1/tmp/ IN_CREATE szkript
A szkript ket sora:
echo "szoveg" | mail -s "targy" emailcim
rm /konyvtar1/tmp/a
Sajna igy is negy email megy ki. Az rm sor nelkul csak egyszer, de akkor a kovetkezo alkalommal mar ugye nem kuld levelet. Van valami egyszeru megoldas, hogy csak egy email menjen ki?
--
[citation needed]
- A hozzászóláshoz be kell jelentkezni
Az előbbi írás arról szólt, hogy ha a vim egy file szerkesztésekor 3 file-t ír 4 megnyitás alatt, akkor természetszerűleg 4-szer fog az IN_CLOSE_WRITE lefutni. Ha például az ideiglenes file-okra nem akarsz levet küldeni, akkor egyszerűen egy feltétvizsgálat kell, hogy a filenév illeszkedik-e mondjuk a '^\.' mintára. Egyébként egyszerűbben megfognád a dolgot, ha a levél tárgyába beletennéd a módosított file nevét, és máris látnád, hogy miket kell még a feltételvizsgálatba bevenni.
- A hozzászóláshoz be kell jelentkezni
Elvileg feltetelvizsgalat sem kellene, mert egy vagy legfeljebb egy par fajl szerkeszteserol lenne szo. Kiprobaltam, ha explicit megadom a /konyvtar1/konyvtar2/fajlnevet, akkor is 4 megy ki.
--
[citation needed]
- A hozzászóláshoz be kell jelentkezni
"akkor is 4 megy ki."
Pontosan mikor? Milyen parancsot adsz ki, amikor egy file-t szerkesztesz?
"Elvileg feltetelvizsgalat sem kellene"
Akkor viszont elfogadod azt, hogy a "vi probafile" parancsra meg fogja nyitni a "probafile"-t, a ".probafile.swp" és a ".probafile.swpx" file-okat, és ezekről mindegyik írásakor (IN_MODIFY) vagy lezárásakor (IN_CLOSE_WRITE) levelet fogsz kapni, szám szerint négyet, ahogy a fenti strace kiementben látod. A feltételvizsgálattal kiszűrhetnéd az ideiglenes file-okról (".probafile.swp" és a ".probafile.swpx") szóló leveleket. De ha nem szeretnél a filenévre feltételvizsgálatot,akkor miért baj, hogy négy? Ennyiszer ír (IN_MODIFY) vagy zár be (IN_CLOSE_WRITE) a vim.
Kipróbáltam, és nálam teljesen jól működik:
# cat /etc/incron.d/proba
/tmp/proba IN_MODIFY /tmp/incronscript $@ $#
#
# cat /tmp/incronscript
#!/bin/bash
[[ ! "$2" =~ ^\..+ ]] && [[ ! "$2" =~ ^.+~$ ]] && /usr/bin/mail -s "$1"/"$2" cimzett@mail.cime <<EOF
$1/$2 megvaltozott
EOF
#
- A hozzászóláshoz be kell jelentkezni
nagyon ronda megoldás, de esetleg egy késleltetett törlés?
- A hozzászóláshoz be kell jelentkezni
Az en otletem meg rondabb volt: 4-bol harom megy a /dev/nullba, az a maradek egy meg a cimzetteknek :>
Nem tudok szkriptelni, ugyhogy ezekkel az otletekkel meg varok.
--
[citation needed]
- A hozzászóláshoz be kell jelentkezni
Eseménygyűjtés.
Amikor az első esemény történik, akkor valami file touch-olással jelzed ezt.
De nem küldesz rögtön mailt. Hanem majd csak akkor, ha egy egész másodpercen keresztül nem volt több touch.
Ez meg lehet úgy csinálni, hogy egy script folyamatosan nézi ezt a touch-olós könyvtárat (közben sleep 1), és ha kétszer egymás után ugyanaz a timestamp a touch file-on, akkor nem változott legalább 1 másodperce (az 1 emelhető, lehet az 2-3-4-5 is). Na akkor lehet levelet küldeni.
- A hozzászóláshoz be kell jelentkezni
Esetleg egy script, ami letarolja a legutobb kikuldott md5sum-jat, es legkozelebb megnezi, hogy azonos-e azzal. Ha azonos, akkor csak megnyitottak, de nem modosult, felesleges mailt kuldeni.
--
Az emberek azt állítják, hogy múlik az idő, az idő viszont csak mosolyog, mert látja, hogy az emberek múlnak. - tibeti közmondás
- A hozzászóláshoz be kell jelentkezni
feliratkozok
- A hozzászóláshoz be kell jelentkezni
én is
- A hozzászóláshoz be kell jelentkezni
http://iwatch.sourceforge.net/index.html
A collegam irta, ugyhogy muszaj reklamoznom ;)
(debian package van a distro-ba)
- A hozzászóláshoz be kell jelentkezni
Ez jól néz ki. Kipróbálom a hétvégén, köszi! A kollegádnak pedig gratula! :)
-pilisig-
- A hozzászóláshoz be kell jelentkezni
Sub
- A hozzászóláshoz be kell jelentkezni
sub
- A hozzászóláshoz be kell jelentkezni