View previous topic :: View next topic |
Author |
Message |
rossella n00b

Joined: 08 Oct 2007 Posts: 5
|
Posted: Tue Oct 23, 2007 3:36 pm Post subject: Problemi nell'esecuzione di wget (Apache-Squid) |
|
|
Salve a tutti, ho un problema che mi assilla e spero che nel vostro bagaglio culturale ci sia qualcosa di inerente!
Ho messo su un sistema costituito da Squid e Dansguardian, lavoro nella modalità di dg "Blanket Block", in tal modo per ogni connessione che viola il profilo dg genera un feedback. Il feedback non è quello standard di dg ma faccio eseguire uno script in php (lo mando in esecuzione con apache), la particolarità sta nel fatto di dare la possibilità all'utente di proseguire o meno la connessione.
il mio problema è il seguente:
Ogni volta che dg genera un feedback voglio ottenere tutti gli url dei link presenti nella pagina richiesta dall'utente. Per fare questo ho creato un ulteriore script che per mezzo di una chiamata alla wget mi consente di estrarre tutti i link presenti in una pagina html. Ovviamente dichiaro la variabile d'ambiente http_proxy
ora se quest'ultimo script(quello in cui è presente la chiamata a wget) lo eseguo da riga di comando funziona perfettamente, al contrario se per mezzo della funzione system() lo chiamo nello script php eseguito da apache non va nemmeno in esecuzione, me ne accorgo perchè wget non restituisce nè il file di log ne il file html.
secondo me il problema è legato ad apache....
Ringrazio anticipatamente per l'attenzione, scusate per la lunghezza del topic |
|
Back to top |
|
 |
djinnZ Advocate


Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Tue Oct 23, 2007 4:12 pm Post subject: |
|
|
a naso (ma attendo lumi da chi ne sa di più di php) prova ad aggiungere un set > /.../filedilog all'inizio dello script e verifica se lo script viene effettivamente eseguito e con quale ambiente _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist  |
|
Back to top |
|
 |
rossella n00b

Joined: 08 Oct 2007 Posts: 5
|
Posted: Tue Oct 23, 2007 5:37 pm Post subject: |
|
|
djinnZ wrote: | a naso (ma attendo lumi da chi ne sa di più di php) prova ad aggiungere un set > /.../filedilog all'inizio dello script e verifica se lo script viene effettivamente eseguito e con quale ambiente |
ti invio lo script magari ti accorgi dell'errore!!
#!/bin/sh
# controllo sui parametri di ingresso
#
if [ "$1" == "" ]; then
echo "Devi specificare il dominio"
exit 1
fi
`http_proxy="http://192.168.1.1:8080"`
`export http_proxy`
`wget --wait=10 --timestamping -o /tmp/log.txt -O /tmp/file.html "$1"`
locate=/etc/dansguardian/greysitelist
# catturo ogni dominio presente nel file html
DOMINI=`cat /tmp/file.html | awk '/href=\"http/ {sub(/.*http:\/\/(www\.)*/, ""); sub(/(\ |\/|\"|\?).*/, "" ); print}' | sort | uniq`
for dominio in $DOMINI; do
if [ "`grep $dominio $locate`" == "" ]; then
echo "Aggiungo il dominio $dominio alla greylist";
echo $dominio >> $locate
fi
done |
|
Back to top |
|
 |
djinnZ Advocate


Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Tue Oct 23, 2007 6:21 pm Post subject: |
|
|
per cominciare non capisco il senso di quell'inclusione tra apici dell'export e del wget. Se proprio non vuoi che no nriportino output scaricalo su null.
Prova a scrivere direttamente
Code: |
#!/bin/sh
[ /var/log/scriptlog ] || mkdir /var/log/scriptlog
set > /tmp/scriptlog
[ -z "$1" ] && { echo "Devi specificare il dominio" ; exit 1 }
http_proxy="http://192.168.1.1:8080"
#wget --wait=10 --timestamping -o /tmp/log.txt -O /tmp/file.html "$1" &>>/dev/null
# ma meglio
wget --wait=10 --timestamping -o /tmp/log.txt -O /tmp/file.html "$1" || { echo "errore wget" ; mv /tmp/log.txt /var/log/scriptlog/$$log.txt }
locate=/etc/dansguardian/greysitelist
DOMINI=`cat /tmp/file.html | awk '/href=\"http/ {sub(/.*http:\/\/(www\.)*/, ""); sub(/(\ |\/|\"|\?).*/, "" ); print}' | sort | uniq`
for dominio in $DOMINI
do
[ -z "`grep $dominio $locate`" ] && { echo "Aggiungo il dominio $dominio alla greylist"; echo $dominio >> $locate }
done
|
e devi aggiungere /var/log/scriptlog in logrotate o ti riempie il disco di schifezza.
Vedi se il file /tmp/[numero]scriptlog viene creato o nei log di apache è riportato un errore di esecuzione e se nel PATH (in /tmp/scriptlog) c'è /usr/bin
(sicuramente ci sarà chi obietterà che è uno stile desueto di scripting ma... chissenfrega)
la prossima volta che posti codice od istruzioni usa il tag [code] è meglio evidenziato e più leggibile. _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist  |
|
Back to top |
|
 |
lavish Bodhisattva

Joined: 13 Sep 2004 Posts: 4296
|
Posted: Tue Oct 23, 2007 11:09 pm Post subject: |
|
|
Non e' una richiesta di supporto inerente gentoo, quindi sposto il thread dal Forum italiano (Italian) al Forum di discussione italiano. _________________ minimalblue.com | secgroup.github.io/ |
|
Back to top |
|
 |
|