Redisを使用してNextcloudのファイルロック警告を解消する
信頼性の高いNextcloudファイルロックを有効にし、適切なRedisまたはValkeyバックエンドを選択し、同時ファイル変更のリスクを冒すことなく警告が解消されることを確認してください。
Nextcloudの削除済みファイルを自動的に削除するには、最大保持期間を設定し、Nextcloudのバックグラウンドジョブがスケジュールに従って実行されるようにしてください。たとえば、 30日以上前のゴミ箱アイテムを自動的に削除するようtrashbin_retention_obligationに設定しauto, 30、Nextcloudが推奨するシステムcronジョブを5分ごとに実行します。デフォルトのポリシーだけでは、30日経過後autoに確実に削除されるとは限りません。
自動削除は完全に無効になります。ユーザーが間違いを修復できる時間的余裕を持たせた保持期間を設定し、ゴミ箱から削除された後も復元可能な状態にしておく必要があるものについてはバックアップを取っておきましょう。
Nextcloud 35の管理者向けドキュメントでautoは、削除されたアイテムは少なくとも30日間保持され、ストレージ容量が必要になった場合に削除できると説明されています。容量が不要な場合は、アイテムは30日を超えて保持される可能性があります。この動作により、ゴミ箱は厳密な30日間の削除タイマーではなく、復元領域として機能します。
| ポリシー値 | 意味 | 次のような場合に使用してください |
|---|---|---|
auto | 商品は最低30日間保管し、スペースが必要になった場合は後で処分してください。 | デフォルトの回復ウィンドウと容量ベースのクリーンアップが必要です。 |
auto, 30 | 30日以上経過したアイテムは自動的に削除されます。また、容量が必要な場合は、それよりも早く削除されることもあります。 | あなたは最長30日間の年齢制限を希望しているのですね。 |
30, 90 | アイテムは最低30日間保存し、90日後に削除してください。 | 回復期間に加えて、保持期間の上限も必要です。 |
disabled | ゴミ箱を自動で清掃しないでください。 | 貴社は別途データ保持プロセスを設けており、削除済みアイテムを保持する予定です。 |
ゴミ箱アイテムが原因でユーザーの割り当て容量を超過した場合、保持は絶対的なものではありません。Nextcloud は、設定済みのポリシーを上書きし、割り当て容量が満たされるまでアイテムを削除する場合があります。割り当て容量制限のあるアカウントにポリシーを適用する前に、最新のゴミ箱保持に関するドキュメントを確認してください。
occNextcloudのインストールディレクトリからHTTPユーザーとして実行することで、ファイル権限の一貫性が保たれます。DebianまたはUbuntuでは、そのユーザーは一般的に でありwww-data、インストールパスは であることが多いです/var/www/nextcloud。他のシステムやコンテナでは、実際のユーザー名とパスに置き換えてください。
cd /var/www/nextcloud
sudo -E -u www-data php occ config:system:set trashbin_retention_obligation --value='auto, 30'

この設定はNextcloudのシステム構成に保存されます。有効な値を確認するには、以下を実行してください。
sudo -E -u www-data php occ config:system:get trashbin_retention_obligation
出力には と表示されるはずですauto, 30。別のポリシーをご希望の場合は、上記の表を参照して値を入力してください。この30, 90オプションは、アイテムを少なくとも 30 日間保持し、90 日後に削除することを目的としています。ただし、割り当て制限により、より早く削除される場合もあります。
Nextcloud は、ゴミ箱の有効期限切れ処理をバックグラウンド ジョブとして実行します。管理者マニュアルには、ゴミ箱のバックグラウンド ジョブは 30 分ごとに実行されると記載されていますが、これはインストール環境のバックグラウンド ジョブ ランナーが呼び出されているかどうかに依存します。Nextcloud は、定期的なタスクにはオペレーティングシステムの cron を使用することを推奨しています。デフォルトの AJAX モードは、ユーザーがサイトにアクセスしたときにのみジョブが実行されるため、信頼性が低くなります。
Nextcloudをcronモードに設定する:
sudo -E -u www-data php occ background:cron

