وظيفة cron من PHP (في الأمر إلى أن تكون دقيقة)
سؤال
أرغب في تشغيل برنامج نصي مرة واحدة فقط عن طريق إعداد مهمة CRON باستخدام "AT". أنا أستخدم هذا الآن:
<?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>";
?>
ومع ذلك ، لا يبدو أن هذا يعمل. هل اقوم بهذا بالشكل الصحيح؟ أو هل يمكن أن تنصح بشيء آخر؟
المحلول
انت تستخدم at
القيادة بطريقة خاطئة. تحتاج إلى صدى الأمر ونقله إلى at
. جربه هكذا:
$cmd = "echo wget /var/www/index.php?id=" . mysql_insert_id() . " | sudo at " . $_POST['runat'];
لا تنتمي إلى StackOverflow