وظيفة cron من PHP (في الأمر إلى أن تكون دقيقة)

StackOverflow https://stackoverflow.com/questions/3935673

  •  30-09-2019
  •  | 
  •  

سؤال

أرغب في تشغيل برنامج نصي مرة واحدة فقط عن طريق إعداد مهمة 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'];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top