勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPで作成したプログラムをcron設定し自動実行する方法

   2024/05/22  PHP サーバー

cronの設定方法。サーバー側での設定とPHP側での書き方を以下にメモ。

 

PHP側(cron.php)

<?php
$hoge = array(0 => 'aaa', 1 => 'bbb', 2 => 'ccc');
$body .= "<?\n \$array = " . var_export($hoge,true) . ";\n?>";
file_put_contents('/var/www/html/php/test.php', $body);
?>

配列の内容をtest.phpというファイルに出力するというもの。尚、cronでパスを指定する場合は絶対パスにする

 

サーバー側の設定

サーバにSSH接続し以下コマンドでPHPのパスを調べる。

which php

以下のようにパスが表示される筈なのでメモっておく。

/usr/bin/php

以下コマンドでcronが動いているか調べる。

/etc/rc.d/init.d/crond status

以下のように表示されればOK。

crond (pid ***)を実行中...

以下でcronの設定ファイルを開く。

vi /etc/crontab

以下を追記する。

分 時 日 月 曜日 実行ユーザー PHPパス 実行するPHPのパス

 

cronの記入例

00 15 * * * root /usr/bin/php /var/www/html/php/cron.php

上記の場合だと毎日15時にcron.phpを実行する設定になる。

 

リファレンス

https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-cron-expressions.html

 - PHP サーバー

  関連記事

Sysstat Graphical Viewerにロードアベレージを追加
Sysstat Graphical Viewerにロードアベレージを追加

sysstatの各種情報をグラフ表示するSysstat Graphical Vi ...

ブログサービスの様にサブドメインを動的に生成する方法   
ブログサービスの様にサブドメインを動的に生成する方法  

ブログサービスの様に「hoge」というログインIDを作成した際「hoge.blo ...

サーバ移行の際にLet’s EncryptをDNS認証で対応する方法
サーバ移行の際にLet’s EncryptをDNS認証で対応する方法

近々CentOS7系からAlmaLinux8系への移行(サーバも移行)を検討して ...

サーバに置いてある大量のファイルをダウンロード・アップロードする際に時短する方法
サーバに置いてある大量のファイルをダウンロード・アップロードする際に時短する方法

WordPressのデータなど、大量のファイルをダウンロード・アップロードする場 ...

CockpitにGoogle Authenticatorを用いたOtp認証を導入する方法
CockpitにGoogle Authenticatorを用いたOtp認証を導入する方法

Cockpitのセキュリティ対策としてGoogle Authenticatorを ...