Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    non funziona ! [crond shell bash php iptables]

    Sì sì, lo so, il titolo non vuol dire niente.

    Il problema è che non funziona una cosa e non so perché.

    Dunque:
    - devo modificare i parametri di accesso in modo automatico
    - per modificarli lancio iptables
    - per non fare iptables a casaccio c'è uno script php che fa cazzi e mazzi e funziona senza problemi
    - per non far partire php ogni minuto, c'è uno script bash che lancia php solo su determinate condizioni
    - visto che ho altro da fare che stare tutto il giorno a cliccare crond si occupa di eseguire lo script bash ogni minuto

    ora, il problema è il seguente:
    - quando eseguo il comando iptables a mano dalla console funziona
    - quando eseguo lo script php a mano dalla console funziona
    - quando eseguo lo script bash a mano dalla console funziona
    - quando crond esegue lo script bash non funziona



    Non ho più idea di dove cercare, sembra tutto apposto, ma... non funziona.

    Qualcuno ha una mezza idea di cosa potrebbe porre problema?

  2. #2
    Casomai possa aiutare:

    cron:
    codice:
    # m h  dom mon dow   command
    * * * * * ~/directory/script
    script bash:
    codice:
    if [ -f /file/che/esiste ] || [ -f /file/che/due ]
    then
      php ~/directory/script.php
    fi
    script php:
    Codice PHP:
    $iptablesOPEN 'iptables -F && iptables -X && iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT && iptables -A INPUT -p tcp --dport ssh -s [[SRC]] -j ACCEPT && iptables -A INPUT -p icmp -s [[SRC]] -j ACCEPT && iptables -A INPUT -i lo -j ACCEPT && iptables -P INPUT DROP';
    $iptablesCLOSE 'iptables -F && iptables -X && iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT && iptables -A INPUT -i lo -j ACCEPT && iptables -P INPUT DROP';

    // bla bla bla

    if($sshstart) {
     
    $src $definito;
     
    $iptabexe str_replace('[[SRC]]'$src$iptablesOPEN);
     echo 
    exec($iptabexe);
    }

    if(
    $sshstop) {
     echo 
    exec($iptablesCLOSE);

    È un po' ridotto, ma il succo è questo.

  3. #3
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    a me sembra un problema di permessi su crond
    I got the remedy

  4. #4
    Originariamente inviato da albgen
    a me sembra un problema di permessi su crond
    Ho dimenticato un altro dettaglio : lo script php ha anche un altro exec() di un /etc/init.d/qualcosa start/stop , e quelli funzionano senza problemi.

    E si tratta del crontab di root.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    796
    tail -f /var/log/syslog da un'altra console e guarda cosa succede in corrispondenza dell'orario di esecuzione.

  6. #6
    Gli script che girano in crontab non hanno a disposizione le variabili di ambiente che potrebbero avere quando sono lanciati da una shell normale.
    Credo che il tuo script non funzioni da crontab perchè manca il path per l'eseguibile di iptables e quello di php, che di solito sono nella variabile d'ambiente $PATH.
    Ergo, basterebbe chiamare iptables e php anteponendo il relativo path assoluto.
    NeapoliX GNU/Linux
    "Alla maggior parte della gente piace leggere la propria scrittura e annusare l'odore dei propri peti." (Auden)

  7. #7
    Originariamente inviato da dAb
    tail -f /var/log/syslog da un'altra console e guarda cosa succede in corrispondenza dell'orario di esecuzione.
    Esegue, niente errori.

    Originariamente inviato da PinguinoGoloso
    Gli script che girano in crontab non hanno a disposizione le variabili di ambiente che potrebbero avere quando sono lanciati da una shell normale.
    Credo che il tuo script non funzioni da crontab perchè manca il path per l'eseguibile di iptables e quello di php, che di solito sono nella variabile d'ambiente $PATH.
    Ergo, basterebbe chiamare iptables e php anteponendo il relativo path assoluto.
    Buona idea. Ma non funziona comunque.

  8. #8
    anche questo .../directory/script.php lo hai con il path assoluto ?


    io farei delle display delle variabili che ti occorrono dentro lo script, per vedere il loro valore da cron

  9. #9
    Originariamente inviato da sacarde
    anche questo .../directory/script.php lo hai con il path assoluto ?
    Se ~/ è assoluto, allora sì, è assoluto.

    Originariamente inviato da sacarde
    io farei delle display delle variabili che ti occorrono dentro lo script, per vedere il loro valore da cron
    E dove le vedo dopo?

  10. #10
    Originariamente inviato da dvds
    Se ~/ è assoluto, allora sì, è assoluto.



    E dove le vedo dopo?
    - non lo so se e' assoluto quello....

    - fai un echo e lo redirigi su un file

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.