バックグラウンドジョブをcronで実行する。(NextCloud+Docker)

ある日を境に、NextCloudにログインすると「ストレージ容量がいっぱいです~」と言うエラーメッセージが表示されるようになった。どうも原因はバックグラウンドジョブが正常に起動されていなかった為のようで、この機会にcronから起動するようにシステム構成を変更することにした。

NextCloudは公式のDockerイメージを使用しているので単純にcronから実行する事はできない。dockerコマンドを使ってcron.phpを実行する命令をcronに登録することにする。

以下のコマンドを実行して編集画面を表示。

sudo crontab -e

以下のコマンドを登録して5分おきに実行。

*/5 * * * * sudo docker exec --user www-data [docker container name] php /var/www/html/cron.php

TP-Link Deco X50 + ひかりTV

結論から言うと動作しない。Deco X50をブリッジモードにするか、Deco X50でIPv6をパススルーに設定すれば動作するような気がするが、実際には動作しないません。

ひかりTVはTV放送データを効率よく配信するためにIPv6 multicastを使用しています。つまり「ひかりTVに対応出来る」=「IPv6 multicastを適切に扱える」に限りなく近いわけです。

TP-LinkのDeco X50は、ルーターモードでもブリッジモードでも、IPv6のファイアウォールがデフォルトで有効になっており、このファイアウォールを無効にする事ができないようです。このファイアウォールによってIPv6 multicastの通信がドロップされているように推測されます。ファイアウォールのルールを設定する画面もあるのですが、設定の制約が厳しく、マルチキャスト通信を許可するような設定を入力する事ができません。マルチキャスト通信は宛先IPv6アドレスがFF00::/8となりますが、このようなIPアドレスの入力を受け付けないのです。

設定に使用するスマホを英語モードにすれば入力できる可能性はあります。ただTP-Linkの英語版掲示板を見る限り、IPv6 multicastが通らないといった相談は度々あがっており、公式アカウントからのログ提出依頼もついていますが解決には至っていません。本質的にIPv6 multicastはMesh WiFiと相性が悪いのかもしれません。

・・・というわけで、あえてメッシュWiFiは使わずに、WiFiルーター+WiFiエクステンダーで構成するのが良さそうです。