次に、Webサーバーユーザーのcrontabを編集します。一般的なDebianまたはUbuntuホストの場合:
sudo crontab -u www-data -e
以下の行を追加してください。インストール先が異なる場合は、PHP実行ファイルまたはNextcloudのパスを変更してください。
*/5 * * * * php -f /var/www/nextcloud/cron.php

このスケジュールでは、Nextcloud のバックグラウンド ランナーが 5 分ごとに起動されます。個々のジョブはそれぞれ独自のスケジュールを持ちます。コンテナ環境の場合は、その環境に対応したドキュメントに記載されている cron サービスまたはスケジュール済みワーカーを使用し、cron.phpNextcloud の Web ユーザーとして実行してください。イメージまたはプラットフォームで既にジョブが実行されている場合は、安易に 2 つ目のジョブを追加しないでください。
まず、ポリシーとスケジュールされたジョブの両方を確認します。ポリシーは で確認しocc config:system:get trashbin_retention_obligation、次にスケジュールされたタスクを一覧表示します。
sudo crontab -u www-data -l

Nextcloudの管理設定で、バックグラウンドジョブがCronに設定され、最終ジョブ実行時刻が進んでいることを確認してください。設定した最大保存期間が経過したら、「削除済みファイル」フォルダを確認し、削除しても問題ない古いテスト項目を探してください。有効期限切れジョブはスケジュール通りに実行されるため、必ずしも正確な保存期間の境界でクリーンアップがすぐに行われるとは限りません。
カスタム保持ポリシーを使用した1回限りのテストを実行するには、保持対応コマンドを実行します。
sudo -E -u www-data php occ trashbin:expire --quiet
現在の Nextcloud では、trashbin:expire設定された保持期間が適用されます。デフォルトのautoポリシーでは、コマンドはアイテムの有効期限切れなしに終了します。デフォルトの自動有効期限切れはバックグラウンド ジョブによって処理されます。trashbin:cleanup --all-usersこのコマンドは、経過時間に関係なくすべてのユーザーのごみ箱を完全に削除するため、通常の保持設定ではありません。
occ config:system:get trashbin_retention_obligationあなたが意図した保持期間と一致しています。cron.phpパスが含まれています。最終実行時刻が進まない場合は、保持値を変更する前に、システムcron、PHP CLIパス、Webサーバーユーザー、およびNextcloudパスのトラブルシューティングを行ってください。バックグラウンドランナーが実行されない場合、正しいポリシーでも何もクリーンアップできません。
信頼性の高いNextcloudファイルロックを有効にし、適切なRedisまたはValkeyバックエンドを選択し、同時ファイル変更のリスクを冒すことなく警告が解消されることを確認してください。
最新のアップデート、HTTPSおよびHSTS、正確なリバースプロキシの信頼設定、およびパブリックサーバーに対するチェックによって、Nextcloudのスキャンでよく見られる問題を修正します。
必要なストレージに対してNextcloud SSEを設定し、暗号化キーを保護し、既存ファイルを暗号化する前に転送量とCPUへの影響を測定します。
Nextcloudのファイル検索機能をElasticsearchに接続し、ドキュメントの内容をインデックス化し、サーバーとセキュリティのニーズに合った設定を選択してください。
Nextcloudを設定して、削除されたファイルを一定期間後に削除するようにし、バックグラウンドジョブを確実にスケジュールし、すべてのユーザーのゴミ箱を空にするコマンドを回避するようにします。
NextcloudのOCC修復を安全に実行し、データベースの変更をプレビューして、警告が残る理由を確認してください。
PHP、Nginx、Apache、一時ストレージ、タイムアウトの設定を調整することで、Nextcloudブラウザからのより大きなファイルアップロードを可能にし、どの制限がファイルのアップロードを妨げているかを確認してください。
Nextcloudが実際に使用するPHPメモリの制限を設定し、該当するサービスを再起動して、管理画面の概要で512MBの設定を確認してください。
NextcloudのS3バックエンドを使用して、適切なエンドポイント、認証情報、アクセス範囲、および検証手順を設定し、互換性のあるオブジェクトストレージバケットをマウントします。
永続的なUUIDマウント、メンテナンスモード、検証済みコピー、および元のパスのシンボリックリンクを使用して、Linux Nextcloudのデータディレクトリを安全に外部ドライブに移動します。