trabajo cron de PHP (en orden para ser exactos)
Pregunta
Quiero ejecutar un script solo UNA VEZ mediante la creación de una tarea programada utilizando "al" comando. Estoy usando esto ahora:
<?php
include "config.php";
if (isset($_POST['add']))
{
$sql = mysql_query("INSERT INTO {$table}(msg) VALUES('{$_POST['msg']}')");
if ($sql)
{
$cmd = "wget /var/www/index.php?id=" . mysql_insert_id() . " | sudo at " . $_POST['runat'];
exec($cmd);
echo exec("atq");
echo $cmd;
}
exit();
}
echo "<form action='{$_SERVER['PHP_SELF']}' method='POST'>";
echo "<input type='text' name='msg' />";
echo "<input type='text' name='runat' />";
echo "<input type='submit' name='add' />";
echo "</form>";
?>
Sin embargo, esto no parece estar funcionando. ¿Lo estoy haciendo bien? O ¿podría recomendar algo más?
Solución
Está utilizando comandos at
en forma equivocada. Es necesario que el eco de comando y pasarlo a at
. Probarlo así:
$cmd = "echo wget /var/www/index.php?id=" . mysql_insert_id() . " | sudo at " . $_POST['runat'];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow