-
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?
-
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.
-
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
-
Ma infatti non va usato così, hai letto la pagina di manuale che ti ho indicato?
-
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
-
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.