Cockipitからコンテナ内のPHPをsystemd timerで自動実行する方法
以前Cockpitでsystemd timer設定を行ったが、その際はLAMP環境内のプログラムを自動実行するというものだった。そこで今回はコンテナ環境内のPHPを自動実行させたい。以下に対応方法をメモ。
対応方法
実行用ファイル(timer_test.php)
<?php
date_default_timezone_set('Asia/Tokyo');
# コンテナ側から見た絶対パスで記述
file_put_contents('/var/www/html/test.com/public/test.log', date('Y/m/d H:i:s') . "\n", FILE_APPEND);
実行用ファイルのテスト
念のため以下コマンドでログファイルが生成されるかテスト。
podman exec web-container php /var/www/html/test.com/public/timer_test.php
タイマーの作成
Cockpitの左メニューのサービス -> タイマー -> タイマーの作成をクリックし以下を設定する。
- 名前 -> 半角英数字と特定の半角記号「:」「_」「.」「@」「-」で名前を入力
- 説明 -> 説明文を入力。日本語可。
- Shell command -> /usr/bin/podman exec web-container php /var/www/html/test.com/public/admin/timer_test.php
- トリガー -> 実行したい時間を指定する。
実行するユーザーを指定したい場合
ログを出力するようなプログラムの場合、ファイルの所有者がrootだと困る場合がある。そのような場合は以下でユーザーを指定する。
/usr/bin/podman exec --user 33 web-container php /var/www/html/test.com/public/admin/timer_test.php
関連記事
-
-
Podmanでイメージのビルド中に「Writing manifest to ~~」表示で処理が止まる場合の対応方法
Podmanでイメージのビルド中に「Writing manifest to im ...
-
-
CockpitにGoogle Authenticatorを用いたOtp認証を導入する方法
Cockpitのセキュリティ対策としてGoogle Authenticatorを ...
-
-
AlmaLinux9系にホスト側NginxとPodmanコンテナ環境を構築する方法
AlmaLinux8系から9系に移行し、さらにLAMP環境からPodmanコンテ ...
-
-
Cockpitにリンク集(ブックマーク)のようなページを作成し、メニューにも追加する方法
Cockpitにリンク集(ブックマーク)のようなカスタムページを作成し、左メニュ ...
-
-
Cockpitでプログラムの自動実行(systemd timer)設定を行う方法
Cockpitでプログラムの自動実行設定を行いたい。調べたところCronは難しそ ...