crontabタイミングCURLリンクが無効になる可能性のあるソリューション

844 ワード

みんなはすべて定時の任務を使ったことがあって、centosの持参するcrontabは私にとってまったく福音で、しかし最近このような問題に出会って、需要はこのようにして、5分ごとに1つのPHPのスクリプトを要求して期限切れの任務をスキャンして、そこでcrontab -eは下の1本を追加しました
*/5 * * * * curl https://www.test.com/test.php?a=work&b=haha  > /dev/null 2>&1

リンクは勝手に打って、後の入力の方向はただclientqueueの中でごみのファイルを生みたくありません
5分後に反応していないことに気づき、不思議なことに、ブラウザに直接置いてアクセスすることができます.そしてcronのログを見て
cat /var/log/cron

計画タスクは確かに5分もリンクを要求していないことが判明したが、パラメータが失われてアクセスが拒否されたため、このような問題が発見され、接続中の&b=hahaのようなパラメータは無視された.調べてみると、shell中の&はまた特殊な意味を持つため、&を使用する場合は\でエスケープする必要があり、修正後のコードは以下の通りである
*/5 * * * * curl https://www.test.com/test.php?a=work\&b=haha  > /dev/null 2>&1

もしあなたも似たような問題に遭遇したら、あなたに役に立つことを望んでいます:)