/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
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




Søg
Reklame
Statistik
Spørgsmål : 177508
Tips : 31968
Nyheder : 719565
Indlæg : 6408575
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste