|
| shell script hjælp Fra : Michael Andreasen |
Dato : 05-01-03 01:27 |
|
Hvordan undersøger jeg alle filer der hedder f.eks.
/home/vpopmail/.qmail-*
om 1 linie indeholder | whatever
Årsagen skal findes i at qmailadmin ødelægger min pips til odeiavir samt
spamassassin
Er der nogen der kan hjælpe mig lidt på rette spor?
Mvh
Michael
| |
Jacob Bunk Nielsen (05-01-2003)
| Kommentar Fra : Jacob Bunk Nielsen |
Dato : 05-01-03 01:33 |
|
"Michael Andreasen" <maskinen2000@hotmail.com> writes:
> Hvordan undersøger jeg alle filer der hedder f.eks.
>
> /home/vpopmail/.qmail-*
>
> om 1 linie indeholder | whatever
ls /home/vpopmail/.qmail-*|xargs grep '|'
?
Jeg er ikke helt klar over hvad det er du vil. Det har sikkert noget
at gøre med at jeg intet kender til Qmail.
--
Jacob - www.bunk.cc
An evil mind is a great comfort.
| |
Michael Andreasen (05-01-2003)
| Kommentar Fra : Michael Andreasen |
Dato : 05-01-03 01:55 |
|
"Jacob Bunk Nielsen" <spam@bunk.cc> wrote in message
news:spamdrop+m3of6w77vs.fsf@paven.bunk.cc...
> "Michael Andreasen" <maskinen2000@hotmail.com> writes:
>
> > Hvordan undersøger jeg alle filer der hedder f.eks.
> >
> > /home/vpopmail/.qmail-*
> >
> > om 1 linie indeholder | whatever
>
> ls /home/vpopmail/.qmail-*|xargs grep '|'
> Jeg er ikke helt klar over hvad det er du vil. Det har sikkert noget
> at gøre med at jeg intet kender til Qmail.
Det er fordi jeg i /home/vpopmail/domains/* har en .qmail-default fil pr.
virtuelt domain.. denne fil ser normalt sådan her ud:
| /home/vpopmail/bin/vdelivermail ''
/home/vpopmail/domains/foo.dk/postmaster
Men mine versioner *skal* se sådan her ud:
| odeiavir
| spamassassin | /home/vpopmail/bin/vdelivermail ''
/home/vpopmail/domains/5mhz.dk/postmaster
Men desværre så fjerner qmailadmin (email administrations web tingest) både
den første og anden pipe. Så jeg ville undersøge filerne via cron og hvis
mine pipes var fjernet så sætte dem ind igen via scriptet.
Mvh
Michael
| |
Jacob Bunk Nielsen (05-01-2003)
| Kommentar Fra : Jacob Bunk Nielsen |
Dato : 05-01-03 02:17 |
|
"Michael Andreasen" <maskinen2000@hotmail.com> writes:
> Det er fordi jeg i /home/vpopmail/domains/* har en .qmail-default fil pr.
> virtuelt domain.. denne fil ser normalt sådan her ud:
OK, skal du så ikke gøre noget i stil med:
for FILE in $(find /home/yadayada -name .qmail-*); do
FOO=$(head -n 2 ${FILE}|egrep -c "^|")
if [ ${FOO} != 2 ]; then
echo ${FILE}
fi
done
Det kræver selvfølgelig at du kører BASH, og det skulle gerne udskrive
filnavnene på de filer hvor de første to linjer ikke starter med
'|'. Tilpas selv efter behov.
> Men desværre så fjerner qmailadmin (email administrations web tingest) både
> den første og anden pipe. Så jeg ville undersøge filerne via cron og hvis
> mine pipes var fjernet så sætte dem ind igen via scriptet.
Er qmailadmin sådan noget closed source? For så er det vel lettere
blot at rette fejlen i koden til qmailadmin?
--
Jacob - www.bunk.cc
Every time I lose weight, it finds me again!
| |
Michael Andreasen (05-01-2003)
| Kommentar Fra : Michael Andreasen |
Dato : 05-01-03 02:26 |
|
"Jacob Bunk Nielsen" <spam@bunk.cc> wrote in message
news:spamdrop+m3k7hk75vi.fsf@paven.bunk.cc...
> for FILE in $(find /home/yadayada -name .qmail-*); do
> FOO=$(head -n 2 ${FILE}|egrep -c "^|")
> if [ ${FOO} != 2 ]; then
> echo ${FILE}
> fi
> done
>
> Det kræver selvfølgelig at du kører BASH, og det skulle gerne udskrive
> filnavnene på de filer hvor de første to linjer ikke starter med
> '|'. Tilpas selv efter behov.
Ok 1000 tak.. jeg kigger lidt på det her du forslår og ser om jeg kan få det
til at spille.
> Er qmailadmin sådan noget closed source? For så er det vel lettere
> blot at rette fejlen i koden til qmailadmin?
Nej qmailadmin er skal OpenS ( www.inter7.com/qmailadmin ) Men jeg har svært
nok ved shell scripts - tør slet ikke begynde at tænke i C - det har jeg
slet ikke nok forstand på :)
Mvh
Michael Andreasen
p.s. 1000 tak for hjælpen :)
| |
Michael Andreasen (05-01-2003)
| Kommentar Fra : Michael Andreasen |
Dato : 05-01-03 02:36 |
|
"Michael Andreasen" <maskinen2000@hotmail.com> wrote in message
news:av81im$28t$1@sunsite.dk...
> > Er qmailadmin sådan noget closed source? For så er det vel lettere
> > blot at rette fejlen i koden til qmailadmin?
Inspireret af dit ? om open source har jeg lige hentet sorces og i filen
user.c fandt jeg 3 følgende passager, som jeg tror er der hvor den skriver
til denne fil:
Her er 1 af dem:
set_remote_catchall_now()
{
FILE *fs;
if ( (fs = fopen(".qmail-default", "w")) == NULL ) {
fprintf(actout,"%s %s<br>\n", get_html_text("144"), ".qmail-default");
} else {
fprintf(fs,"| %s/bin/vdelivermail '' %s\n",VPOPMAILDIR,Newu);
fclose(fs);
}
show_users(Username, Domain, Mytime);
exit(0);
}
Det ser jo egentligt meget simpelt ud.. Selvom jeg aldrig har rodet i C kode
før, så ligner det bare at jeg skal have noget i denne retning.
} else {
fprintf(fs,"| odeiavir);
fprintf(fs,"| spamassassin | %s/bin/vdelivermail ''
%s\n",VPOPMAILDIR,Newu);
fclose(fs);
Er der nogen med en smule C viden der kan af/bekræftige om jeg er på rette
spor
Mange tak for idéen til dette. Hvis det virker så er det godt nok 100x mere
smart end at køre et script via cron hvert 2. minut :)
Mvh
Michael
| |
Jacob Bunk Nielsen (05-01-2003)
| Kommentar Fra : Jacob Bunk Nielsen |
Dato : 05-01-03 02:47 |
|
"Michael Andreasen" <maskinen2000@hotmail.com> writes:
> fprintf(fs,"| odeiavir);
> fprintf(fs,"| spamassassin | %s/bin/vdelivermail ''
> %s\n",VPOPMAILDIR,Newu);
> fclose(fs);
For din egen overskueligheds skyld (og for at rette en enkelt fejl):
fprintf(fs, "| odeiavir\n"); /* Den har jeg selv lavet */
fprintf(fs, "| spamassassin"); /* Den har jeg ogsaa selv lavet */
fprintf(fs, " | %s/bin/vdelivermail '' %s\n",VPOPMAILDIR,Newu);
fclose(fs);
> Er der nogen med en smule C viden der kan af/bekræftige om jeg er på rette
> spor
Nu har jeg jo ikke læst resten af sovsen, men det så næsten helt
rigtigt ud. Hvorfor prøver du ikke at se om skidtet oversætter og
tester det på din testserver?
--
Jacob - www.bunk.cc
Processes running slowly due to weak power supply
| |
Michael Andreasen (05-01-2003)
| Kommentar Fra : Michael Andreasen |
Dato : 05-01-03 02:57 |
|
"Jacob Bunk Nielsen" <spam@bunk.cc> wrote in message
news:spamdrop+m3fzs874gp.fsf@paven.bunk.cc...
> For din egen overskueligheds skyld (og for at rette en enkelt fejl):
> Nu har jeg jo ikke læst resten af sovsen, men det så næsten helt
> rigtigt ud. Hvorfor prøver du ikke at se om skidtet oversætter og
> tester det på din testserver?
Jo tak.. jeg er netop ved at færdig gøre en testmaskine.. så afprøver jeg
det..
vedr.:
> fprintf(fs, "| spamassassin"); /* Den har jeg ogsaa selv lavet */
> fprintf(fs, " | %s/bin/vdelivermail '' %s\n",VPOPMAILDIR,Newu);
så er jeg nød til at gøre således:
> fprintf(fs, " | spamassassin | %s/bin/vdelivermail ''
%s\n",VPOPMAILDIR,Newu);
Det skyldes simpelthen at hvis jeg har spamassassin i selvstændig linie, så
virker det ikke. Noget som tog mig lang tid at finde ud ad iøvrigt. For
fuldstændighedens skyld (hvis nogle andre skulle være intereseret i denne
metode) så er vpopmail patchet med seekable patch der gør denne metode med
flere pipes i samme linie muligt.
1000 tak - jeg vender tilbage med testresultatet
Mvh
Michael Andreasen
| |
Jacob Bunk Nielsen (05-01-2003)
| Kommentar Fra : Jacob Bunk Nielsen |
Dato : 05-01-03 03:02 |
|
"Michael Andreasen" <maskinen2000@hotmail.com> writes:
>> fprintf(fs, "| spamassassin"); /* Den har jeg ogsaa selv lavet */
>> fprintf(fs, " | %s/bin/vdelivermail '' %s\n",VPOPMAILDIR,Newu);
>
> så er jeg nød til at gøre således:
>
>> fprintf(fs, " | spamassassin | %s/bin/vdelivermail ''
> %s\n",VPOPMAILDIR,Newu);
Nej!
Den første fprintf() skriver ikke "\n" (new line), så den linje der
bliver skrevet ser ud som:
| spamassassin | VPOPMAILDIR/bin/vdelivermail '' Newu
Hvor indholdet af VPOPMAILDIR og Newu selvfølgelig er substitueret ind
passende steder
Det er udelukkende et spørgsmål om hvor mange kald til fprintf() du
får og hvor overskuelig din kode bliver.
> 1000 tak - jeg vender tilbage med testresultatet
Ja, gør endelig det.
--
Jacob - www.bunk.cc
Where are the calculations that go with a calculated risk?
| |
Michael Andreasen (05-01-2003)
| Kommentar Fra : Michael Andreasen |
Dato : 05-01-03 14:03 |
|
"Jacob Bunk Nielsen" <spam@bunk.cc> wrote in message
news:spamdrop+m3bs2w73t0.fsf@paven.bunk.cc...
> "Michael Andreasen" <maskinen2000@hotmail.com> writes:
>
> >> fprintf(fs, "| spamassassin"); /* Den har jeg ogsaa selv lavet */
> >> fprintf(fs, " | %s/bin/vdelivermail '' %s\n",VPOPMAILDIR,Newu);
> >
> > så er jeg nød til at gøre således:
[cut]
> > 1000 tak - jeg vender tilbage med testresultatet
>
> Ja, gør endelig det.
>
> --
> Jacob - www.bunk.cc
> Where are the calculations that go with a calculated risk?
[cut]
Det ser ud til at virke.
Dog har jeg fundet ud af at de enkelte pop3 konti laver nogle andre filer
hvis der f.eks. oprettes et autosvar eller forward på mail adressen.
men den indledende kode virker, så nu kan jeg når jeg får tid om et par dage
prøve om jeg kan finde de andre steder i koden hvor dette ændres.
Men tusind tak for hjælpen :)
Mvh
Michael
| |
Michael Andreasen (05-01-2003)
| Kommentar Fra : Michael Andreasen |
Dato : 05-01-03 16:26 |
|
"Michael Andreasen" <maskinen2000@hotmail.com> wrote in message
news:av9aev$848$1@sunsite.dk...
> > > 1000 tak - jeg vender tilbage med testresultatet
> >
> > Ja, gør endelig det.
> >
> > --
> > Jacob - www.bunk.cc
> > Where are the calculations that go with a calculated risk?
> [cut]
>
> Det ser ud til at virke.
Jeg har nu fået det til at virke 100% ved at gøre som beskrevet i disse
indlæg
Mvh
Michael Andreasen
| |
|
|