Nextcloudで削除されたファイルの信頼性の高い有効期限ポリシーを設定する

Nextcloudの削除済みファイルを自動的に削除するには、最大保持期間を設定し、Nextcloudのバックグラウンドジョブがスケジュールに従って実行されるようにしてください。たとえば、 30日以上前のゴミ箱アイテムを自動的に削除するようtrashbin_retention_obligationに設定しauto, 30、Nextcloudが推奨するシステムcronジョブを5分ごとに実行します。デフォルトのポリシーだけでは、30日経過後autoに確実に削除されるとは限りません。

自動削除は完全に無効になります。ユーザーが間違いを修復できる時間的余裕を持たせた保持期間を設定し、ゴミ箱から削除された後も復元可能な状態にしておく必要があるものについてはバックアップを取っておきましょう。

Nextcloudはデフォルトでどのようなクリーンアップを実行しますか?

Nextcloud 35の管理者向けドキュメントでautoは、削除されたアイテムは少なくとも30日間保持され、ストレージ容量が必要になった場合に削除できると説明されています。容量が不要な場合は、アイテムは30日を超えて保持される可能性があります。この動作により、ゴミ箱は厳密な30日間の削除タイマーではなく、復元領域として機能します。

ポリシー値意味次のような場合に使用してください
auto商品は最低30日間保管し、スペースが必要になった場合は後で処分してください。デフォルトの回復ウィンドウと容量ベースのクリーンアップが必要です。
auto, 3030日以上経過したアイテムは自動的に削除されます。また、容量が必要な場合は、それよりも早く削除されることもあります。あなたは最長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'
ターミナルコマンドを実行すると、trashbin_retention_obligationがauto、30に設定され、出力にはシステム構成値が確認できる。
保持期間を考慮したポリシー値 auto, 30 を使用して、最大保持期間を 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
端末で occ background:cron コマンドを実行すると、バックグラウンド ジョブが cron モードに設定されたという応答が表示されます。
Nextcloudをcronモードに切り替えることで、スケジュールされたバックグラウンドジョブがユーザーがサイトを開くかどうかに依存しないようにできます。

次に、Webサーバーユーザーのcrontabを編集します。一般的なDebianまたはUbuntuホストの場合:

sudo crontab -u www-data -e

以下の行を追加してください。インストール先が異なる場合は、PHP実行ファイルまたはNextcloudのパスを変更してください。

*/5 * * * * php -f /var/www/nextcloud/cron.php
ユーザー固有のcrontabエディタには、5分ごとに/var/www/nextcloud/cron.phpを実行する行が含まれています。
cron.phpをHTTPユーザーでスケジュール設定してください。例のNextcloudパスを、ご自身のインストールパスに置き換えてください。

このスケジュールでは、Nextcloud のバックグラウンド ランナーが 5 分ごとに起動されます。個々のジョブはそれぞれ独自のスケジュールを持ちます。コンテナ環境の場合は、その環境に対応したドキュメントに記載されている cron サービスまたはスケジュール済みワーカーを使用し、cron.phpNextcloud の Web ユーザーとして実行してください。イメージまたはプラットフォームで既にジョブが実行されている場合は、安易に 2 つ目のジョブを追加しないでください。

賞味期限を安全にテストするにはどうすればよいですか?

まず、ポリシーとスケジュールされたジョブの両方を確認します。ポリシーは で確認しocc config:system:get trashbin_retention_obligation、次にスケジュールされたタスクを一覧表示します。

sudo crontab -u www-data -l
ターミナルには、アクティブな自動設定、保持期間30日、およびcron.phpの5分間隔のcronエントリが表示されます。
保存された保持値を確認し、Webサーバーユーザーが定期的なcron.phpエントリを持っていることを確認してください。

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あなたが意図した保持期間と一致しています。
  • NextcloudのバックグラウンドジョブはCronに設定されており、ウェブサーバーユーザーのcrontabには正しいcron.phpパスが含まれています。
  • 管理設定で、最後のジョブ実行時間が進みます。
  • 最大経過時間を過ぎた古いテスト項目は、バックグラウンドジョブの実行後に削除されますが、新しい項目は、ストレージ容量や割り当て量の制約によりクリーンアップが必要にならない限り残ります。

最終実行時刻が進まない場合は、保持値を変更する前に、システムcron、PHP CLIパス、Webサーバーユーザー、およびNextcloudパスのトラブルシューティングを行ってください。バックグラウンドランナーが実行されない場合、正しいポリシーでも何もクリーンアップできません。

公式ドキュメント

コメントを残す

Redisを使用してNextcloudのファイルロック警告を解消する

信頼性の高いNextcloudファイルロックを有効にし、適切なRedisまたはValkeyバックエンドを選択し、同時ファイル変更のリスクを冒すことなく警告が解消されることを確認してください。

Nextcloudのセキュリティ評価でA+を獲得するために必要なこと

Nextcloudのセキュリティ評価でA+を獲得するために必要なこと

最新のアップデート、HTTPSおよびHSTS、正確なリバースプロキシの信頼設定、およびパブリックサーバーに対するチェックによって、Nextcloudのスキャンでよく見られる問題を修正します。

影響度を測定しながらNextcloudのサーバーサイド暗号化を有効にする

必要なストレージに対してNextcloud SSEを設定し、暗号化キーを保護し、既存ファイルを暗号化する前に転送量とCPUへの影響を測定します。

NextcloudにElasticsearchの全文検索機能を追加する

Nextcloudのファイル検索機能をElasticsearchに接続し、ドキュメントの内容をインデックス化し、サーバーとセキュリティのニーズに合った設定を選択してください。

Nextcloudで削除されたファイルの信頼性の高い有効期限ポリシーを設定する

Nextcloudで削除されたファイルの信頼性の高い有効期限ポリシーを設定する

Nextcloudを設定して、削除されたファイルを一定期間後に削除するようにし、バックグラウンドジョブを確実にスケジュールし、すべてのユーザーのゴミ箱を空にするコマンドを回避するようにします。

Nextcloudのデータベースインデックスが見つからないという警告をクリアする

Nextcloudのデータベースインデックスが見つからないという警告をクリアする

NextcloudのOCC修復を安全に実行し、データベースの変更をプレビューして、警告が残る理由を確認してください。

Nextcloudのウェブアップロード制限を2GB以上に引き上げる

Nextcloudのウェブアップロード制限を2GB以上に引き上げる

PHP、Nginx、Apache、一時ストレージ、タイムアウトの設定を調整することで、Nextcloudブラウザからのより大きなファイルアップロードを可能にし、どの制限がファイルのアップロードを妨げているかを確認してください。

WebサーバーでNextcloudのPHPメモリ警告をクリアする

Nextcloudが実際に使用するPHPメモリの制限を設定し、該当するサービスを再起動して、管理画面の概要で512MBの設定を確認してください。

S3互換バケットをNextcloud外部ストレージに接続する

NextcloudのS3バックエンドを使用して、適切なエンドポイント、認証情報、アクセス範囲、および検証手順を設定し、互換性のあるオブジェクトストレージバケットをマウントします。

ストレージを壊さずにNextcloudデータを外部ドライブに移動する方法

ストレージを壊さずにNextcloudデータを外部ドライブに移動する方法

永続的なUUIDマウント、メンテナンスモード、検証済みコピー、および元のパスのシンボリックリンクを使用して、Linux Nextcloudのデータディレクトリを安全に外部ドライブに移動します。