web-dev-qa-db-ja.com

ubuntu 16.04およびPHP 7.0でPHPスクリプト用のcronjobをセットアップします

Ubuntu 16.04でPHPスクリプト用のcronjobをセットアップしたいのは気が狂っています。

ターミナルでこのコマンドを入力します

$ crontab -e

次に、ubuntuが推奨するnanoエディターを選択します。それからブローラインに入ります。次に、Ctrl + Cを押して、Y/Nに保存を要求します。閉じるには、YとF2を押します。

* */2 * * * root php /var/www/html/script.php

他の試みは、

* */2 * * * /var/www/html/script.php
* */2 * * * root /var/www/html/script.php

以下のコマンドを使用してcronを再起動した後。

Sudo /etc/init.d/cron restart

次に、crontabリストcrontab -lを確認します。rootユーザーにcronジョブが設定されていません。

上記のいずれかの行を使用して、cron.hourly/cron.dディレクトリにcrontab.txtファイルを直接作成しようとしました。

私は多数のフォーラムを試しましたが、すべてがcrontab -eと言ってから、cronディレクトリ内にcrontabファイルを入力または作成しました。何も助けてくれません。私は頭を掻いています。

Ubuntu 16.04およびPHPバージョン7.0でPHPスクリプトのcronジョブを作成する正しい方法は何ですか

1
Naga

crontab -eには、ユーザー名を指定するroot部分を含めないでください(crontab -eは特定のユーザーのcrontabを既に編集しています)。

ルートとして実行する場合は、Sudo crontab -eを実行し、次を使用します。

* */2 * * * php /var/www/html/script.php

または/etc/cron.dに以下を含むファイルを作成します。

* */2 * * * root php /var/www/html/script.php
2
muru

Crontabはcrontab -u <username> -eのように使用されます。 -u <username>部分は、現在のユーザーに対して省略できます。 rootユーザーに使用したい場合は、Sudo crontab -eを使用できます。次に、スケジュールの配置* */2 * * *を入力します。行の最後の引数は、スクリプトを実行する行です。終了すると、crontabは、ジョブが正常にインストールされたかどうかにかかわらず、出力を書き込みます。最後の議論について考慮しなければならないことがいくつかあります。

  1. Php-cliがインストールされていますか?そうでない場合、phpはコマンドラインから機能しません。 (Sudo apt-get install php7-cli
  2. Php-cliをインストールしたら、crontabがphp実行可能ファイルを見つけることを確認します。 crontabは必ずしも同じ$ PATHを持っているとは限りません。 which phpと入力し、crontab * */2 * * * /usr/bin/php /var/www/html/script.phpでフルパスを使用します。 /usr/binはcrontabのパスにあります。この手順はおそらく必要ありませんが、害はありません。

この場合、phpスクリプトはコマンドラインから実行されるため、Apacheはcrontabスクリプトとは何の関係もありません。スクリプト内のApache関連データに依存している場合、コマンドラインでアクセスできない場合、PHPスクリプトで問題が発生する可能性があります。

1
nobody