ウェブサイト検索

通常ユーザーとしてCronでPHPスクリプトを実行する方法


Cronは、Linuxを含むUnix系オペレーティングシステムでのジョブの時間ベースのスケジューリングのための強力なユーティリティです。Cronはデーモンとして実行され、バックアップを実行したり、更新をスケジュールしたり、その他多くの操作を定期的かつ自動的に特定の時間、日付、または間隔で実行するようにコマンドやシェルスクリプトをスケジュールするために使用できます。

cron の1つの制限は、システムが永遠に作動し続けると仮定していることであり、それゆえデスクトップマシン以外のサーバーに適しています。さらに、'at' または 'batch' コマンドを使用して、指定の時間やその後の時間にタスクをスケジュールすることができますが、タスクは一度だけ実行され(繰り返されません)、その後は実行されません。

おすすめの読み物: LinuxでAnacronを使用してジョブをスケジュールする方法

この記事では、通常のシステムユーザーがLinuxのcronジョブスケジューラーを介してPHPスクリプトを実行または実行できるようにする方法を説明します。

ジョブは crontab(CRON TABle)プログラムを使用してスケジュールできます。各ユーザーは、ジョブを定義するための6つのフィールドで構成された独自のcrontabファイルを持つことができます。

  • 分 – 値は0から59の間で受け入れられます。
  • 時間 – 値は0から23の間で受け入れられます。
  • 月の日 – 1から31の値を格納します。
  • 月 – 1から12までの値、または1月から12月の略称を使用できます。つまり、各月の名前の最初の3文字(例:JanやJun)を使うことができます。
  • 曜日 - 値は0〜6(または日〜土)の範囲で保持されます。また、各曜日の名前の最初の3文字(例:日または水)を使用することもできます。
  • コマンド – 実行されるコマンド.

自分のcrontabファイルにエントリを作成または編集するには、以下のように入力します:

$ crontab -e

すべてのcrontabエントリを表示するには、このコマンドを入力してください(これは単にcrontabファイルを標準出力に出力します):

$ crontab -l

しかし、あなたがシステム管理者であり、別のユーザーとしてPHPスクリプトを実行したい場合、/etc/crontabファイルまたはルートユーザーのcrontabファイルにスケジュールする必要があります。これは、ユーザー名を指定するための追加フィールドをサポートしています:

$ sudo vi /etc/crontab

そして、PHPスクリプトをこのように実行するようにスケジュールし、タイミングセクションの後にユーザー名を指定してください。

0 0 * * * tecmint /usr/bin/php -f /var/www/test_site/cronjobs/backup.php

上記のエントリは、ユーザーtecmintとして毎日真夜中にスクリプト/var/www/test_site/cronjobs/backup.phpを実行します。

上記のスクリプトを10分ごとに自動的に実行したい場合は、次のエントリをcrontabファイルに追加してください。

*/10 * * * * tecmint /usr/bin/php -f /var/www/test_site/cronjobs/backup.php

上記の例では、*/10 * * * * はジョブがいつ実行されるかを示しています。最初の数字は分を示しており、このシナリオでは毎"10分"ごとに実行されます。他の数字は、それぞれ、時間、日、月、週の日を示しています。

これらの関連する記事を読むこともお勧めします。

  1. Linuxシステムメンテナンスタスクの自動化にシェルスクリプトを使用する
  2. Linuxユーザーが知っておくべき12の役立つPHPコマンドラインの使い方
  3. LinuxターミナルでPHPコードを実行する方法
  4. システム管理者のための30の便利なLinuxコマンド

これで終わりです!この記事が役に立つことを願っています。このトピックに関して質問や追加のアイデアがある場合は、下のコメントフォームを使用してください。

関連記事: