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
関連記事
-
-
Cockpitで一定時間操作がない場合は自動でログアウトさせる方法
Cockpitのセキュリティ対策として〇分以上操作がない場合に自動でログアウトさ ...
-
-
Cockpitでプログラムの自動実行(systemd timer)設定を行う方法
Cockpitでプログラムの自動実行設定を行いたい。調べたところCronは難しそ ...
-
-
サーバ管理ツール「Cockpit」にファイルマネージャー用プラグインを導入する方法
先日メモしたサーバ管理ツール「Cockpit」にブラウザ上からファイルの作成や編 ...
-
-
CockpitにGoogle Authenticatorを用いたOtp認証を導入する方法
Cockpitのセキュリティ対策としてGoogle Authenticatorを ...
-
-
AlmaLinux9系にホスト側NginxとPodmanコンテナ環境を構築する方法
AlmaLinux8系から9系に移行し、さらにLAMP環境からPodmanコンテ ...