Visualizzazione risultati 1 fino 6 di 6

Discussione: eliminare cron job

  1. #1
    Guest

    Predefinito eliminare cron job

    Salve,
    tramite questo comando php vado a creare un cron job:
    Codice PHP:
    exec('echo -e "`crontab -l`\n'.$minuto.' '.$ora.' '.$giorno.' '.$mese.' * php /httpdocs/file.php?val=valore&user='.$id.'" | crontab -');
    Creo un cron job in base al minuto, ora e mese calcolati con php
    Nella lista di cronjob quindi ne ho alcuni, tutti che puntano allo stesso file ma con orari diversi...io voglio che vengano eseguiti una volta sola, quindi vorrei mettere nel file "file.php" un codice che mi elimini il cronjob appena eseguito, come posso fare a fargli capire qual è quello che è appena stato eseguito su quel file?

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Se vuoi che un comando venga eseguito periodicamente puoi usare il comando crontab come hai indicato, ma se vuoi eseguire qualcosa un volta solo è più appropriato il comando at.

  3. #3
    Guest

    Predefinito

    Codice PHP:
    exec('echo -e "`at -l`\n'.$minuto.' '.$ora.' '.$giorno.' '.$mese.' * php /httpdocs/file.php?val=valore&user='.$id.'" | crontab -');
    Ho provato in questo modo ma mi ha cancellato quello già esistente

  4. #4
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Ma infatti non va usato così, hai letto la pagina di manuale che ti ho indicato?

  5. #5
    Guest

    Predefinito

    Sì, ma non capisco...non c'è nemmeno un esempio
    at [-V] [-q queue] [-f file] [-mldbv] TIME
    qui non c'è il comando
    at -c job [job...]
    qui non c'è il tempo

    Codice PHP:
    exec('echo -e "`at now+3days php /httpdocs/file.php?val=valore&user='.$id.'"');
    non funziona

  6. #6
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Il comando da eseguire non va specificato come argomento, ma fornito nello standard input di at.
    Prova così:
    Codice PHP:
    exec('echo "php /httpdocs/file.php?val=valore&user='.$id.'" | at TIMEHERE');
    Presta molta attenzione ai valori che può assumere la variabile $id: se ad esempio un malintenzionato riuscisse a fare in modo che contenga qualcosa come
    Codice:
    "; comando dannoso qua#
    potrebbe eseguire qualsiasi comando sul tuo server.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •