|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2003
Messaggi: 2987
|
Aiuto per uno script [URGENTE]
Ho scritto il seguente script:
#!/bin/bash kget $1 ; /usr/local/kde/bin/./klamav --scanthis $2$( basename $1 ) ; che prende come primo parametro un url di un file da scaricare e poi lo scansiona con Klamav usando il secondo parametro che contiene l'indirizzo della cartella in cui il file è stato salvato. Il problema è che klamav parte senza apettare che kget abbia finito il download come invece dovrebbe fare data la presenza del ; alla fine del primo comando. Dove sbaglio? Xwang |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
non conosco kget ma per analogia con wget il programma non dovrebbe uscire fino a che non ha finito di scaricare il file.
il punto e virgola in quel contesto non fa assolutamente niente. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2003
Messaggi: 2987
|
Purtroppo klamav parte prima che finisca kget e ciò crea problemi.
Inoltre dal momento che è possibile che un file sia già presente e che al momento dello scaricamento venga salvato con un nome diverso da quello passato tramite parametro, vorrei sapere se c'è un modo per passare all'antivirus il nome del file appena salvato da kget. Xwang Ps se la stessa cosa si può fare meglio con wget , come dovrei modificare lo script? |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
per il problema del download non finito modifica così il tuo script:
#!/bin/bash wget $1 && /usr/local/kde/bin/klamav --scanthis $2$( basename $1 ) per il problema del file già esistente non mi viene in mente nulla. |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2003
Messaggi: 2987
|
Grazie per l'aiuto!
Per salvare il file nella cartella voluta (quella passata con il secondo parametro come indirizzo assoluto) va bene fare così? #!/bin/bash cd $2 && wget $1 && /usr/local/kde/bin/klamav --scanthis $2$( basename $1 ) Per il file già esistente ho pensato che dopo essermi messo nella cartella di download potrei cercare se esiste un file di nome $1 e in tal caso lo rinomino come $1.old e poi avvio wget e klamav come mi hai detto. Se pensi che vada bene, mi puoi aiutare a passare dalle idee alla pratica? Xwang |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
il test lo fai così:
cd $2 filename = $( basename $1 ) if [ -e $filename ] then mv $filename $filename.old fi wget $1 && /usr/local/kde/bin/klamav --scanthis $2$filename |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Oct 2003
Messaggi: 2987
|
Grazie molto!!!!
Funziona!!!! Lo script finale è: #!/bin/bash cd $2 if [ -e $( basename $1 ) ] then mv $( basename $1 ) $( basename $1 ).old fi wget $1 && /usr/local/kde/bin/klamav --scanthis $2$( basename $1 ) Come vedi ho dovuto mettere il basename nel controllo perche la variabile $1 contiene tutta la url. L'unico dubbio che mi rimane è il capire perchè l'antivirus parte prima della fine del download se si mette kget al posto di wget. Comunque già così va benissimo :-) Xwang |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
infatti per evitare di richiamarlo tante volte avevo usato un'altra variabile (filename) ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:12.