勉強したことのメモ

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

Cockipitからコンテナ内のPHPをsystemd timerで自動実行する方法

  サーバー Podman

以前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

  関連記事

Cockpitで一定時間操作がない場合は自動でログアウトさせる方法
Cockpitで一定時間操作がない場合は自動でログアウトさせる方法

Cockpitのセキュリティ対策として〇分以上操作がない場合に自動でログアウトさ ...

Cockpitでプログラムの自動実行(systemd timer)設定を行う方法
Cockpitでプログラムの自動実行(systemd timer)設定を行う方法

Cockpitでプログラムの自動実行設定を行いたい。調べたところCronは難しそ ...

サーバ管理ツール「Cockpit」にファイルマネージャー用プラグインを導入する方法
サーバ管理ツール「Cockpit」にファイルマネージャー用プラグインを導入する方法

先日メモしたサーバ管理ツール「Cockpit」にブラウザ上からファイルの作成や編 ...

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

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

AlmaLinux9系にホスト側NginxとPodmanコンテナ環境を構築する方法
AlmaLinux9系にホスト側NginxとPodmanコンテナ環境を構築する方法

AlmaLinux8系から9系に移行し、さらにLAMP環境からPodmanコンテ ...