Newsgroup: it.comp.os.linux.sys
Titolo: cron non fa quelo che gli chiedo!

Saluti a tutti,
   il problemino (delusione) di questa sera e' che cron non esegue quello 
che gli ho chiesto.
  Mi spiego ho fatto due semplici script per ip tables che riporto:
script a:
1 #!/bin/sh
2  date > /var/log/net.log
3 iptables -F >> /var/log/net.log
4 iptables -P INPUT  DROP >> /var/log/net.log
5 iptables -P FORWARD DROP >> /var/log/net.log
6 iptables -P OUTPUT DROP >> /var/log/net.log
7 iptables -L >> /var/log/net.log
8 echo "**********************" >> /var/log/net.log
avete sicuramente capito questo script cosa fa, restto tutte le policy, poi 
imposto drop per tutto e poi scrivo la situazione di iptables in un file 
net.log.
dopo di questo con un bel crontab -e scrivo 30 22 * * * /bin/a convinto che 
alle 22.30 mi esegua quelle 8 righe nello script a, un po dopo le 22.30 
vado a leggere quello che c'e' nel file /var/log/net.log e ci trovo solo le 
righe 2 e 8 ma! chi sa! bo! forse! eppure lo script richiamato da consol 
haveva scritto, va be poco male ma vediamo se ha fatto qullo che spero cioe 
droppare tutto. Sorpresa mpc (manco pu' ca##o) pingo la macchina su cui ho 
schedulato lo script e risponde bellamente. Per scrupolo do /bin/a invio, 
nuovamente ping, perfetto non risponde quindi da consol funziona.
  Tutta la roba sopra descritta l'ho fatta come root
   Perche' cron non esegue le righe dalla 3 alla 7?
Grazie a tutti per le risposte passate e future

 Grazie a tutti per le risposte passate e future
ci scrivi che cosa hai scritto nel crontab?
a naso potrebbe darsi che iptables non sia nel path, metti il percorso 
assoluto del comando!
-- 
Davide Corrado
to send mail, remove "no_spam_" from the address

 
Provo a modificare lo script a usando il path assoluto di iptables. Vediamo
Grazie 
Agolf

 30 22 * * * /sbin/a
1) il crontab di linux e' superlativo (rispetto a quello dei vari *nix) in
quanto ti consente di specificare al suo interno tutte le variabili che ti
servono per l'esecuzione degli script. Quindi se ti servono variabili
(esempio LD_LIBRARY_PATH o altre cose) puoi specificarle nel crontab (con
il crontab di solaris questo non e' possibile, in /etc/cron/default puoi
mettere solo il PATH). Poi gli altri *nix non hanno il crontab di sistema
ma solo quello utente ....
2) domanda stupida: visto che si tratta di iptable, spero che tu non stia
usando il crontab di un utente qualsiasi.... dovresti usare root o il
crontab di sistema.
3) e' molto probabile che iptables (che sia trova in /sbin) sia fuori dal
èpath di ricerca)
moh basta ... ti stiamo imbeccando.
--
Massimiliano.

 moh basta ... ti stiamo imbeccando.
Me tapino e' proprio questione di path per iptables!! Pero' ad esempio (io 
uso debian) se in crontab metto 30 22 * * * /etc/init.d/ssh stop, non 
funge! E in cron.log riporta la riga di eseguzione del comando!
Ma! 
Grazie mille Agolf

Ciao Agolf,
forse perche' alcuni comandi non restituiscono alcun output?..
Hai provato a vedere cosa ti mostra il comando..
# iptables -F
Ciao, e prova anche con gli alti.
--
Saluti e buon lavoro,
Mario Costantini


 Grazie mille Agolf
/etc/init.d/sshd stop?


 funge! E in cron.log riporta la riga di eseguzione del comando!
Spesso gli script in /etc/init.d
richiamo altri comandi (
p.es
 networking --> ifup ecc.ecc.);
exporta un path classico  all'inizio del tuo script
che consideri i soliti [s]bin /usr[s]bin e /usr/local/[sbin]
--
RobiZ
( x => i)@